Making requests

Base URL, JSON-LD headers, pagination and error handling.

The Resolved API is built with API Platform and speaks JSON-LD (with Hydra for collections). Every request is authenticated with the bearer token you obtained during Authentication.

Base URL and headers

Send the access token in the Authorization header. For responses, request JSON-LD:

curl https://api.resolved.nl/api/case_files \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/ld+json"
Header When Value
Authorization Every call Bearer YOUR_ACCESS_TOKEN
Accept Reads and writes application/ld+json
Content-Type POST / create bodies application/ld+json
Content-Type PATCH application/merge-patch+json

Only JSON-LD is enabled for API resources. Prefer Accept: application/ld+json. Omitting Accept also yields JSON-LD (it is the default). Do not send Accept: application/json — that media type is not enabled and the API will reject it.

Responses include JSON-LD context (@context, @id, @type) and Hydra collection metadata. Treat IRIs (@id) as the stable identifiers when linking resources.

Pagination

Collection endpoints are paginated with Hydra. Follow hydra:next inside hydra:view rather than constructing page numbers yourself, so your integration keeps working if the paging strategy changes.

Keep following hydra:next until it is absent. Do not assume a fixed page size.

Rate limits

Requests are subject to per-app rate limits. When you exceed a limit the API responds with 429 Too Many Requests and a Retry-After header. Back off for the indicated number of seconds and retry.

Errors

The API uses standard HTTP status codes. Error bodies are also JSON-LD and include a machine-readable detail (and related fields):

{
  "@context": "/api/contexts/Error",
  "@type": "hydra:Error",
  "status": 403,
  "detail": "This app is not authorized for the requested scope."
}
  • 401 — the access token is missing or expired. Refresh it and retry.
  • 403 — the token is valid but the app lacks the required scope.
  • 404 — the resource does not exist or is outside the granted locations.
  • 406 — unsupported Accept (for example plain application/json).
  • 415 — unsupported request Content-Type on writes.
  • 429 — you are being rate limited; honour Retry-After.

Next, react to changes as they happen with Webhooks.