List tasks for a project
API Reference
REST Overview
Complete reference for Forge’s REST API
GET
List tasks for a project
Overview
Forge provides a comprehensive REST API for programmatic access to all features. Build integrations, automate workflows, or create custom tooling.Base URL:
http://localhost:8887/api (default)Authentication
API Keys (Coming Soon)
Currently, Forge runs locally without authentication. API key authentication will be added for remote deployments.GitHub OAuth
For web UI access, GitHub OAuth is used. API access uses session cookies.Base URL
Response Format
Success Response
Error Response
Error Codes
| Code | HTTP Status | Description |
|---|---|---|
VALIDATION_ERROR | 400 | Invalid request parameters |
UNAUTHORIZED | 401 | Authentication required |
FORBIDDEN | 403 | Insufficient permissions |
NOT_FOUND | 404 | Resource not found |
CONFLICT | 409 | Resource conflict |
RATE_LIMIT | 429 | Too many requests |
INTERNAL_ERROR | 500 | Server error |
Pagination
List endpoints support pagination:page: Page number (1-indexed)limit: Items per page (max: 100)
Filtering & Sorting
Filtering
Sorting
-= Descending- No prefix = Ascending
API Endpoints
Core Resources
Projects
Manage Forge projects
GET /api/projectsPOST /api/projectsGET /api/projects/:idPATCH /api/projects/:idDELETE /api/projects/:id
Tasks
Manage tasks and workflows
GET /api/tasksPOST /api/tasksGET /api/tasks/:idPATCH /api/tasks/:idDELETE /api/tasks/:id
Attempts
Manage task attempts
GET /api/attemptsPOST /api/attemptsGET /api/attempts/:idDELETE /api/attempts/:id
Processes
Monitor running processes
GET /api/processesGET /api/processes/:idPOST /api/processes/:id/cancel
Quick Examples
Get All Tasks
Create New Task
Update Task Status
Start Task Attempt
Rate Limiting
Current limits (local deployment):Webhooks
Subscribe to Forge events:WebSocket API
Real-time updates via WebSocket:SDK Libraries
JavaScript/TypeScript
Python
API Versioning
Current version: v1 (implicit) Future versioning:OpenAPI Specification
Download the full OpenAPI spec:- Postman
- Insomnia
- Swagger UI
- API clients
Testing the API
Using cURL
Using HTTPie
Using Postman
- Import OpenAPI spec:
http://localhost:8887/api/openapi.json - Set environment variable:
baseUrl = http://localhost:8887 - Start making requests
Best Practices
Use SDK Libraries
Use official SDKs instead of raw HTTP:SDKs handle auth, retries, typing
Handle Errors
Use Pagination
Don’t fetch all at once:
Cache Responses
Next Steps
Projects API
Manage Forge projects
Tasks API
Create and manage tasks
Attempts API
Execute tasks with AI agents
MCP Tools
Use Forge from AI coding agents

