Introduction
Publish HTML pages, zipped sites and PDFs to a permanent link from code, CI or an AI assistant.
Everything you can do in the Flatpage dashboard's publish flow also works from code: publish a page, a zipped static site or a PDF, update it at the same link, list, rename and delete sites, and read their views. The API is on every plan, Free included.
There are three ways in:
REST API
Plain HTTPS and JSON with an API key. Works from curl, scripts, CI and any language.
MCP server
Add Flatpage as a connector in Claude, ChatGPT, Claude Code or Cursor. Signs in with OAuth, no key to copy.
Claude skill
Teaches Claude to publish well: same link on updates, self-contained pages, good link names.
API reference
Every endpoint, generated from the OpenAPI spec, with request and response schemas.
What you can build
- Publish from CI. Build a static site or a report and put it at the same link on every push. See GitHub Actions.
- Publish from an AI chat. Ask Claude or ChatGPT to "publish this as a page called spring-menu" and get the link back.
- Keep a QR code current. Print the QR code once, then replace the PDF or page behind it with
PUT /v1/sites/{site}. - Your own tools. Generate client proposals, menus or reports from your app and hand out a link.
The basics
- Base URL:
https://flatpage.app/v1 - Authentication:
Authorization: Bearer fpk_...(details) - Bodies and answers are JSON, except publishing, which also takes the raw file.
- A site is named by its id or its link name, the part before
.flatpage.page. - The OpenAPI 3.1 spec is at
/openapi.json. Import it into Postman, Insomnia or a code generator.