Get a brief
The brief dossier for a (project, entity) pair — the read, the people who matter, what to do next, each claim sourced and dated. A build starts only when one is requested (POST /briefs); following an entity does not start one. Returns `brief: null` when the pair has never had a build; a build stuck in `building` for over 60 minutes is reported as `failed`.
The brief dossier for a (project, entity) pair — the read, the people who matter, what to do next, each claim sourced and dated. A build starts only when one is requested (POST /briefs); following an entity does not start one. Returns brief: null when the pair has never had a build; a build stuck in building for over 60 minutes is reported as failed.
API key (sk_live_... prefix). Generate keys in the UI under Settings > API Keys, then send it as Authorization: Bearer sk_live_...
In: header
Query Parameters
Project scoping the brief (must belong to your organization)
uuid"district" | "school"uuidResponse Body
application/json
application/json
application/json
curl -X GET "https://loading/api/v1/briefs?project_id=497f6eca-6276-4993-bfeb-53cbbbba6f08&entity_type=district&entity_id=497f6eca-6276-4993-bfeb-53cbbbba6f08"{
"brief": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"project_id": "550e8400-e29b-41d4-a716-446655440000",
"entity_type": "district",
"entity_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "building",
"read_md": "string",
"people": [
{
"contact_id": "string",
"name": "string",
"title": "string",
"why": "string",
"approach": "string",
"verified_role": true,
"source_url": "string"
}
],
"next_steps": [
{
"action": "string",
"rationale": "string",
"tied_to": "string",
"prompt": "string"
}
],
"facts": [
{
"claim": "string",
"source_url": "string",
"source_date": "string",
"checked_at": "string",
"status": "confirmed"
}
],
"confidence": 0,
"caveats": "string",
"source_urls": [
"string"
],
"verified_at": "string",
"requested_at": "string",
"built_at": "string",
"progress": [
{
"at": "string",
"tool": "string",
"label": "string"
}
]
}
}{
"error": "string",
"message": "string",
"statusCode": -9007199254740991
}{
"error": "string",
"message": "string",
"statusCode": -9007199254740991
}Resolve a cited board URL to its district and meeting GET
For a board URL that arrives without a district (a chat source mark). The district comes from the board portal the URL sits under; each candidate district's meetings are then matched as /districts/{districtId}/board-meetings/lookup does. The answer is gated by the district it names: without the board layer for that district the gated envelope is returned instead of the ids. data is null when no district's board holds the URL, or the URL is not on a board portal.
Create or retry a brief POST
Idempotently request a deep-research brief for one (project, entity) pair. A ready brief is reused and a fresh in-flight build is not duplicated. Enterprise/internal organizations can request a brief without following the entity. Free organizations must follow it in the project first. Builds are asynchronous; poll the returned URL.