🌐 Base URL
All API requests are made to your Forge deployment:/api/v1/ and /api/v2/. Both versions are active. V2 endpoints expose the definition-layer shape for agents and add support for skills, models, workflows, budgets, and evals.
🔑 Authentication
Every request must include a bearer token in theAuthorization header.
API Keys
API keys are created and managed through the Keys endpoints. Each key is scoped to a specific set of permissions and optionally has an expiration time.Scopes
Every API key is granted a set of scopes that determine which endpoints it can access. A key can only create child keys with a subset of its own scopes.| Scope | Grants Access To |
|---|---|
agents:read | List and get agents (v1 and v2), agent cards, deployments, lifecycle history |
agents:write | Transition lifecycle stages, deploy, undeploy |
runs:read | List and get workflow runs and their steps |
events:read | Query events, get event summaries, SSE event stream |
cost:read | Query cost aggregates |
keys:manage | Create, list, and revoke API keys |
skills:read | List and get skill definitions |
models:read | List and get model catalog entries |
workflows:read | List and get workflow definitions |
budgets:read | Get budget status |
evals:read | List evaluation sets and their runs |
📋 Response Format
All responses follow a consistent envelope structure.Success Responses
The response payload. A single object for detail endpoints, an array for list endpoints.
Request metadata. Always includes
requestId. List endpoints also include hasMore and nextCursor for pagination.Error Responses
A machine-readable error code. See the error codes table below.
A human-readable description of what went wrong.
❌ Error Codes
| Code | HTTP Status | Description |
|---|---|---|
unauthorized | 401 | Missing or invalid API key. The Authorization header is absent or the key has been revoked. |
forbidden | 403 | The API key is valid but lacks the required scope for this endpoint. |
not_found | 404 | The requested resource does not exist. |
bad_request | 400 | The request body or query parameters are malformed or fail validation. |
internal_error | 500 | An unexpected server-side error. Include the requestId from meta when reporting issues. |
📄 Pagination
List endpoints support cursor-based pagination. When more results are available, the response includeshasMore: true and a nextCursor value.
Pagination Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | integer | 25-50 (varies by endpoint) | Maximum number of results per page. Range: 1-100. |
cursor | string | (none) | Opaque cursor from a previous response’s nextCursor. |
⏱️ Rate Limiting
The Platform API enforces rate limits per API key. When you exceed the limit, the API returns a429 Too Many Requests response with a Retry-After header indicating when you can retry.
Rate limits are applied per API key, not per IP address. Contact the Forge team if you need higher limits for production workloads.
📦 Endpoint Groups
The API is organized into the following groups. Each endpoint is documented individually in the sidebar below.| Group | Version | Endpoints | Description |
|---|---|---|---|
| Health | v1 | 1 | Platform and gateway health status |
| Agents | v1 | 4 | Agent listing, detail, lifecycle transitions, lifecycle history |
| Agents | v2 | 6 | Definition-layer agents, agent cards, deployments, deploy, undeploy |
| Runs | v1 | 2 | Workflow run listing and detail with steps |
| Events | v1 | 3 | Event query, summary statistics, SSE stream |
| Cost | v1 | 1 | Cost aggregates with filters |
| Keys | v1 | 3 | API key creation, listing, and revocation |
| Skills | v2 | 2 | Skill definition listing and detail |
| Models | v2 | 2 | Model catalog listing and detail |
| Evals | v2 | 3 | Evaluation sets, detail, and evaluation runs |
📺 SSE Event Stream
The/api/v1/events/stream endpoint provides a Server-Sent Events stream for real-time event monitoring. Any operator interface or external consumer can subscribe to this stream for live platform events.
The SSE stream requires
events:read scope. The connection stays open indefinitely — use it for monitoring dashboards, alerting systems, or agent-side event consumption.🚀 Next Steps
TypeScript SDK
Typed client library wrapping all API operations.
MCP Server
Model Context Protocol server for agent-to-Forge integration.
SDK Overview
Compare all three integration methods.

