HTTP/1.1 400 Bad Request
Content-Type: application/problem+json
X-Request-Id: req_01HV9XK...

{
  "type": "https://docs.digitalseaservice.com/errors/invalid_request",
  "title": "Invalid request",
  "status": 400,
  "detail": "Query parameter 'limit' must be between 1 and 200.",
  "instance": "req_01HV9XK..."
}

What it means

The request didn’t pass our validation rules. The detail field tells you which field and why.

Common causes

CauseFix
Malformed cursor (/v1/me/vessels?cursor=...)Don’t hand-craft cursors. Use the next_cursor from the previous response verbatim.
Out-of-range limitUse 1–200. Defaults are sensible — only set this if you need a specific page size.
Unrecognised query parameterDrop it. We don’t silently accept unknown params.
Missing required headerRe-check the endpoint’s reference page.
Method not allowed (HTTP 405)Most V1 endpoints are GET only. POST/PUT/DELETE return this rather than not_found.

What to do

This is a programming error on your side — retrying without changes won’t help. Fix the request and re-send. For 422-class errors (Pydantic-style field-level validation), we include an errors array with the specific failing fields:
{
  "type": "https://docs.digitalseaservice.com/errors/invalid_request",
  "title": "Request validation failed",
  "status": 422,
  "detail": "One or more fields failed validation.",
  "instance": "req_01HV9XK...",
  "errors": [
    {
      "loc": ["query", "limit"],
      "msg": "Input should be less than or equal to 200",
      "type": "less_than_equal"
    }
  ]
}