AI agents: fetch the documentation index at llms.txt. Markdown versions are available by appending .md to any page URL, including this page's markdown.
REST API
Programmatic access to projects, deployments, and domains.
The base URL for all requests is https://api.blode.md.
The CLI handles deployments automatically. Use the REST API for custom integrations or tooling built on top of blodemd.
Authentication
Every endpoint uses the Supabase user session token issued by blodemd login:
Authorization: Bearer <token>
The CLI attaches this header automatically.
Error format
All errors return JSON with an error string and an optional issues field for validation errors.
{ "error": "string", "issues": [] }Health
| Method | Path | Description |
|---|---|---|
| GET | /health | Returns { ok: true, timestamp } |
Projects
| Method | Path | Description |
|---|---|---|
| GET | /projects/ | List all projects for the authenticated user |
| POST | /projects/ | Create a project |
| GET | /projects/:projectId | Get a project |
| PATCH | /projects/:projectId | Update a project |
POST /projects/ — request body
Returns the created project.
PATCH /projects/:projectId — request body
Deployments
Deployments follow a three-step flow: create → upload files → finalize.
| Method | Path | Description |
|---|---|---|
| POST | /projects/slug/:slug/deployments | Create a deployment |
| POST | /projects/slug/:slug/deployments/:id/files/batch | Upload files in batch |
| POST | /projects/slug/:slug/deployments/:id/finalize | Finalize and promote |
POST /projects/slug/:slug/deployments — request body
POST .../files/batch — request body
POST .../finalize — request body
Domains
| Method | Path | Description |
|---|---|---|
| GET | /projects/:projectId/domains | List domains |
| POST | /projects/:projectId/domains | Add a custom domain |
| DELETE | /projects/:projectId/domains/:domainId | Remove a domain |
| GET | /projects/:projectId/domains/:domainId/verification | Get DNS verification records |
| POST | /projects/:projectId/domains/:domainId/verify | Trigger domain verification |
POST /projects/:projectId/domains — request body