Skip to main content
PUT
/
api
/
v1
/
sources
/
config
Update a source config (partner API)
curl --request PUT \
  --url https://app.puffle.ai/api/v1/sources/config \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "source_id": "<string>",
  "enabled": true,
  "config": {}
}
'
{
  "source_id": "<string>",
  "enabled": true,
  "config": {},
  "updated_at": "2023-11-07T05:31:56Z"
}

Overview

Upsert the enabled flag and/or config blob for one data source. If enabled is included, the change cascades to every signal_type_sources row the caller owns — disabling a source here disables it across every one of your signal types in one shot. Omitting enabled leaves existing per-signal-type toggles alone. The shape of config depends on the source; use List available data sources to fetch each source’s config_schema first.

AI agent notes

Partial updates. Send only the fields you want to change. Sending just { source_id, enabled: false } flips the global toggle without touching any custom config. Sending just { source_id, config: {...} } updates the config without re-toggling.The cascade is the whole point. When a user says “stop scanning Reddit for me,” the right call is this endpoint with enabled: false — not a loop over every signal type. One call, 100% propagated.Validate source_id first. Pass a source not in listSourcesV1 and you get 400 invalid_request. The error message lists valid IDs.Related: List source configs (partner API) to read current state.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
source_id
string
required

Source identifier (e.g. reddit, linkedin_posts). Must match one returned by listSourcesV1.

enabled
boolean

Toggle whether signals from this source are collected. Cascades down to every signal-type-source row the caller owns.

config
object

Per-source config blob. Shape depends on the source — see config_schema in listSourcesV1.

Response

Upserted config row.

source_id
string
required
enabled
boolean
required
config
object
required
updated_at
string<date-time>
required
Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
{key}
any