Briefs
Create, poll, and consume seller-specific research briefs
A brief is a deep-research dossier for one district or school, framed by the seller profile stored in a project. It includes a narrative read, people who matter, concrete next steps, verified facts, confidence, caveats, and sources.
Create or retry
POST /api/v1/briefs
Content-Type: application/json
{
"project_id": "PROJECT_UUID",
"entity_type": "district",
"entity_id": "DISTRICT_UUID"
}The operation is idempotent:
- A ready brief returns
200withstarted: false. - A fresh build returns
202withstarted: false. - A missing, failed, or stale build starts a durable research run and returns
202withstarted: true.
Enterprise/internal organizations can create a brief without a follow. A free
organization must actively follow the entity in the same project first, or the
API returns 403 BRIEF_REQUIRES_FOLLOW.
Poll and retrieve
The create response includes a relative poll URL. A brief build normally takes
several minutes.
GET /api/v1/briefs?project_id=PROJECT_UUID&entity_type=district&entity_id=DISTRICT_UUIDThe response contains brief: null before any request. While building, the
brief includes a bounded chronological progress trail. Once complete, status
is ready; a build that fails or remains stuck for more than 60 minutes is
reported as failed and can be retried with POST /briefs.
The API does not send a completion webhook yet. Poll every 30–60 seconds rather than continuously.
Following
POST /follows still starts a brief automatically. Use an explicit brief
request when an enterprise integration wants a dossier without adding standing
follow state, or when it needs to retry a failed build.