Webhook Payload Schema
Every webhook delivery shares a common envelope:
{
"id": "evt_01HZX...", // event ID, unique
"type": "extraction.completed",
"created_at": "2024-08-12T10:23:04Z",
"workspace_id": "ws_01HZX...",
"data": { /* event-specific payload */ }
}extraction.completed
{
"id": "evt_...", "type": "extraction.completed", "created_at": "...",
"workspace_id": "ws_...",
"data": {
"extraction": { /* full Extraction object */ }
}
}extraction.failed
{
"id": "evt_...", "type": "extraction.failed", "created_at": "...",
"workspace_id": "ws_...",
"data": {
"extraction_id": "ext_...",
"file_name": "invoice.pdf",
"error_code": "extraction_failed",
"error_message": "Could not detect text in document."
}
}api_key.revoked
{
"id": "evt_...", "type": "api_key.revoked", "created_at": "...",
"workspace_id": "ws_...",
"data": {
"api_key_id": "key_...",
"name": "production",
"revoked_by": "user_..."
}
}billing.credits_low
{
"id": "evt_...", "type": "billing.credits_low", "created_at": "...",
"workspace_id": "ws_...",
"data": {
"credits_remaining": 120,
"credits_total": 2000,
"threshold_percent": 10
}
}