Request logs

Check records every request made to its API — the method, path, status code, timing, and the (scrubbed) request and response bodies. These API logs are available three ways:

  • In the API — query them programmatically with GET /logs and fetch a single log with GET /logs/{id}. See the API log object for the full schema.
  • In Console — browse and filter them in the API Logs tab of the Developers section. See API Logs in Console.
  • In the Check MCP server and CLI — so you (or an AI coding agent) can ask for logs from your editor or terminal.

Logs returned through the API and Console are scoped to requests made with your API key; requests originating from Console or embedded Components are not included.

Looking up a specific request

Every API response includes an X-Request-Log-Id header containing the unique ID of that request's log:

X-Request-Log-Id: log_aB3cDeFgHiJkLmNoPqRs

The ID is always 24 characters: a log_ prefix followed by 20 alphanumeric characters. Capture it alongside your own application logs, and you can jump straight to the full request with a single call — no searching by path, status, and time:

curl https://api.checkhq.com/logs/log_aB3cDeFgHiJkLmNoPqRs \
  -H "Authorization: Bearer <API_KEY>"

Querying logs

GET /logs returns your logs, most recent first, with cursor-based pagination (default page size 25, maximum 100). Filters combine with AND across different parameters and OR within a repeated parameter:

  • path — case-insensitive substring match on the request path (e.g. ?path=/payrolls).
  • method — one or more HTTP methods (e.g. ?method=GET&method=POST).
  • status_code — exact codes (404) and/or status classes (2xx, 3xx, 4xx, 5xx). For example, ?status_code=4xx&status_code=500 returns every 4xx plus exact 500s.
  • idempotency_key — the idempotency key sent with a request.
  • created_after / created_before — an ISO-8601 time range over when the request was received.

For example, to find yesterday's client errors on the payrolls endpoint:

curl -G https://api.checkhq.com/logs \
  -H "Authorization: Bearer <API_KEY>" \
  --data-urlencode "path=/payrolls" \
  --data-urlencode "status_code=4xx" \
  --data-urlencode "created_after=2026-05-27T00:00:00Z" \
  --data-urlencode "created_before=2026-05-28T00:00:00Z"

Sensitive data

SSNs, bank account numbers, and the Authorization header are redacted before a log is stored, so they never appear in a response. Large request or response bodies may be truncated or dropped, in which case the field is returned as null; the maximum stored body size is 1 MB.

Contacting support

If you need Check's help with a specific request, share its X-Request-Log-Id (and the approximate time and the expected vs. actual behavior) when you open a ticket. That lets our team locate the exact request immediately.


Did this page help you?