Raw export accepts an export-scoped
cl_live_* key for accounts with raw export enabled by CrowdListen.Key management always requires the user session bearer, never an API key. Start with the authentication and key permissions guide. These examples cover common workflows; the complete API catalogue includes all deployed operations, request schemas and responses. Live OpenAPI JSON Live Swagger UI
Product API
These are the same authenticated operations used by the CrowdListen web product. Obtain a Supabase access token through sign-in and send it as the bearer token. Check service health at/agent/v1/health. Discover saved workflows at /api/entities/{entity_id}/skills. Before a run, read /api/entities/{entity_id}/skills/{skill_id}/quote?source_mode=refresh, review its estimated credits and maximum, then submit the approved scope_hash and max_charge_credits to the workflow runs endpoint with an Idempotency-Key. A connection response of scope_required asks for an entity_id or project_id; it does not ask for a broader API-key permission.
POST/agent/v1/analysis/run
Start an analysis and stream progress, evidence, and the final result over the response body. Caller identity is always derived from the verified bearer.
Auth: Supabase user session bearer
Parameters
Name Type Required Description question string required Research question, 1–1000 characters project_id uuid optional Project that owns the analysis search_mode string optional knowledge, multi_source, web_only, user_only, or user_first platforms string[] optional reddit, twitter, github, or news entity_id uuid optional Optional tracked-entity scope depth string optional brief or deepExamples
cURLResponse
/agent/v1/search
Discover source-backed public evidence without running synthesis. Provider failures return 502 or 503 rather than an empty success.
Auth: Supabase user session bearer
Parameters
Name Type Required Description query string required Search query, up to 2000 characters platforms string[] optional Optional platform filter limit integer optional 1–200 results date_from string optional Optional ISO date floorExamples
cURLResponse
/agent/v1/context/recall
Search the signed-in user’s saved pages with hybrid keyword and vector retrieval.
Auth: Supabase user session bearer
Parameters
Name Type Required Description query string required Recall query limit integer optional 1–20 results project_id uuid optional Optional project scopeExamples
cURL/agent/v1/context/save
Create or replace a page at a stable user-scoped path.
Auth: Supabase user session bearer
Parameters
Name Type Required Description title string required Page title content string required Page content, up to 500,000 characters path string optional Stable page path tags string[] optional Page tags project_id uuid optional Optional project scopeExamples
cURLRaw Export
Export is intended for accounts with raw export enabled by CrowdListen and internal agents that need full-fidelity rows rather than a small recall result. GET/agent/v1/export/completeness
Audit text, URL, enrichment, and platform coverage before treating a corpus as comprehensive.
Auth: Whitelisted user JWT, or cl_live_* key with export scope
Parameters
Name Type Required Description entity_id uuid optional Tracked entity scope workspace_id uuid optional Workspace scope platform string optional Platform filterExamples
cURL/agent/v1/export/table/{table_name}
Page through allowed raw tables: entities, content_store, opinion_units, entity_insights, insight_evidence, pages, and knowledge.
Auth: cl_live_* key with export scope
Parameters
Name Type Required Description table_name string required Allowed table name entity_id uuid optional Tracked entity scope limit integer optional Page size, up to 5000 offset integer optional Pagination offsetExamples
cURLKey Management
Keys currently supportingest, export, or *. New keys default to ingest only; explicitly choose export for reading raw records or both key scopes when required. At least one scope is required. The raw key is returned once. Keys belong to your account, not to the workspace currently selected in the browser. Ordinary agent login uses your user session and does not require a key.
POST/api/user/keys
Create a scoped API key.
Auth: Supabase user session bearer
Parameters
Name Type Required Description name string required Human-readable key name scopes string[] optional ingest, export, or *; defaults to [“ingest”]. An explicit empty list is rejected.Examples
cURLResponse
/api/user/keys
List masked keys owned by the signed-in user.
Auth: Supabase user session bearer
DELETE/api/user/keys/{key_id}
Revoke a key owned by the signed-in user.
Auth: Supabase user session bearer
GET/api/user/keys/{key_id}/usage
Read stored usage records for one owned key.
Auth: Supabase user session bearer