API Reference

API Reference

Complete REST API documentation for integrating Team-AI's multi-agent development platform into your applications.

Base URL

https://team-ai.andrastelabs.com/api

All API requests must be made to the base URL. Use HTTPS for all requests.

Authentication

Team-AI uses JWT bearer tokens. Log in via the web dashboard to obtain a token, then include it on every API request.

JWT Bearer Token

Log in with email/password or Google OAuth to receive a JWT. Pass it in the Authorization header on every request.

Header format

Authorization: Bearer <your JWT>

Example Request

curl -X GET https://team-ai.andrastelabs.com/api/projects \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Note: The Anthropic API key you configure in dashboard Settings authenticates calls to Claude, not to this API.

API Endpoints

RESTful endpoints for managing projects, agents, and deployments.

Projects

POST /projects

Create a new Team-AI project

Request Body

name and description are required. Stack is inferred from the description by the Project Manager agent.

{
  "name": "Weather Dashboard",
  "description": "React frontend + Node.js backend using OpenWeatherMap API",
  "tech_preferences": { }
}

Response (200)

Project starts in planning. Call POST /projects/{id}/kickoff after reviewing the contract preview to start the agents.

{
  "success": true,
  "project_id": "295f665a-a171-4cdd-851d-6dcf18bf3c6c",
  "status": "planning",
  "github_repo_url": "https://github.com/...",
  "contract_preview": { ... }
}
GET /projects

List all projects

No query parameters. Returns all projects owned by the authenticated user.

Response (200)

An array of project objects with live progress computed from tasks.

[
  {
    "project_id": "295f665a-...",
    "name": "Weather Dashboard",
    "status": "active",
    "progress": 42
  }
]
GET /projects/:id

Retrieve a specific project

:id - The unique project identifier
POST /projects/:id/kickoff

Start the 8-agent pipeline after confirming the contract preview.

:id — project_id returned from POST /projects. Transitions status from planning to active.

Agents

GET /agents

List all active agents across the user's projects.

The 8 agents

Project Manager
UX Designer
Backend Developer
Frontend Developer
Mobile Developer
QA Engineer
DevOps Engineer
Integration Validator
GET /agents/:agent_id/status

Get the live status of a specific agent instance.

Tasks

GET /projects/:id/tasks

List all tasks for a project, including status and assigned agent.

Rate Limits

API rate limits are applied per API key to ensure fair usage and system stability.

Project creation

Projects per minute (per user)

5

Enforced at

POST /api/projects

Everything else

Read endpoints (list, status, artifacts)

No limit

LLM cost is billed by Anthropic

to your own API key

Exceeding the limit

If you exceed the 5-per-minute project creation limit, the API returns 429 Too Many Requests:

{
  "detail": "Rate limit exceeded. Max 5 projects per minute. Try again in 60s."
}

Error Codes

Standard HTTP status codes with detailed error responses for debugging.

Status Code Error Type Description
200 OK Request succeeded
201 Created Resource successfully created
400 Bad Request Invalid request parameters or malformed JSON
401 Unauthorized Missing or invalid JWT bearer token
403 Forbidden Insufficient permissions for the resource
404 Not Found Requested resource does not exist
429 Too Many Requests Rate limit exceeded, retry after delay
500 Internal Server Error Server error, please retry or contact support
503 Service Unavailable Service temporarily unavailable for maintenance

Error Response Format

FastAPI-style error response — a single detail field with the human-readable message:

{
  "detail": "Invalid email or password"
}

Best Practices

Follow these recommendations for optimal API integration and performance.

Security

  • Always use HTTPS for API requests
  • Never expose your JWT in client-side code or public repos
  • Store credentials in environment variables, not source
  • Keep your Anthropic API key (in dashboard Settings) private

Performance

  • Cache project list responses on the client where it's safe
  • Respect the 5-project-per-minute limit with exponential backoff
  • Use the WebSocket stream for live progress instead of polling in tight loops

Reliability

  • Handle retries with exponential backoff, especially on 429 and 5xx
  • Check the status field on project responses — agents run asynchronously
  • Read the detail message on error responses for human-readable context
  • Validate JSON shape before processing; schemas may evolve

Get your JWT and start hitting the API.

Log in to obtain your JWT and start issuing API requests against the multi-agent platform.