Protocol mechanics the themed APIs do not cover: 202 Accepted with job polling, 301/302 redirects (and a chain), 503 with Retry-After, a guaranteed 504, Accept-based content negotiation with 406, HATEOAS links, RFC 6902 JSON Patch and 410 Gone.
The Protocol Lab is the catalog's HTTP semantics bench, and covers what most mock APIs never do: 202-accepted async jobs you poll to completion, 301 and 302 redirects, 503 and 504 outages, JSON Patch, and content negotiation that answers 406 when it cannot satisfy your Accept header. If a client library is going to surprise you, it will surprise you here.
Base URL: https://funapi.dev/api/protocol/v1 · 12 endpoints · OpenAPI 3.1 spec and Postman collection available. New here? Read the getting started guide.
GET https://funapi.dev/api/protocol/v1/moved/old-dashboard — Permanently moved — 301. No token, no signup:
curl -i https://funapi.dev/api/protocol/v1/moved/old-dashboard
answers 301 Moved Permanently with:
{
"error": "Moved Permanently",
"message": "The dashboard lives at /moved/new-dashboard now. Note that curl needs -L to follow redirects."
}
202 Accepted + poll to completion
POST /protocol/v1/jobs — Start an async job — 202 Accepted · Responds with 202 400 Link to this endpointGET /protocol/v1/jobs/{id} — Poll a job — progresses on every poll · Responds with 200 404 Link to this endpoint301, 302 and a chain to follow
GET /protocol/v1/moved/old-dashboard — Permanently moved — 301 · Responds with 301 Link to this endpointGET /protocol/v1/moved/new-dashboard — Where the 301 leads · Responds with 200 Link to this endpointGET /protocol/v1/hop — A 302 redirect chain — follow it down · Responds with 200 302 400 Link to this endpoint503 & 504 on demand
GET /protocol/v1/maintenance — Scheduled maintenance — 503 + Retry-After · Responds with 503 Link to this endpointGET /protocol/v1/gateway-timeout — Slow upstream — waits ~3s, then 504 · Responds with 504 Link to this endpointHATEOAS, JSON Patch, 406 & 410
GET /protocol/v1/export/documents — Content negotiation via Accept (406 on anything else) · Responds with 200 406 Link to this endpointGET /protocol/v1/documents — List documents (HATEOAS links) · Responds with 200 Link to this endpointGET /protocol/v1/documents/{id} — Get a document (410 after deletion) · Responds with 200 404 410 Link to this endpointPATCH /protocol/v1/documents/{id} — RFC 6902 JSON Patch (op/path/value) · Responds with 200 400 404 409 Link to this endpointDELETE /protocol/v1/documents/{id} — Delete a document (admin only, then 410) (requires Bearer auth) · Responds with 204 401 403 404 410 Link to this endpointLast updated