Start here
- Create an API token: Authentication.
- Pick a way to deploy: curl, the CLI, GitHub Actions or an AI agent over MCP.
- Look up any call in the API reference, and get told when things happen with webhooks.
The basics
| What | Value |
|---|---|
| Base address | https://api.liftpad.app/v1 |
| Authentication | Authorization: Bearer lp_... (API tokens) |
| Format | JSON in and out, except file uploads (raw bytes) and CSV exports |
| Times | Milliseconds since 1970, UTC |
| Errors | {"error": "not_found", "message": "..."} with an HTTP status; branch on error, show message |
| Rate limit | 1200 requests a minute per user, then 429 rate_limited |
| Deploy limits | 20 000 files and 100 MB per file; deploys per day and total size depend on the plan |
| OpenAPI 3.1 | https://liftpad.app/openapi.json · https://api.liftpad.app/v1/openapi.json |
How a deploy works
A deploy is a list of file paths with the SHA-256 of each file. Liftpad answers with the files it does not have yet; you upload only those, then finalize. Every deploy gets its own preview address and launch checks. Publishing makes it live everywhere within about 5 seconds, and publishing an older deploy is an instant rollback. Deploys never change once made.
POST /sites/{name}/deploys {"files": {"/index.html": "<sha256>"}} -> {"id", "required": [...], "previewUrl"}
PUT /deploys/{id}/blobs/{sha256} <raw bytes of each required file>
POST /deploys/{id}/finalize -> {"state": "ready", "previewUrl", "summary"}
POST /sites/{name}/publish {"deployId": "..."}
Compatible with Netlify projects
_redirects, _headers and netlify.toml rules, form detection (data-netlify="true"), and the folder you already build work as written.
For AI agents
Agents can read the whole API from the OpenAPI document, and the site's summary from /llms.txt. The MCP server gives Claude and other agents ready-made tools.