API Overview
The Roundtable API is a RESTful JSON API that provides programmatic access to workspaces, members, billing, and other organization resources.
Base URL
https://roundtable.foxtrotcommunications.net/api/v1
All API endpoints are prefixed with /api/v1/. For example, to list workspaces:
GET https://roundtable.foxtrotcommunications.net/api/v1/workspaces
Authentication
All API requests must include a valid token in the Authorization header:
Authorization: Bearer <token>
Tokens can be either:
- Firebase ID tokens — obtained through Firebase Auth (Google Sign-In)
- API keys — created in Organization Settings → API Keys
See the Authentication guide for details.
Content Type
All request and response bodies use JSON:
Content-Type: application/json
Include this header on all POST, PATCH, and PUT requests.
Versioning
| Path | Description |
|---|---|
/api/v1/ | Current stable API version |
/api/ | Backward-compatible alias (routes to the latest version) |
The API is versioned via URL path. The current version is v1. When breaking changes are introduced, a new version (e.g., /api/v2/) will be created. The previous version will continue to work for a deprecation period.
:::tip Use Versioned Paths
Always use /api/v1/ in production integrations. The unversioned /api/ alias is convenient for quick testing but may change behavior when new versions are released.
:::
Rate Limits
There are currently no rate limits enforced on the API. This may change in the future — if rate limiting is introduced, it will be communicated via the API changelog and response headers.
Error Format
All error responses follow a consistent structure:
{
"error": "Human-readable error message",
"details": {
"field": "Additional context about the error"
}
}
| Field | Type | Description |
|---|---|---|
error | string | A human-readable description of the error |
details | any | Optional. Additional structured context (validation errors, conflicting fields, etc.) |
Common HTTP Status Codes
| Code | Meaning |
|---|---|
200 | Success |
201 | Resource created |
400 | Bad request — invalid parameters or body |
401 | Unauthorized — missing or invalid token |
403 | Forbidden — valid token but insufficient permissions |
404 | Not found — resource does not exist |
409 | Conflict — resource already exists or state conflict |
500 | Internal server error |
Example Error Response
curl -s https://roundtable.foxtrotcommunications.net/api/v1/workspaces/invalid_id \
-H "Authorization: Bearer rt_sk_your_key"
{
"error": "Workspace not found",
"details": {
"workspaceId": "invalid_id"
}
}
Operational Endpoints
These endpoints are not versioned and are used for health checks and monitoring.
Health Check
GET https://roundtable.foxtrotcommunications.net/api/health
Returns the current health status of the API server.
{
"status": "ok",
"timestamp": "2026-05-21T17:30:00.000Z"
}
Metrics
GET https://roundtable.foxtrotcommunications.net/api/metrics
Returns application metrics in Prometheus format. Use this endpoint to integrate with Prometheus, Grafana, or other monitoring tools.
# HELP http_requests_total Total number of HTTP requests
# TYPE http_requests_total counter
http_requests_total{method="GET",path="/api/v1/workspaces",status="200"} 1234
http_requests_total{method="POST",path="/api/v1/workspaces",status="201"} 56
:::info Monitoring Integration
The /api/metrics endpoint is designed for scraping by Prometheus. Point your Prometheus instance at this URL with an appropriate scrape interval (15–30 seconds recommended).
:::