Skip to content

What changed on your files

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

Every change on your agency’s files, oldest first. Pass after (the next_after from last time) for only newer events; with neither after nor since you get the last 7 days. Events are kept 90 days. type filters, comma-separated, and accepts a prefix like bind.*.

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

after
integer
since
string format: date-time
type
string
/^[a-z_.*,]+$/
limit
integer
default: 50 >= 1 <= 200

OK

Media typeapplication/json
object
events
required
Array<object>
object
id
required

Cursor: pass the last one as ?after= to get only newer events.

integer
created_at
required
string format: date-time
type
required
string
submission_id
required
string | null format: uuid
data
required

Depends on type; see the webhooks section. Status events add status_text in plain words.

object
next_after
required
integer | null
has_more
required
boolean

Example

{
"events": [
{
"id": 41,
"created_at": "2026-11-02T14:20:00Z",
"type": "submission.status_changed",
"submission_id": "6f2a1c9e-4b3d-4e8a-9c21-7d4e5f6a8b90",
"data": {
"status": "marketing",
"previous": "needs_info",
"status_text": "With insurance markets for review"
}
}
],
"next_after": 41,
"has_more": false
}
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.

Fix the request and send it again (invalid_request, invalid_json).

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": "invalid_request",
"message": "Check the request.",
"issues": [
"insured.state: Too small: expected string to have >=2 characters"
]
}
}

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."
}
}