MaxDay AI
API consoleAPI v1

API overview

MethodPathPurposeSuccess status
POST/openapi/v1/projectsCreate a projectHTTP 201
GET/openapi/v1/projectsList projects available to the current accountHTTP 200
GET/openapi/v1/appsList published Apps in a projectHTTP 200
GET/openapi/v1/apps/{appId}Get App parameters, steps, examples, and estimated priceHTTP 200
POST/openapi/v1/app-runsCreate an App RunHTTP 201
GET/openapi/v1/app-runs/{runId}Get Run status and resultsHTTP 200

v1 does not currently provide APIs for deleting or updating projects, listing Runs, canceling Runs, or retrying Runs.

App-specific parameters

After obtaining an appId, call the App details API to read that App's parameter contract, including:

  • The App name and purpose;
  • The name, type, required status, default value, and example for every input key;
  • Supported media formats, sizes, or duration limits;
  • The name and type of every output;
  • A complete inputJson example that can be run directly;
  • The current estimated price and factors that may affect the actual price.

The outfit_prompt and character_image fields in this documentation only demonstrate the protocol. They are not supported by every App. Actual requests must follow the current data.inputs returned by the App details API.

Complete App Run flow

  1. Get a Project ID Call GET /openapi/v1/projects to select an existing project. If no project is available, call POST /openapi/v1/projects to create one.
  2. Select an App and read its parameters Call GET /openapi/v1/apps to select a published App in the project, then call GET /openapi/v1/apps/{appId} and prepare inputJson from the returned data.inputs.
  3. Create an App Run Call POST /openapi/v1/app-runs with the App ID, Project ID, and inputJson, then save the returned Run ID.
  4. Poll the Run status Call GET /openapi/v1/app-runs/{runId} to check progress. Continue polling while the status is pending, queued, or running.
  5. Process the result Stop polling when the status becomes succeeded, partial_success, failed, or canceled, then read data.outputs or data.error.