Skip to main content
Handle every response by status code and content type. Do not treat a failed response as a successful result.

Handle the response

Distinguish response bodies and diagnostics

Immoteur returns application/problem+json Problem Details for 400, 401, 422, default application errors, and 429 from POST /public/v1/issues. That public issue-report 429 has code rate_limited. Record the traceId from the response body and the X-Trace-Id header when Immoteur emits them. For 403 and 404, verify the token’s access or the requested identifier and lookup target before sending a new request. Do not assume a particular response body or trace header for these responses. For 409, Immoteur returns application/json with a message, configurationUrl, and documentationUrl. Follow the configuration URL or open API → Data Access in the Immoteur dashboard to configure the missing data access, then send a new request. Do not expect Problem Details or a trace ID for this response. For subscription-quota 429 responses, the body is application/json with { "message": "Too Many Requests" }. The RateLimit-* header values are ordered by second, minute, then day; read them instead of hard-coding example values. POST /public/v1/issues uses independent report counters for each authenticated user. Its per-second and per-minute maximums match the current data-access plan, while its daily maximum is the lower of the plan’s daily maximum and 2,500. Report attempts neither debit nor depend on ordinary subscription quota, so ordinary quota exhaustion does not prevent reporting.

Read rate-limit and diagnostic headers

The following headers describe subscription quota on ordinary data endpoints. They do not describe the independent report allowance for POST /public/v1/issues. The public issue-report endpoint uses endpoint-throttle headers instead.

Retry temporary failures safely

For ordinary subscription-quota endpoints, a 503 limiter outage uses application/json with { "message": "Rate limit service unavailable" } and a Retry-After delay. Honor the delay before retrying; the current outage response uses one second. For other transient 5xx responses or network failures, use a bounded backoff and retry policy. Log any available trace IDs, status code, and request context so that a failed retry can be investigated. Do not retry 400, 401, 403, 409, 404, or 422 until you have taken the corrective action above. Use curl --include while integrating to inspect both headers and the response body:
For token and data-access setup, see API tokens and data access. For endpoint-specific errors, use the generated API reference.