Introduction
Welcome to the Plane API documentation for v0.25.3. This reference covers all available endpoints, request formats, and response structures.
Base URLs
| Environment | URL |
|---|---|
| Self-hosted | https://your-plane-domain |
| Cloud | https://app.plane.so |
API Modules
| Module | Base Path | Description |
|---|---|---|
| App API | /api/ | Internal API for workspace/project operations |
| External API v1 | /api/v1/ | RESTful API for integrations |
| Public API | /api/public/ | Public deploy board endpoints |
| Authentication | /auth/ | Sign-in, OAuth, password management |
| Instance | /api/instances/ | Instance configuration and admin |
Authentication
Session Auth (App API /api/): After signing in, include the access token:
bash
curl -H "Authorization: Bearer <token>" https://app.plane.so/api/workspaces/API Key (External API /api/v1/): Use the X-API-Key header:
bash
curl -H "X-API-Key: plane_api_xxxxx" https://app.plane.so/api/v1/workspaces/slug/projects/Create API tokens at GET/POST /api/workspaces/{slug}/api-tokens/.
Rate Limiting
API v1 endpoints are limited to 60 requests/minute per API key.
Pagination
Cursor-based pagination using ?cursor=value:offset:is_prev:
json
{
"next_cursor": "2024-01-01T00:00:00Z:0:0",
"prev_cursor": null,
"results": [...]
}Error Responses
json
{ "detail": "Error message", "error_code": "ERROR_CODE" }| Code | Meaning |
|---|---|
| 400 | Invalid input |
| 401 | Unauthorized |
| 403 | Insufficient permissions |
| 404 | Not found |
| 422 | Validation errors |
| 429 | Rate limit exceeded |