Skip to content
API v1 preview — endpoints and fields may change before general availability.

Replay a webhook delivery

Replay a webhook delivery. Re-sends one event to its webhook endpoint.

Cost: FreeFree. Replays never charge again.

POST
/webhooks/replay
curl --request POST \
--url https://api.betterjobs.cc/v1/webhooks/replay \
--header 'Authorization: Bearer <token>' \
--header 'BetterJobs-Version: 2026-10-01' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: 7b8f2c4e-1a3d-4f5b-9c6e-0d2a4b6c8e1f' \
--data '{ "event_id": "evt_7Wq1ZxC4vB" }'

Re-sends one event to its webhook endpoint. Use it after fixing a failing endpoint.

BetterJobs-Version
string
Allowed values: 2026-10-01
Example
2026-10-01

Date-pinned API version. Changes within a version are additive only. Defaults to your account’s pinned version.

Idempotency-Key
string
<= 255 characters
Example
7b8f2c4e-1a3d-4f5b-9c6e-0d2a4b6c8e1f

Unique key (for example a UUID). Retrying with the same key and body returns the first response and never charges twice. Same key with a different body returns 409 idempotency_conflict.

Media typeapplication/json
object
event_id
required
string
/^evt_/
Examples
Examplereplay
{
"event_id": "evt_7Wq1ZxC4vB"
}

Replay queued.

Media typeapplication/json
object
event_id
required
string
status
required
string
Allowed values: queued
Examples
Examplequeued
{
"event_id": "evt_7Wq1ZxC4vB",
"status": "queued"
}
X-Request-Id
string
Example
req_7Hc2LmQ9xT

Unique id for this request. Quote it to support.

Invalid request (invalid_request) or unknown filter field (unknown_filter).

Media typeapplication/json
object
error
required
object
type
required
string
Allowed values: invalid_request_error authentication_error billing_error permission_error not_found_error conflict_error rate_limit_error api_error
code
required
string
Allowed values: invalid_request unknown_filter unauthorized insufficient_credits plan_required not_found idempotency_conflict rate_limited internal_error
message
required
string
doc_url
required
string format: uri
request_id
required
string
credits_needed

Present on insufficient_credits.

integer
required_plan
string
Allowed values: free starter growth pro scale enterprise
upgrade_url

Present on insufficient_credits and plan_required.

string format: uri
param

Offending field on invalid_request and unknown_filter.

string
key
additional properties
any
Examples

unknown_filter

{
"error": {
"type": "invalid_request_error",
"code": "unknown_filter",
"message": "Unknown filter field 'job_title_or'. Did you mean 'title_or'?",
"param": "filters.job_title_or",
"doc_url": "https://docs.betterjobs.cc/platform/errors/#unknown_filter",
"request_id": "req_4Bn8CxV2zA"
}
}
X-Request-Id
string
Example
req_7Hc2LmQ9xT

Unique id for this request. Quote it to support.

Missing or invalid API key.

Media typeapplication/json
object
error
required
object
type
required
string
Allowed values: invalid_request_error authentication_error billing_error permission_error not_found_error conflict_error rate_limit_error api_error
code
required
string
Allowed values: invalid_request unknown_filter unauthorized insufficient_credits plan_required not_found idempotency_conflict rate_limited internal_error
message
required
string
doc_url
required
string format: uri
request_id
required
string
credits_needed

Present on insufficient_credits.

integer
required_plan
string
Allowed values: free starter growth pro scale enterprise
upgrade_url

Present on insufficient_credits and plan_required.

string format: uri
param

Offending field on invalid_request and unknown_filter.

string
key
additional properties
any
Examples
Exampleunauthorized
{
"error": {
"type": "authentication_error",
"code": "unauthorized",
"message": "Missing or invalid API key. Send 'Authorization Bearer bj_live_...'.",
"doc_url": "https://docs.betterjobs.cc/platform/errors/#unauthorized",
"request_id": "req_5Dl6EvN0xY"
}
}
X-Request-Id
string
Example
req_7Hc2LmQ9xT

Unique id for this request. Quote it to support.

The resource does not exist.

Media typeapplication/json
object
error
required
object
type
required
string
Allowed values: invalid_request_error authentication_error billing_error permission_error not_found_error conflict_error rate_limit_error api_error
code
required
string
Allowed values: invalid_request unknown_filter unauthorized insufficient_credits plan_required not_found idempotency_conflict rate_limited internal_error
message
required
string
doc_url
required
string format: uri
request_id
required
string
credits_needed

Present on insufficient_credits.

integer
required_plan
string
Allowed values: free starter growth pro scale enterprise
upgrade_url

Present on insufficient_credits and plan_required.

string format: uri
param

Offending field on invalid_request and unknown_filter.

string
key
additional properties
any
Examples
ExamplenotFound
{
"error": {
"type": "not_found_error",
"code": "not_found",
"message": "No job with id 'job_01JC00000000000000000000XX'.",
"doc_url": "https://docs.betterjobs.cc/platform/errors/#not_found",
"request_id": "req_8Gi3HsK7uV"
}
}
X-Request-Id
string
Example
req_7Hc2LmQ9xT

Unique id for this request. Quote it to support.

Same Idempotency-Key reused with a different body.

Media typeapplication/json
object
error
required
object
type
required
string
Allowed values: invalid_request_error authentication_error billing_error permission_error not_found_error conflict_error rate_limit_error api_error
code
required
string
Allowed values: invalid_request unknown_filter unauthorized insufficient_credits plan_required not_found idempotency_conflict rate_limited internal_error
message
required
string
doc_url
required
string format: uri
request_id
required
string
credits_needed

Present on insufficient_credits.

integer
required_plan
string
Allowed values: free starter growth pro scale enterprise
upgrade_url

Present on insufficient_credits and plan_required.

string format: uri
param

Offending field on invalid_request and unknown_filter.

string
key
additional properties
any
Examples
ExampleidempotencyConflict
{
"error": {
"type": "conflict_error",
"code": "idempotency_conflict",
"message": "Idempotency-Key '7b8f2c4e-1a3d-4f5b-9c6e-0d2a4b6c8e1f' was used with a different request body.",
"doc_url": "https://docs.betterjobs.cc/platform/errors/#idempotency_conflict",
"request_id": "req_9Hh2IrJ6tU"
}
}
X-Request-Id
string
Example
req_7Hc2LmQ9xT

Unique id for this request. Quote it to support.

Too many requests. Wait Retry-After seconds.

Media typeapplication/json
object
error
required
object
type
required
string
Allowed values: invalid_request_error authentication_error billing_error permission_error not_found_error conflict_error rate_limit_error api_error
code
required
string
Allowed values: invalid_request unknown_filter unauthorized insufficient_credits plan_required not_found idempotency_conflict rate_limited internal_error
message
required
string
doc_url
required
string format: uri
request_id
required
string
credits_needed

Present on insufficient_credits.

integer
required_plan
string
Allowed values: free starter growth pro scale enterprise
upgrade_url

Present on insufficient_credits and plan_required.

string format: uri
param

Offending field on invalid_request and unknown_filter.

string
key
additional properties
any
Examples
ExamplerateLimited
{
"error": {
"type": "rate_limit_error",
"code": "rate_limited",
"message": "Rate limit exceeded. Retry after 12 seconds.",
"doc_url": "https://docs.betterjobs.cc/platform/errors/#rate_limited",
"request_id": "req_0Ig1JqH5sT"
}
}
X-Request-Id
string
Example
req_7Hc2LmQ9xT

Unique id for this request. Quote it to support.

Retry-After
integer
Example
12

Seconds to wait before retrying.

RateLimit-Limit
integer
Example
60

Requests allowed in the current window.

RateLimit-Remaining
integer
Example
59

Requests left in the current window.

RateLimit-Reset
integer
Example
42

Seconds until the window resets.

Something failed on our side. Safe to retry with the same Idempotency-Key.

Media typeapplication/json
object
error
required
object
type
required
string
Allowed values: invalid_request_error authentication_error billing_error permission_error not_found_error conflict_error rate_limit_error api_error
code
required
string
Allowed values: invalid_request unknown_filter unauthorized insufficient_credits plan_required not_found idempotency_conflict rate_limited internal_error
message
required
string
doc_url
required
string format: uri
request_id
required
string
credits_needed

Present on insufficient_credits.

integer
required_plan
string
Allowed values: free starter growth pro scale enterprise
upgrade_url

Present on insufficient_credits and plan_required.

string format: uri
param

Offending field on invalid_request and unknown_filter.

string
key
additional properties
any
Examples
ExampleinternalError
{
"error": {
"type": "api_error",
"code": "internal_error",
"message": "Unexpected error. Retry with the same Idempotency-Key; you will not be charged twice.",
"doc_url": "https://docs.betterjobs.cc/platform/errors/#internal_error",
"request_id": "req_1Jf0KpG4rS"
}
}
X-Request-Id
string
Example
req_7Hc2LmQ9xT

Unique id for this request. Quote it to support.