When a request fails, the Dealroom API returns a JSON envelope with a consistent shape and
an HTTP status code. Error codes are stable strings — switch on error.code in your client
rather than parsing the human-readable message.
Response envelope
Error-code catalog
Common scenarios
Invalid filter expression
Invalid enum value
Enum filters (round_type, preferred_round, investor_type, article_type) accept a
closed, case-insensitive value set. An unknown value returns 400 rather than an empty
result — discover valid values via /reference/filters/{key}/values.
The API requires Authorization on every authenticated request. API-key (M2M)
requests additionally require X-Client-Id set to the key’s client_id. The
status code depends on which header is missing:
- Missing
Authorization → 401 UNAUTHORIZED
- Missing
X-Client-Id on an M2M request → 400 VALIDATION_ERROR
Expired token
After your access_token expires (default 24h):
Refresh the token via the OAuth2 client-credentials flow — see the
Quickstart. The SDK snippets in the
Authentication guide handle this automatically.
Query timeout
A heavy aggregate or unfiltered list query may exceed the 15-second execution budget:
Narrow the query (add filters, reduce limit) or switch to a purpose-built
aggregate endpoint instead of paging through raw entities.
Handling errors
Switch on error.code — it’s stable across API versions. Messages may change for clarity.
Treat the message field as informative, not contractual. Always switch on
code.
Endpoint-specific errors
Each endpoint may return a subset of these codes plus endpoint-specific ones. See the
API Reference for the catalog per endpoint.