Signals
For instructions on how to authenticate to use this endpoint, see API overview.
Endpoints
GET | |
DELETE | |
GET | |
GET | |
GET | |
GET | |
GET | |
POST | |
GET | |
POST | |
POST | |
GET | |
POST | |
GET | |
PATCH | |
DELETE |
List all signals processing
Return current processing state including pause status.
Required API key scopes
task:readQuery parameters
- limitinteger
- offsetinteger
Response
Example request
GET /api /projects /:project_id /signals /processingExample response
Status 200
Delete signals processing pause
View and control signal processing pipeline state for a team.
Required API key scopes
task:writeResponse
Example request
DELETE /api /projects /:project_id /signals /processing /pauseExample response
Status 200
List all signals reports
Required API key scopes
task:readQuery parameters
- limitinteger
- offsetinteger
- orderingstring
- searchstring
- source_productstring
- statusstring
- suggested_reviewersstring
Response
Example request
GET /api /projects /:project_id /signals /reportsExample response
Status 200
Retrieve signals reports
Required API key scopes
task:readPath parameters
- idstring
Response
Example request
GET /api /projects /:project_id /signals /reports /:idExample response
Status 200
Retrieve signals scout project profile
Return the team's deterministic project profile. For the internal scout token the response reflects the newest non-expired cached row or a freshly-built one (lazy compute on cache miss); force_refresh=true skips the cache and rebuilds from authoritative sources. Public read callers (session auth or a signal_scout:read PAK) get the newest cached profile, or 404 if none has been built yet — they never trigger a rebuild. Read this at the start of a run to orient on the team's product mix, integrations, warehouse sources, signal coverage, and existing inbox surface.
Required API key scopes
signal_scout:readQuery parameters
- force_refreshbooleanDefault:
false
Response
Example request
GET /api /projects /:project_id /signals /scout /project_profile /currentExample response
Status 200 The team's current project profile (cached, or freshly built for the internal scout token).
Status 404 No profile has been built for this team yet, and the caller is not the internal scout token (which builds on cache miss). Public read callers never trigger a build.
List all signals scout runs
Return the most recent SignalScoutRun summaries for this project, newest first. Used by the headless scout to dedupe against work other runs already covered. ILIKE matches on summary. date_from / date_to are a half-open window on created_at (>= date_from, < date_to); pass date_to on subsequent calls to walk past the 100-row cap. Results capped at 100.
Required API key scopes
signal_scout:readQuery parameters
- date_fromstring
- date_tostring
- limitinteger
- textstring
Example request
GET /api /projects /:project_id /signals /scout /runsExample response
Status 200 Recent run summaries newest-first.
Retrieve signals scout runs
Return the full SignalScoutRun row. Status, timing, and error flow from the linked tasks.TaskRun. Strictly team-scoped — a UUID belonging to another team returns 404.
Required API key scopes
signal_scout:readPath parameters
- idstring
Response
Example request
GET /api /projects /:project_id /signals /scout /runs /:idExample response
Status 200 Full run detail.
Status 404 Run not found or not visible to this project.
Create signals scout emit
Fire emit_signal with source_product = signals_scout. The finding_id is baked into the deterministic Signal.source_id = run:<id>:finding:<id> for traceability, but this is NOT idempotent — a second call with the same finding_id emits a second signal, so do not retry an emit that may have already succeeded.
Required API key scopes
signal_scout_internal:writePath parameters
- idstring
Request parameters
- descriptionstring
- weightnumber
- confidencenumber
- evidencearray
- hypothesisstringnull
- severity
- dedupe_keysarray
- time_range
- mcp_trace_idstringnull
- finding_idstringnull
Response
Example request
POST /api /projects /:project_id /signals /scout /runs /:id /emit-signalExample response
Status 200 Finding emitted, or skipped by a preflight gate.
Status 400 Invalid emit shape (description, weight, confidence, evidence cap).
Status 404 Run not found for this project.
Retrieve signals scout scratchpad
Return SignalScratchpad entries for this project. ILIKE matches on content and key.
Required API key scopes
signal_scout:readQuery parameters
- limitinteger
- textstring
Example request
GET /api /projects /:project_id /signals /scout /scratchpadExample response
Status 200 Matching memory entries newest-first.
Create signals scout scratchpad
Upsert a memory keyed on (team, key). Re-using a key updates the existing entry in place.
Required API key scopes
signal_scout_internal:writeRequest parameters
- keystring
- contentstring
- run_idstringnull
Response
Example request
POST /api /projects /:project_id /signals /scout /scratchpadExample response
Status 200 Memory entry written or refreshed.
Status 400 Invalid memory shape (empty key/content, key too long).
Create signals scout scratchpad
Delete an entry by key. Returns deleted=false if no row matched.
Required API key scopes
signal_scout_internal:writeRequest parameters
- keystring
Response
Example request
POST /api /projects /:project_id /signals /scout /scratchpad /forgetExample response
Status 200 Whether a row was removed.
List all signals source configs
Required API key scopes
task:readQuery parameters
- limitinteger
- offsetinteger
Response
Example request
GET /api /projects /:project_id /signals /source_configsExample response
Status 200
Create signals source configs
Required API key scopes
task:writeRequest parameters
- source_product
- source_type
- enabledboolean
- config
Response
Example request
POST /api /projects /:project_id /signals /source_configsExample response
Status 201
Retrieve signals source configs
Required API key scopes
task:readPath parameters
- idstring
Response
Example request
GET /api /projects /:project_id /signals /source_configs /:idExample response
Status 200
Update signals source configs
Required API key scopes
task:writePath parameters
- idstring
Request parameters
- source_product
- source_type
- enabledboolean
- config
Response
Example request
PATCH /api /projects /:project_id /signals /source_configs /:idExample response
Status 200
Delete signals source configs
Required API key scopes
task:writePath parameters
- idstring
Example request
DELETE /api /projects /:project_id /signals /source_configs /:id