Signals-2
For instructions on how to authenticate to use this endpoint, see API overview.
Endpoints
GET | |
GET | |
GET | |
POST | |
GET | |
POST | |
POST | |
GET | |
POST | |
GET | |
PATCH | |
DELETE |
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
- run_idstring
Response
Example request
GET /api /projects /:project_id /signals /scout /runs /:run_idExample response
Status 200 Full run detail.
Status 404 Run not found or not visible to this project.
Retrieve signals scout runs
Return the findings a SignalScoutRun emitted to the inbox, newest first — one row per emit with its description (the finding text as surfaced), weight, confidence, severity, and the deterministic source_id that joins back to the underlying signal. Lets a team and its agents see what a run surfaced without parsing emitted_finding_ids or scanning the signal store. Strictly team-scoped — a run UUID belonging to another team returns 404.
Required API key scopes
signal_scout:readPath parameters
- run_idstring
Example request
GET /api /projects /:project_id /signals /scout /runs /:run_id /emissionsExample response
Status 200 Findings this run emitted to the inbox, newest first.
Status 404 Run not found or not visible to this project.
Retrieve signals scout runs emission
Best-effort reverse of the report -> signals link. For each finding the run emitted, resolve the inbox SignalReport (if any) its underlying signal grouped into by walking the deterministic source_id back through the signal store. report is null when the finding hasn't grouped into a report yet, was de-duplicated away, or its signal was deleted. Lets the scout UI surface which inbox report a finding contributed to — the reverse of the report's evidence list. Strictly team-scoped — a run UUID belonging to another team returns 404.
Required API key scopes
signal_scout:readtask:readPath parameters
- run_idstring
Example request
GET /api /projects /:project_id /signals /scout /runs /:run_id /emissions /reportsExample response
Status 200 Per-finding inbox report links for this run, newest finding first.
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
- run_idstring
Request parameters
- descriptionstring
- confidencenumber
- evidencearray
- hypothesisstringnull
- severity
- dedupe_keysarray
- tagsarray
- time_range
- mcp_trace_idstringnull
- finding_idstringnull
Response
Example request
POST /api /projects /:project_id /signals /scout /runs /:run_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. Pass keys_only=true to scan keys without pulling entry bodies, or content_max_chars to cap each content to a preview — both keep a wide orientation scan from returning every entry's full prose.
Required API key scopes
signal_scout:readQuery parameters
- content_max_charsinteger
- keys_onlyboolean
- 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