From aa00cf66217b42f5d9c8a52394924b6a4795fd20 Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Wed, 25 Mar 2026 13:39:41 +0000
Subject: [PATCH] Align API docs with backend implementation
Generated-By: mintlify-agent
---
api-reference/agents.mdx | 22 ++++++++++------------
api-reference/ai.mdx | 10 +++++-----
api-reference/health.mdx | 15 ++++++++-------
3 files changed, 23 insertions(+), 24 deletions(-)
diff --git a/api-reference/agents.mdx b/api-reference/agents.mdx
index 5c66938..e23428d 100644
--- a/api-reference/agents.mdx
+++ b/api-reference/agents.mdx
@@ -266,7 +266,7 @@ Provisions a new agent. Requires an active subscription unless the caller is an
| `config` | object | No | Agent configuration |
| `tier` | string | No | Subscription tier hint. Options: `starter`, `pro`, `enterprise`. This value is forwarded to the backend as the `plan` field (mapped to `solo`, `collective`, `label`, `network`). When omitted, the backend deployment defaults to `label`. |
-The web proxy enforces agent limits based on the subscription tier (`starter`: 1, `pro`: 3, `enterprise`: 100). The backend provisioning route (`POST /api/provision`) enforces its own limits (`solo`: 1, `collective`: 3, `label`: 10, `network`: unlimited). Each plan maps to a Render instance type: `solo` → `starter` (512 MB RAM), `collective` → `standard` (2 GB RAM), `label` → `pro` (4 GB RAM), `network` → `pro_plus` (8 GB RAM). The limit cannot be overridden in the request body.
+The web proxy enforces agent limits based on the subscription tier (`starter`: 1, `pro`: 3, `enterprise`: 100). The backend provisioning route (`POST /api/provision`) enforces its own limits (`solo`: 1, `collective`: 3, `label`: 10, `network`: practically unlimited). Plan resource allocations: `solo` → 2 GB RAM / 1 CPU, `collective` → 4 GB RAM / 2 CPUs, `label` → 8 GB RAM / 4 CPUs, `network` → 16 GB RAM / 4 CPUs. The limit cannot be overridden in the request body.
### Admin bypass
@@ -636,7 +636,7 @@ Lifecycle operations are available at two endpoint patterns depending on which s
Both patterns support the same actions. The examples below use the backend pattern.
-All lifecycle operations require the Render API to be available. When the Render API is unreachable, these endpoints return `500` with an error message describing the failure. You can check availability using the [backend health endpoint](/api-reference/health#backend-health-check) — when the `render` field is `unavailable`, lifecycle operations will fail. The API itself continues to serve non-lifecycle endpoints normally.
+All lifecycle operations require the Render API to be available. When the Render API is unreachable, these endpoints return `500` with an error message describing the failure. You can check availability using the [backend health endpoint](/api-reference/health#backend-health-check) — when the `docker` field is `unavailable`, lifecycle operations will fail. The API itself continues to serve non-lifecycle endpoints normally.
### Start agent
@@ -1025,22 +1025,20 @@ When calling the backend provisioning service directly, the response includes ad
"container": {
"name": "agentbot-agent-a1b2c3d4e5",
"status": "running",
- "serviceId": "srv-abc123def456",
- "url": "https://agentbot-agent-a1b2c3d4e5.onrender.com"
+ "port": 19000,
+ "gatewayUrl": "http://127.0.0.1:19000"
}
}
```
-The `container` object is included when the backend successfully creates a Render service for the agent. If service creation fails (for example, when the Render API is unavailable), provisioning still succeeds and the `container` field is omitted. The agent can operate using API-side processing until the service becomes available. You can check Render API availability using the [backend health endpoint](/api-reference/health#backend-health-check).
+The `container` object is included when the backend successfully creates a service for the agent. If service creation fails (for example, when the Render API is unavailable), provisioning still succeeds and the `container` field is omitted. The agent can operate using API-side processing until the service becomes available. You can check Render API availability using the [backend health endpoint](/api-reference/health#backend-health-check).
| Field | Type | Description |
|-------|------|-------------|
-| `container.name` | string | Render service name |
+| `container.name` | string | Service container name |
| `container.status` | string | Service status (for example, `running`, `suspended`) |
-| `container.serviceId` | string | Render service identifier |
-| `container.url` | string | Public URL of the deployed Render service |
-
-The following `container` response fields are deprecated and no longer returned: `port`, `gatewayUrl`. Agents are now provisioned as Render web services with a public URL instead of local Docker containers with mapped ports.
+| `container.port` | number | Host port mapped to the agent's internal gateway port (`18789`) |
+| `container.gatewayUrl` | string | Local gateway URL in the format `http://127.0.0.1:` |
### Errors
@@ -1049,7 +1047,7 @@ When calling the backend provisioning service directly, the response includes ad
| 400 | At least one channel token required (Telegram, WhatsApp, or Discord), or invalid `aiProvider` value |
| 400 | Invalid plan value. The `plan` field must be one of `solo`, `collective`, `label`, or `network`. Unrecognized values (including the default `free`) return this error. |
| 402 | Active subscription required. Returned when a valid plan is specified but no Stripe subscription ID is provided and the caller is not an admin or tester. The response body includes a `code` field set to `PAYMENT_REQUIRED`. |
-| 402 | Agent limit reached for your plan. The response body includes a `code` field set to `AGENT_LIMIT_REACHED`, along with `current` (current agent count) and `limit` (maximum allowed) fields. Provisioning limits: `solo` 1, `collective` 3, `label` 10, `network` unlimited. |
+| 402 | Agent limit reached for your plan. The response body includes a `code` field set to `AGENT_LIMIT_REACHED`, along with `current` (current agent count) and `limit` (maximum allowed) fields. Provisioning limits: `solo` 1, `collective` 3, `label` 10, `network` practically unlimited. |
| 500 | Internal server error |
| 502 | Provisioning service unavailable or returned an error. All backend URLs failed or returned non-success responses. |
| 503 | Provisioning is temporarily disabled (kill switch active) |
@@ -1081,7 +1079,7 @@ The `aiProviderConfig` object returned in the provision response uses different
| `gemini` | `gemini-2.0-flash` | `https://generativelanguage.googleapis.com/v1beta/models` |
| `groq` | `mixtral-8x7b-32768` | `https://api.groq.com/openai/v1` |
| `anthropic` | `claude-3-sonnet-20240229` | `https://api.anthropic.com/v1` |
-| `openai` | `openai/gpt-4o` | `https://api.openai.com/v1` |
+| `openai` | `gpt-4o` | `https://api.openai.com/v1` |
| `minimax` | `MiniMax/MiniMax-Text-01` | `https://api.minimax.chat/v1` |
Each provider includes a fallback model in the service config that is used automatically when the primary model is unavailable or returns an error.
diff --git a/api-reference/ai.mdx b/api-reference/ai.mdx
index c18703b..2d06f7e 100644
--- a/api-reference/ai.mdx
+++ b/api-reference/ai.mdx
@@ -270,14 +270,14 @@ Each subscription plan grants access to a specific set of AI models. The chat en
| Plan | Price | Models | Provision limit | Skill limit | A2A messages/day |
|------|-------|--------|-----------------|-------------|------------------|
-| `solo` | £29/mo | `openai/gpt-4o-mini`, `openai/gpt-4o`, `google/gemini-2.0-flash`, `anthropic/claude-3.5-sonnet`, `xiaomi/mimo-v2-pro` | 1 | 10 | 500 |
-| `collective` | £69/mo | `openai/gpt-4o-mini`, `openai/gpt-4o`, `openai/gpt-4-turbo`, `google/gemini-2.0-flash`, `anthropic/claude-3.5-sonnet`, `anthropic/claude-3-opus`, `xiaomi/mimo-v2-pro` | 3 | 25 | 2,000 |
-| `label` | £149/mo | `openai/gpt-4o-mini`, `google/gemini-2.0-flash`, `xiaomi/mimo-v2-pro` | 10 | 3 | 100 |
-| `network` | £499/mo | All models | Unlimited | 100 | 10,000 |
+| `label` | £29/mo | `openai/gpt-4o-mini`, `google/gemini-2.0-flash`, `xiaomi/mimo-v2-pro` | 1 | 3 | 100 |
+| `solo` | £79/mo | `openai/gpt-4o-mini`, `openai/gpt-4o`, `google/gemini-2.0-flash`, `anthropic/claude-3.5-sonnet`, `xiaomi/mimo-v2-pro` | 3 | 10 | 500 |
+| `collective` | £199/mo | `openai/gpt-4o-mini`, `openai/gpt-4o`, `openai/gpt-4-turbo`, `google/gemini-2.0-flash`, `anthropic/claude-3.5-sonnet`, `anthropic/claude-3-opus`, `xiaomi/mimo-v2-pro` | 10 | 25 | 2,000 |
+| `network` | £499/mo | All models | 100 | 100 | 10,000 |
Admin users are automatically granted `network`-level access regardless of their subscription plan.
-The plan middleware enforces model access based on the `x-user-plan` header. The `label` plan has the smallest model set (3 models) despite having a higher provision limit (10 agents) than `solo`. This is because `label` is designed for label operations where fewer model choices are needed but more agents are required.
+The plan middleware enforces model access based on the `x-user-plan` header. The `label` plan has the smallest model set (3 models) and is the entry-level tier designed for basic operations. The `solo` plan offers more models and a higher skill limit for individual users.
## Model fallbacks
diff --git a/api-reference/health.mdx b/api-reference/health.mdx
index cb85855..bbe13c1 100644
--- a/api-reference/health.mdx
+++ b/api-reference/health.mdx
@@ -94,8 +94,9 @@ No authentication required. Returns backend service status including Render API
{
"status": "ok",
"timestamp": "2026-03-19T00:00:00Z",
- "render": "available",
- "provisioning": "enabled"
+ "docker": "available",
+ "provisioning": "enabled",
+ "provider": "render"
}
```
@@ -103,10 +104,9 @@ No authentication required. Returns backend service status including Render API
|-------|------|-------------|
| `status` | string | Always `ok` when the backend is running |
| `timestamp` | string | ISO 8601 timestamp of the health check |
-| `render` | string | Render API availability. `available` when the Render API is reachable, `unavailable` otherwise. |
+| `docker` | string | Provisioning infrastructure availability. `available` when the Render API is reachable, `unavailable` otherwise. Despite the field name, this checks the Render API — the name is a legacy artifact from when agents ran as local Docker containers. |
| `provisioning` | string | Agent provisioning capability. `enabled` when the Render API is available, `disabled` otherwise. |
-
-The `docker` field is deprecated and no longer returned. Use the `render` field instead to check provisioning infrastructure availability.
+| `provider` | string | Infrastructure provider. Always `render`. |
### Response when Render API is unavailable
@@ -116,8 +116,9 @@ When the Render API is not reachable, the health endpoint still returns HTTP `20
{
"status": "ok",
"timestamp": "2026-03-19T00:00:00Z",
- "render": "unavailable",
- "provisioning": "disabled"
+ "docker": "unavailable",
+ "provisioning": "disabled",
+ "provider": "render"
}
```