Skip to content

Your webhooks

GET
/webhooks
curl -X GET "https://api.valjeanspecialty.com/api/agent/v1/webhooks" \
-H "Authorization: Bearer $VALJEAN_KEY"

Your webhooks, the event types you can subscribe to, and the signature header name.

Any key (read or read-and-submit).

OK

Media typeapplication/json
object
webhooks
required
Array<object>
object
id
required
string format: uuid
url
required
string format: uri
events
required

Empty means every event.

Array<string>
description
required
string | null
active
required
boolean
last_success_at
required
string | null format: date-time
last_failure_at
required
string | null format: date-time
last_error
required
string | null
created_at
required
string format: date-time
event_types
required
Array<string>
signature_header
required
string

Example generated

{
"webhooks": [
{
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"url": "https://example.com",
"events": [
"example"
],
"description": "example",
"active": true,
"last_success_at": "2026-04-15T12:00:00Z",
"last_failure_at": "2026-04-15T12:00:00Z",
"last_error": "example",
"created_at": "2026-04-15T12:00:00Z"
}
],
"event_types": [
"example"
],
"signature_header": "example"
}
RateLimit-Policy
string
Example
"per-key";q=120;w=60

The rate limit for this key, as an IETF RateLimit-Policy: 120 requests (q) per 60-second window (w), counted across all of Valjean’s servers. Over it, you get 429 with Retry-After.

Key or token missing, wrong, expired or revoked (unauthorized). Don’t retry: get a new key or sign in again.

Media typeapplication/json
object
error
required
object
code
required

Machine-readable code, e.g. invalid_request, read_only, not_found, closed, rate_limited.

string
message
required

Plain-English explanation you can show a person.

string
issues

Validation problems, as “field: problem” (400 invalid_request only).

Array<string>

Example

{
"error": {
"code": "unauthorized",
"message": "This API key isn't valid. Ask your Valjean broker for a new one."
}
}

Not allowed: read_only (a read key tried to submit), agency_not_active (no signed broker agreement), not_offered (instant quotes are off), forbidden (API access off for the agency). Don’t retry.

Media typeapplication/json
object
error
required
object
code
required

Machine-readable code, e.g. invalid_request, read_only, not_found, closed, rate_limited.

string
message
required

Plain-English explanation you can show a person.

string
issues

Validation problems, as “field: problem” (400 invalid_request only).

Array<string>

Example

{
"error": {
"code": "read_only",
"message": "This key can read only. Ask your Valjean broker for a key that can submit."
}
}

Too many requests (rate_limited): 120 a minute per key, 30 a minute per IP on public endpoints, counted across all of Valjean’s servers. Wait Retry-After seconds.

Media typeapplication/json
object
error
required
object
code
required

Machine-readable code, e.g. invalid_request, read_only, not_found, closed, rate_limited.

string
message
required

Plain-English explanation you can show a person.

string
issues

Validation problems, as “field: problem” (400 invalid_request only).

Array<string>

Example

{
"error": {
"code": "rate_limited",
"message": "Too many requests. Try again in a minute."
}
}
Retry-After
integer
Example
60

Seconds to wait.

Something went wrong on Valjean’s side (server_error). Safe to retry later; creates are idempotent with client_reference or an Idempotency-Key header.

Media typeapplication/json
object
error
required
object
code
required

Machine-readable code, e.g. invalid_request, read_only, not_found, closed, rate_limited.

string
message
required

Plain-English explanation you can show a person.

string
issues

Validation problems, as “field: problem” (400 invalid_request only).

Array<string>

Example

{
"error": {
"code": "server_error",
"message": "Something went wrong. Try again shortly."
}
}