Poll extraction status for a pending unlock
After /unlock returns `outcome: "unlock_pending"`, poll this endpoint until status becomes `completed` or `failed`. Returns the pipeline phase, percent complete, and an error message if the pipeline failed. Contacts are not supported here (their enrichment is resolved automatically by the credit-hold cron). **Free (0 credits).**
After /unlock returns outcome: "unlock_pending", poll this endpoint until status becomes completed or failed. Returns the pipeline phase, percent complete, and an error message if the pipeline failed. Contacts are not supported here (their enrichment is resolved automatically by the credit-hold cron). Free (0 credits).
API key (sk_live_... prefix). Generate keys in the UI under Settings > API Keys, then send it as Authorization: Bearer sk_live_...
In: header
Path Parameters
"district" | "school"uuidResponse Body
application/json
application/json
curl -X GET "https://loading/api/v1/unlock-status/district/497f6eca-6276-4993-bfeb-53cbbbba6f08"{
"entity_id": "550e8400-e29b-41d4-a716-446655440000",
"entity_type": "district",
"status": "idle",
"progress": {
"current_phase": "string",
"phase_state": "pending",
"phases_completed": 9007199254740991,
"phases_total": 1,
"percent": 100,
"message": "string",
"started_at": "string"
},
"failure": {
"message": "string",
"can_retry": true,
"occurred_at": "string"
},
"success": {
"completed_at": "string",
"duration_seconds": 9007199254740991
},
"extraction": {
"state": "not_queued",
"message": "string"
}
}{
"error": "string",
"message": "string",
"statusCode": -9007199254740991
}Unlock entities (unified) POST
Unified unlock endpoint for districts, schools, and contacts. Routes through the unlock orchestrator, which decides between three paths: - **Fast path** (`outcome: "unlocked"`, HTTP 200): the entity already has extracted intelligence on file. Credits are deducted immediately and the intelligence is revealed for this org. - **Slow path** (`outcome: "unlock_pending"`, HTTP 202): the entity has no extracted intelligence yet. Credits are held against your balance, the extraction pipeline is triggered (~3-5 minutes), and the hold is committed to a real deduction on success or refunded on failure. Poll `GET /unlock-status/{entityType}/{entityId}` until the pipeline completes. - **Idempotent** (`outcome: "idempotent"`, HTTP 200): the org has already unlocked this entity. Returns immediately with 0 credits charged. **Contact unlocks require the parent district or school to be unlocked first.** If the parent is locked, the response is 403 PARENT_ENTITY_LOCKED. Optional `re_extract: true` (districts/schools only) re-triggers extraction on an already-unlocked entity. Charges credits again. Not valid for contacts. **Credit costs:** District (6School (6), Contact (2).
List email prompt templates GET
Get all email prompt templates for the current user. Used with the generate-email endpoint.