Skip to main content
WEBHOOK
humanize.job.succeeded
{
  "id": "7b42f1d6-0a8c-4e8f-9a21-c6d9f47c2b10",
  "type": "humanize.job.succeeded",
  "status": "succeeded",
  "mode": "humanize",
  "input_words": 9,
  "words_reserved": 9,
  "words_charged": 9,
  "status_url": "https://wibble.ai/api/v1/humanize/7b42f1d6-0a8c-4e8f-9a21-c6d9f47c2b10",
  "created_at": "2026-06-14T12:00:00.000Z",
  "completed_at": "2026-06-14T12:00:42.000Z",
  "output": "Mitochondria are the cell's powerhouses."
}

Authorizations

Authorization
string
header
required

API key authentication. Pass your key as Authorization: Bearer <key>. Keys look like wib_live_... and are created in the Wibble dashboard. A key must have the humanize scope to use these endpoints.

Headers

X-Wibble-Delivery
string<uuid>
required

Unique delivery ID (UUID). Stable across retries of the same event.

X-Wibble-Event
enum<string>
required

The event type, matching the payload type field.

Available options:
humanize.job.succeeded,
humanize.job.failed
X-Wibble-Signature
string
required

HMAC-SHA256 signature of "{X-Wibble-Timestamp}.{raw request body}" using the API key's webhook signing secret, hex-encoded and prefixed with sha256=.

Pattern: ^sha256=[0-9a-f]{64}$
X-Wibble-Timestamp
string
required

Unix timestamp in seconds at which the request was signed. Recomputed on each retry attempt.

Body

application/json

Payload delivered to your webhook_url when a job reaches a terminal state.

id
string
required

The job ID.

Example:

"7b42f1d6-0a8c-4e8f-9a21-c6d9f47c2b10"

type
enum<string>
required

The event type. Matches the X-Wibble-Event header.

Available options:
humanize.job.succeeded,
humanize.job.failed
status
enum<string>
required

Terminal job status.

Available options:
succeeded,
failed
mode
string
required

The processing mode. Always humanize.

Example:

"humanize"

input_words
integer
required

Number of words counted in the input text.

Example:

9

words_reserved
integer
required

Number of API words reserved for this job.

Example:

9

words_charged
integer
required

Net words charged (words_reserved minus refunds).

Example:

9

status_url
string<uri> | null
required

Absolute URL for polling this job, or null if unavailable.

Example:

"https://wibble.ai/api/v1/humanize/7b42f1d6-0a8c-4e8f-9a21-c6d9f47c2b10"

created_at
string<date-time>
required

ISO 8601 timestamp when the job was created.

Example:

"2026-06-14T12:00:00.000Z"

completed_at
string<date-time> | null
required

ISO 8601 timestamp when the job completed, or null.

Example:

"2026-06-14T12:00:42.000Z"

output
string

The humanized text. Present only when type is humanize.job.succeeded; omitted otherwise.

Example:

"Mitochondria are the cell's powerhouses."

error
object

Present only when the job status is failed; omitted otherwise.

Response

2XX

Return any 2xx status to acknowledge receipt. Non-2xx responses are retried up to the attempt limit.