Skip to main content
GET
/
api
/
v1
/
signals
/
types
/
{id}
/
sources
List per-source settings for a signal type
curl --request GET \
  --url https://app.puffle.ai/api/v1/signals/types/{id}/sources \
  --header 'Authorization: Bearer <token>'
{
  "sources": [
    {
      "source_id": "linkedin_jobs",
      "enabled": true,
      "keywords_extra": [
        "senior"
      ],
      "prompt_override": null
    },
    {
      "source_id": "reddit",
      "enabled": false,
      "keywords_extra": [],
      "prompt_override": null
    }
  ]
}

Overview

Returns the full signal_type_sources view for a signal type — one entry per registered source (news, reddit, hacker_news, x_twitter, linkedin_posts, linkedin_jobs, g2_capterra), whether enabled or not. Each entry carries:
  • enabled — does this source feed into this signal type?
  • keywords_extra — additional keywords used ONLY when searching this source (in addition to the type-level keywords)
  • prompt_override — custom classification prompt replacing the type’s default for this source. null = use the type’s default.
Mutations are handled one-source-at-a-time through PATCH /api/v1/signals/types/{id}/sources/{sourceId}.

AI agent notes

Every registered source appears. The response always has an entry for each source, not just enabled ones. Filter client-side on enabled === true if you only want the active scope.Relationship with type-level sources. The type-level sources array (from GET /api/v1/signals/types/{id}) is a quick allowlist view; this endpoint is the full per-source settings. The two are kept in sync server-side when PATCH /api/v1/signals/types/{id} mutates sources.Extra keywords narrow, don’t replace. keywords_extra on a source entry is ADDITIVE — the scanner uses the union of type-level keywords + the source’s extras. To restrict a source to a specific keyword set, combine the PATCH with type-level keyword tuning.This is the public partner API — rate-limited at 100 req/min. Use this rather than the internal /api/signals/types/{id}/sources endpoint.

Authorizations

Authorization
string
header
required

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

Path Parameters

id
string<uuid>
required

Signal type UUID.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$

Response

Array of source-level configs for this signal type.

sources
object[]
required

Per-source settings for this signal type, one row per registered source.