Developer docs

Monarch API

Build with Monarch using the CLI, REST API or MCP, then explore endpoints, examples and schemas below.

Base URLhttps://app.africacomputefund.com

Start here

Start with a Project

Create a Project, copy its one-time server key, then add data, users, storage or AI as your app needs them.

  1. 1
    Create a Project

    A Project is your app's boundary for database, storage, users, usage and server credentials.

    Open Projects
  2. 2
    Copy a Project Service Key

    Backend keys begin with mkp_ and are returned once. Keep them server-side.

    Create server key
  3. 3
    Make your first request

    Write JSON to the Project document database, then reuse the same server key for storage, AI and compute when needed.

    Browse Project APIs
  4. 4
    Add application users

    Auth-enabled Projects can sign up email/password users and return scoped mpu_ sessions for their own private data and files.

    Open auth endpoints
  5. 5
    Manage users safely

    List users and auth analytics with auth:read. Use auth:write only for signup policy, user enable/disable and session revocation.

    Open Auth dashboard
First Project requestPUT /v1/projects/{project_id}/data/{collection}/{document_id}
export PROJECT_ID="prj_your_project_id"
export MONARCH_KEY="mkp_your_project_key"

curl -X PUT \
  "https://app.africacomputefund.com/v1/projects/$PROJECT_ID/data/users/ian" \
  -H "Authorization: Bearer $MONARCH_KEY" \
  -H "Content-Type: application/json" \
  -d '{"data":{"name":"Ian","active":true}}'

Command line

Monarch CLI

Install from PyPI, sign in with a Monarch REST API key, and work with Projects from a terminal or coding agent.

Get startedPython 3.10+
python3 -m pip install monarch-cloud
monarch login
monarch init "my-first-app"
monarch status
monarch deploy hello ./hello.js

monarch login prompts privately for your REST API key. deploy sends one JavaScript Project Function from an existing file, not an entire app. Explore with monarch models or monarch jobs. For OAuth-enabled assistants, connect Monarch MCP.

EndpointPOST/v1/agent-runtime/execute
Agents
GPUs
Models
Datasets
Training
Inference
Voice
Storage
Billing
Account
POST/v1/agent-runtime/executeRun Agent
API key required

Run Agent.

Use when

Use this to create or start the operation. Supply the request body below when it is required.

Returns

A successful response returns the resource data or operation status defined below.

Run one bounded Agent Runtime task using the authenticated principal and its existing permissions. Start new work with an agent configuration or continue prior state with an existing agent id.

Request body Required

Send the fields defined below in the request body.

application/json
Example request body
{
  "agent": {
    "name": "Ops Agent",
    "model": "openai/gpt-4.1-mini",
    "instructions": "Investigate and summarize."
  },
  "input": {
    "messages": [
      {
        "role": "user",
        "content": "Why did the latest job fail?"
      }
    ],
    "files": [],
    "variables": {}
  },
  "limits": {
    "max_steps": 6,
    "timeout_seconds": 120,
    "max_cost_usd": 1
  }
}

Responses

401Authentication is missing or invalid.
application/json
Example response
{
  "detail": {
    "error": "API key is required",
    "code": "UNAUTHORIZED"
  }
}
422Request validation failed.
application/json
Example response
{
  "detail": [
    {
      "loc": [
        "body"
      ],
      "msg": "Request body is invalid",
      "type": "validation_error"
    }
  ]
}
429Rate limit exceeded.
application/json
Example response
{
  "detail": {
    "error": "Rate limit exceeded. Please try again later.",
    "rate_limited": true,
    "retry_after_seconds": 60,
    "rate_limit_reset_at": "2026-09-27T15:01:00Z"
  }
}
500Unexpected server error.
application/json
Example response
{
  "detail": {
    "error": "Internal server error",
    "request_id": "req_example"
  }
}