Skip to main content
POST
/
api
/
v1
/
signals
/
types
/
{id}
/
reset
Reset a built-in signal type to defaults
curl --request POST \
  --url https://app.puffle.ai/api/v1/signals/types/{id}/reset \
  --header 'Authorization: Bearer <token>'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "label": "<string>",
  "description": "<string>",
  "kind": "structured",
  "enabled": true,
  "keywords": [
    "<string>"
  ],
  "disqualifiers": [
    "<string>"
  ],
  "config": {},
  "config_schema": {},
  "built_in": true,
  "search_instructions": "<string>",
  "scoring_criteria": "<string>",
  "sources": [
    "news"
  ]
}

Overview

Resets the filter and scorer prompt bodies of a signal type back to the out-of-the-box defaults baked into the platform. Any customizations the caller (or a prior generateSignalTypeV1 run) made are discarded. Common use: the agent tuned prompts with generateSignalTypeV1, the new prompts regressed quality, and the caller wants to wipe them without losing the type itself. Cheaper than deleting and re-creating — source attachments, keyword searches, and signal history all stay put. This is the public partner API. Rate-limited at 100 req/min.

AI agent notes

Scope. Only filter_prompt and scorer_prompt are reset. Everything else on the signal type — name, keywords, attached sources, enabled state — is untouched.Irreversible. The custom prompts are overwritten, not archived. If you may want to roll back, fetch and store the current prompts via getSignalTypeV1 first.No effect on live signals. Past scan results in signal_results / signal_feed aren’t re-scored. Only future scans use the restored prompts.Typical flow. getSignalTypeV1 → see current prompts → resetSignalTypeV1 → prompts are now defaults → optional generateSignalTypeV1 to seed new custom versions from fresh user context.Idempotent. Calling twice is safe — the second call is a no-op (prompts are already the defaults).

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

Prompts reset. Returns the full signal type.

Public signal type. Returned by every signal-type endpoint and referenced from each signal via its signal_type label.

id
string<uuid>
required
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)$
label
string
required

Display name, shown in the UI and echoed as signal_type.

description
string
required
kind
enum<string>
required

structured — built-in type (hiring, funding, management_change, competitor_mentions) with a typed config payload. keyword — free-form user-defined type driven by keywords + search_instructions + scoring_criteria.

Available options:
structured,
keyword
enabled
boolean
required

If false, the scanner skips this type entirely.

keywords
string[]
required
disqualifiers
string[]
required

Exclusion phrases. An AI judge skips hits that match any disqualifier.

config
object
required

Structured-type payload. Keys depend on the underlying type (e.g. roles/seniority for hiring; stages/industries for funding). Null for keyword types.

config_schema
object
required

JSON Schema describing the shape of config. Null for keyword types — there's no structured config.

built_in
boolean
required

Built-in types cannot be renamed, deleted, or have their sources changed. Only their prompts, keywords, disqualifiers, and structured config are editable.

search_instructions
string | null
required
scoring_criteria
string | null
required
sources
enum<string>[] | null
required

Subset of sources enabled for this type. Null means no restriction was ever set; otherwise only listed sources feed this type.

External data source that feeds signals. A signal type can be scoped to any subset of sources; the scanner fans out across the enabled set and classifies each hit.

Available options:
news,
reddit,
hacker_news,
x_twitter,
linkedin_posts,
linkedin_jobs,
g2_capterra