Skip to content

Runs

List runs and retrieve run status and results.

List Runs

GET /v1/runs

List runs for your workspace with cursor-based pagination.

Headers

HeaderRequiredDescription
AuthorizationYesBearer <api-key>

Query Parameters

ParameterTypeDefaultDescription
limitnumber10Maximum runs to return (1-100)
cursorstring--Pagination cursor from a previous response

Example Request

bash
curl "https://api.monid.ai/v1/runs?limit=10" \
  -H "Authorization: Bearer monid_live_..."
typescript
const response = await fetch("https://api.monid.ai/v1/runs?limit=10", {
  headers: { "Authorization": "Bearer monid_live_..." },
});

const data = await response.json();
python
import requests

response = requests.get(
    "https://api.monid.ai/v1/runs",
    headers={"Authorization": "Bearer monid_live_..."},
    params={"limit": 10},
)

data = response.json()

200 OK

FieldTypeDescription
itemsarrayList of run summaries
items[].runIdstringRun identifier
items[].callerstringCaller identifier
items[].providerstringProvider slug
items[].providerNamestringProvider display name
items[].endpointstringEndpoint path
items[].statusstring"READY", "RUNNING", "COMPLETED", or "FAILED"
items[].errorobject | nullError details (if failed)
items[].priceobjectEndpoint pricing
items[].costobject | nullActual cost charged
items[].createdAtstringISO 8601 timestamp
items[].startedAtstring | nullWhen execution started
items[].completedAtstring | nullWhen execution finished
cursorstring | nullCursor for the next page. null if last page.

Example Response

json
{
  "items": [
    {
      "runId": "01HXYZ1234567890ABCDEF",
      "caller": "USER#user_abc123",
      "provider": "apify",
      "providerName": "Apify",
      "endpoint": "/apidojo/tweet-scraper",
      "status": "COMPLETED",
      "error": null,
      "price": {
        "type": "PER_CALL",
        "amount": 0.003,
        "currency": "USD"
      },
      "cost": {
        "value": 0.003,
        "currency": "USD"
      },
      "createdAt": "2026-03-28T10:30:00.000Z",
      "startedAt": "2026-03-28T10:30:01.000Z",
      "completedAt": "2026-03-28T10:30:15.000Z"
    }
  ],
  "cursor": null
}

Get Run

GET /v1/runs/:runId

Get the status and results of a specific run.

Headers

HeaderRequiredDescription
AuthorizationYesBearer <api-key>

Path Parameters

ParameterTypeDescription
runIdstringThe run ID to look up

Example Request

bash
curl "https://api.monid.ai/v1/runs/01HXYZ1234567890ABCDEF" \
  -H "Authorization: Bearer monid_live_..."
typescript
const response = await fetch(
  "https://api.monid.ai/v1/runs/01HXYZ1234567890ABCDEF",
  {
    headers: { "Authorization": "Bearer monid_live_..." },
  }
);

const data = await response.json();
python
import requests

response = requests.get(
    "https://api.monid.ai/v1/runs/01HXYZ1234567890ABCDEF",
    headers={"Authorization": "Bearer monid_live_..."},
)

data = response.json()

200 OK

FieldTypeDescription
runIdstringRun identifier
callerstringCaller identifier
providerstringProvider slug
providerNamestringProvider display name
endpointstringEndpoint path
statusstringRun status
inputobjectInput parameters
outputany | nullResults (only for COMPLETED runs)
errorobject | nullError details (only for FAILED runs)
priceobjectEndpoint pricing
costobject | nullActual cost charged
createdAtstringISO 8601 timestamp
startedAtstring | nullWhen execution started
completedAtstring | nullWhen execution finished

Example Response

json
{
  "runId": "01HXYZ1234567890ABCDEF",
  "caller": "USER#user_abc123",
  "provider": "apify",
  "providerName": "Apify",
  "endpoint": "/apidojo/tweet-scraper",
  "status": "COMPLETED",
  "input": {
    "searchTerms": ["AI"],
    "maxItems": 10
  },
  "output": [
    {
      "text": "The future of AI is...",
      "author": "@user123",
      "createdAt": "2026-03-28T09:00:00Z"
    }
  ],
  "error": null,
  "price": {
    "type": "PER_CALL",
    "amount": 0.003,
    "currency": "USD"
  },
  "cost": {
    "value": 0.003,
    "currency": "USD"
  },
  "createdAt": "2026-03-28T10:30:00.000Z",
  "startedAt": "2026-03-28T10:30:01.000Z",
  "completedAt": "2026-03-28T10:30:15.000Z"
}

Caching

Completed runs (COMPLETED or FAILED) include a Cache-Control: max-age=300 header (5 minutes). Running runs are not cached.

Run Statuses

StatusMeaning
READYQueued, waiting to start
RUNNINGActively executing
COMPLETEDFinished successfully -- output contains results
FAILEDExecution failed -- error contains details

The data layer for AI agents.