Documentation Index
Fetch the complete documentation index at: https://docs.titanx.io/llms.txt
Use this file to discover all available pages before exploring further.
Overview
This documents thejob.completed webhook callback that TitanX sends to your configured endpoint once an entire job has been fully finalized — meaning all contacts in that job have been processed and scored.
Related Documentation:
- Webhooks Guide - Implementation guide with code examples and event comparison
- job.contact.scored callback - Per-contact webhook event
- Webhook Management API - Endpoints to create and manage webhooks
When Does This Fire?
job.completed fires once per job when the job reaches a terminal state. This happens in one of two scenarios:
- All contacts scored — every contact in the job has been fully processed and scored
- No contacts enriched — all contacts were rejected during enrichment (job finalized as “Not Enriched”)
jobStatus will be "Finalized". Timing depends on job size and current processing load.
If you want a real-time per-contact signal, use
job.contact.scored. Use job.completed when you need a single notification that the entire batch is ready.POST job.completed
TitanX sends this POST request to your configured webhook URL when a job is fully finalized.Headers
HMAC-SHA256 signature (base64) of the request body. Always verify this before processing.Example:
jdoe+XYZ123abc/def456GHI789==Always
application/jsonExample:
TitanX-Webhooks/1.0Request Body
Job summary data.
Always
"job.completed" for this callback.Unix timestamp in milliseconds when the event occurred.Example:
1705318200000API version. Currently
"v2".Unique identifier for this webhook delivery (UUID). Use this for idempotency.Example:
"7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d"Expected Response
Your endpoint should return a 2xx status code within 10 seconds.| Status Code | Behavior |
|---|---|
200-299 | Success — no retry |
400-499 | Client error — no retry (except 408, 429) |
408, 429 | Will retry |
500-599 | Server error — will retry with exponential backoff |
Example Payload
Handling the Event
Security
All webhook requests includeX-TitanX-Signature. See Verifying Webhook Signatures for implementation examples in Node.js and Python.
OpenAPI Definition
The complete OpenAPI 3.1 specification for this webhook callback is available in the openapi.json file under thewebhooks section:
The webhook payload uses the
JobCompletedWebhookEventPayload schema defined in the OpenAPI spec. This schema is generated directly from the application’s TypeScript types to ensure the documentation always matches the actual implementation.