# REST API The Interfold REST API is the canonical contract beneath the CLI and MCP server. Use it to integrate Interfold with another system or from any language that can send HTTPS requests. - **Base URL:** `https://api.interfold.dev/v0` - **Format:** JSON request and response bodies unless an operation says otherwise. - **Convention:** `POST` creates and updates resources, `PUT` writes raw objects, `DELETE` deletes, and `GET` reads. ## Start here - [Quickstart](/api-reference/quickstart) — make an authenticated request. - [Authentication & permissions](/api-reference/authentication) — create and protect API keys. - [Errors](/api-reference/errors) — parse failures consistently. - [Pagination](/api-reference/pagination) — walk list results. - [Rate limits](/api-reference/rate-limits) — respect account request budgets. ## Choose an interface The REST API, CLI, and MCP server expose related capabilities but have different operating models. | Interface | Use it for | | --------------- | ----------------------------------------------------------------------------- | | **REST API** | Integrations, services, and direct resource control. | | [**CLI**](/cli) | Local development, shell automation, credential storage, and project context. | | [**MCP**](/mcp) | Agent clients that support remote MCP tools and approval flows. | REST is the canonical resource contract. CLI and MCP pages link back to the same concepts without duplicating the HTTP reference. ## Resources - [Accounts](/api-reference/accounts) - [Sites](/api-reference/sites) - [Buckets](/api-reference/buckets) - [Files](/api-reference/files) - [Functions](/api-reference/functions) - [Databases](/api-reference/databases) - [Secrets](/api-reference/secrets) ## Versioning The version in the path is the compatibility boundary. The current public API is `/v0`. Breaking changes require a new API version. Removing or renaming a field, changing a field type, changing authentication requirements, or changing the meaning of an existing parameter is breaking. Adding endpoints, optional request fields, response fields, or new enum values is non-breaking when clients already tolerate unknown values. New integrations should use the latest documented version. ## Machine-readable documentation Every reference page has a **View as Markdown** link. The complete documentation is also available through [llms.txt](/llms.txt) and [llms-full.txt](/llms-full.txt).