The RPMToolbox API is a RESTful interface that lets you programmatically manage projects, tasks, documents, and teams. It is the same API that powers our web application, so anything you can do in the UI, you can do via the API.
Base URL
All API requests are made to the following base URL:
https://rpmtoolbox-backend-935512672991.us-central1.run.app/api/v1Authentication
Most endpoints require a Bearer token in the Authorization header. Obtain a token via /auth/login or /auth/firebase.
Authorization: Bearer <your_access_token>API Keys
For service-to-service integration, API keys can be generated from your account settings. Include them in the X-API-Key header.
X-API-Key: <your_api_key>Endpoints
Authentication
| Method | Path | Description |
|---|---|---|
| POST | /auth/register | Register a new user account |
| POST | /auth/login | Login with email and password |
| POST | /auth/firebase | Login with Firebase (Google, Microsoft) |
| POST | /auth/refresh | Refresh an expired access token |
| GET | /auth/me | Get current user profile |
Projects
| Method | Path | Description |
|---|---|---|
| GET | /projects | List all projects you have access to |
| POST | /projects | Create a new project |
| GET | /projects/{id} | Get project details |
| PUT | /projects/{id} | Update a project |
| DELETE | /projects/{id} | Archive or delete a project |
Tasks
| Method | Path | Description |
|---|---|---|
| GET | /tasks | List tasks across projects |
| POST | /tasks | Create a new task |
| GET | /tasks/{id} | Get task details |
| PATCH | /tasks/{id} | Update task status, assignee, etc. |
Documents (PRINCE2)
| Method | Path | Description |
|---|---|---|
| GET | /projects/{id}/brief | Get Project Brief |
| PUT | /projects/{id}/brief | Update Project Brief |
| GET | /projects/{id}/business-case | Get Business Case |
| POST | /projects/{id}/documents/generate | AI-generate a document draft |
Interactive API Docs
Explore the full API with interactive Swagger UI. Try endpoints directly from your browser.
Available in development mode at /docs on the backend.