Developer docs

Monarch API

Build with Monarch from software or the human control plane. Use REST, MCP or the machine-readable discovery entry point, then browse the public API reference.

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}}'
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"
  }
}