> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vibely.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# API Overview

> REST API endpoints for Vibely

Base URL: `https://your-domain/api/v1`

All endpoints accept JSON. Streaming endpoints return SSE (Server-Sent Events).

<Frame>
  <img src="https://cdn.vibely.sh/doc/v1/api-reference-overview.webp" alt="REST endpoints at a glance" width="1200" height="675" />
</Frame>

## Authentication

Most endpoints require a Supabase JWT in the `Authorization` header:

```
Authorization: Bearer <supabase-jwt>
```

See [Authentication](/api-reference/auth) for token lifecycle, auth-exempt paths, and MCP API key auth.

## Error format

Every error response follows a standardized format:

```json theme={"system"}
{
  "error": "Human-readable message",
  "code": "MACHINE_READABLE_CODE",
  "status": 401,
  "request_id": "req_abc123"
}
```

See [Error Format](/api-reference/errors) for the full list of error codes.

## Endpoints

Paths that carry both `:projectId` and `:id` are written as the router declares
them — the project routes are split across two prefixes (`/project/…` and
`/projects/…`) and the spelling matters.

### Build

| Method | Path | Description |
| - | - | - |
| POST | `/vibe/stream` | Start or continue a build session (SSE, v1 chunk envelope) |
| POST | `/vibe/stream_v2` | Same, with named events — recommended for new clients |
| POST | `/vibe/start` | Create a project and run its first turn |
| POST | `/vibe/continue` | Continue an existing project |
| GET | `/vibe/projects` | List projects |
| GET | `/vibe/projects/:id/full` | Get a project with its files and messages |
| PATCH | `/vibe/projects/:id` | Update project settings |
| DELETE | `/vibe/projects/:id` | Delete a project |
| POST | `/vibe/answer` | Answer a pending agent question |
| POST | `/vibe/abort/:projectId` | Abort a running build |
| POST | `/vibe/plan/approve` | Approve a build plan |
| GET | `/vibe/models` | Models selectable for a build |

### MCP Servers

| Method | Path | Description |
| - | - | - |
| GET | `/mcp/catalog` | List available MCP server templates |
| GET | `/mcp/info` | Get MCP client configuration |
| GET | `/mcp/servers` | List connected MCP servers |
| POST | `/mcp/servers` | Register a new MCP server |
| DELETE | `/mcp/servers/:id` | Remove an MCP server |
| POST | `/mcp/servers/:id/test` | Test connectivity to a server |

### System

| Method | Path | Description |
| - | - | - |
| GET | `/health` | Health check (public) |
| GET | `/health/detailed` | Detailed dependency status (admin) |
| GET | `/template/bundle` | Template manifest |

`/health/ready` is the readiness probe and is served at the **root**, not under
`/api/v1`.

### Files, deploy, domains

| Method | Path | Description |
| - | - | - |
| GET | `/project/:projectId/files` | List project files |
| POST | `/project/:projectId/files/upload` | Upload a file — this is how an image enters the build context |
| POST | `/deploy/:projectId` | Deploy a project |
| GET | `/deploy/:projectId/publish-settings` | Read publish settings |
| GET | `/projects/:projectId/domains` | List custom domains |
| POST | `/projects/:projectId/domains` | Attach a custom domain |
| POST | `/projects/:projectId/domains/:id/verify` | Verify a domain's DNS |
| GET | `/projects/:projectId/checkpoints` | List checkpoints |
| POST | `/projects/:projectId/checkpoints/:checkpointId/restore` | Roll back to a checkpoint |


## Related topics

- [MCP Client Overview](/reference/mcp/overview.md)
- [Dashboard overview](/introduction/dashboard.md)
- [Build Mode Overview](/reference/engine/overview.md)
- [API authentication](/api-reference/auth.md)
- [Start a build from outside Vibely](/guides/build-from-chat.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.