Skip to main content
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


Pagination

List endpoints support pagination:
Response:
Parameters:
  • page: Page number (1-indexed)
  • limit: Items per page (max: 100)

Filtering & Sorting

Filtering

Sorting

Sort prefix:
  • - = Descending
  • No prefix = Ascending

API Endpoints

Core Resources

Projects

Manage Forge projects
  • GET /api/projects
  • POST /api/projects
  • GET /api/projects/:id
  • PATCH /api/projects/:id
  • DELETE /api/projects/:id

Tasks

Manage tasks and workflows
  • GET /api/tasks
  • POST /api/tasks
  • GET /api/tasks/:id
  • PATCH /api/tasks/:id
  • DELETE /api/tasks/:id

Attempts

Manage task attempts
  • GET /api/attempts
  • POST /api/attempts
  • GET /api/attempts/:id
  • DELETE /api/attempts/:id

Processes

Monitor running processes
  • GET /api/processes
  • GET /api/processes/:id
  • POST /api/processes/:id/cancel

Quick Examples

Get All Tasks

Create New Task

Update Task Status

Start Task Attempt


Rate Limiting

Current limits (local deployment):
Future limits (remote deployment):
Rate limit headers:

Webhooks

Subscribe to Forge events:
Webhook payload:

WebSocket API

Real-time updates via WebSocket:
Update messages:

SDK Libraries

JavaScript/TypeScript

Python


API Versioning

Current version: v1 (implicit) Future versioning:

OpenAPI Specification

Download the full OpenAPI spec:
Import into tools like:
  • Postman
  • Insomnia
  • Swagger UI
  • API clients

Testing the API

Using cURL

Using HTTPie

Using Postman

  1. Import OpenAPI spec: http://localhost:8887/api/openapi.json
  2. Set environment variable: baseUrl = http://localhost:8887
  3. 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

Authorizations

Authorization
string
header
required

GitHub OAuth token obtained via device flow

Query Parameters

project_id
string<uuid>
required

Project ID to filter tasks

Response

200 - application/json

List of tasks with attempt status

The response is of type any.