MaxDay AI
API consoleAPI v1

Errors and version compatibility

Application error codes

All errors below return HTTP 200:

data.error.codeMeaningRecommended action
INVALID_REQUESTInvalid JSON, headers, Content-Type, method, path, or field formatCorrect the request before retrying
INVALID_API_KEYAPI Key is missing, malformed, invalid, or revokedUse an active Key; do not blindly retry the original request
FORBIDDENThe current account is not allowed to perform the operationConfirm account permissions before retrying
PROJECT_NOT_FOUNDThe Project ID is invalid or unavailable to the current accountUse a valid Project ID returned by the project list
APP_NOT_FOUNDThe App ID is invalid or unavailable to the current accountConfirm the App ID and availability with the publisher
APP_INPUT_INVALIDAn inputJson key, type, required value, or media URL violates the App contractCorrect the input before retrying
INSUFFICIENT_BALANCEThe wallet for the projectId project has insufficient balanceAdd funds to the wallet for that project, then resubmit
RATE_LIMITEDThe account-level rate limit was exceededWait for Retry-After; creation calls must still prevent duplicate submissions
SERVICE_UNAVAILABLEOpenAPI, rate limiting, or execution services are temporarily unavailableDelay with backoff; retrying creation may create duplicate resources
RUN_NOT_FOUNDThe Run ID is invalid or unavailable to the current accountCheck the Run ID and account
INTERNAL_ERRORAn unexpected server error occurred or a frozen result is temporarily unreadableRetry after a delay and retain the requestId; contact support if it persists

When listing published Apps, a missing projectId or an invalid pageNo or pageSize type or range returns INVALID_REQUEST. An invalid Project ID, or a project the current account cannot edit, returns PROJECT_NOT_FOUND.

Error-handling recommendations:

  1. Follow Retry-After for RATE_LIMITED.
  2. Use exponential backoff with random jitter for SERVICE_UNAVAILABLE, INTERNAL_ERROR, and network timeouts.
  3. Creation APIs have no idempotency parameter. Do not blindly retry when the network result is unknown.
  4. Do not retry parameter, authentication, permission, or balance errors without a limit.
  5. When contacting support, provide the request time, API path, X-Request-Id, and data.error.code, but never the complete API Key.

Integration checklist

  • API Keys are stored only in a server-side secret store and never appear in frontend code or logs.
  • The system does not select a wallet based on the API Key; the project used to create a Run has the intended ownership.
  • The client gets the App ID from the project's App list, then reads the current input contract from App details.
  • Creation UI and network retry logic prevent duplicate submissions, and the client understands that another POST creates a new resource.
  • The client checks the top-level message for success; on failure it reads data.error.code, and on success it reads business results from data.
  • The client handles prices as decimal strings.
  • Media URLs use HTTPS, require no Cookie for the execution service to access, and do not point to private networks or temporary sign-in pages.
  • The client uses exponential backoff with jitter for network and retryable errors.
  • The client stops polling when the status becomes succeeded, partial_success, failed, or canceled.
  • Logs retain X-Request-Id while filtering Authorization headers and complete API Keys.

Version compatibility

The current version prefix is /openapi/v1. Clients must ignore unknown optional response fields added within v1. Existing fields will not change meaning or be removed. Breaking changes will use a new version prefix.