Docs
Everything here can be done in the editor. This is for when you would rather a script — or an assistant — did it instead.
First, a key
Sign in, then create one at API keys. It is shown once: only a hash is stored, so there is no way to retrieve it later. If you lose it, make another.
Every request below carries it as a bearer token.
Authorization: Bearer mw_live_…
Describe a page
Pages are written as a short spec rather than the internal document format. A bare string is a paragraph. Anything you leave out takes a sensible default.
{
"title": "Fathom",
"theme": "mint",
"blocks": [
{ "heading": "Depth logging for freedivers", "level": 1 },
"Log every dive straight from your watch.",
{ "image": "https://example.com/hero.jpg", "alt": "A diver" },
{ "button": { "label": "Join", "href": "#signup" } },
{ "form": { "fields": ["Email", "Phone"], "submit": "Join the list" } }
],
"metaPixelId": "123456789012345"
}A form field's type is inferred from its label — Email becomes an email field, Phone a telephone one, and I agree to be contacted a consent checkbox. State type explicitly to override it.
Block kinds: heading, text, image, video, button, links, form, code, divider, spacer. Themes: ink, paper, mint, terminal.
The API
/v1/pagesCreate a page from a spec. It is created as a draft— nothing is public until you publish it.
/v1/pagesList your pages, with their URLs and lead counts.
/v1/pages/:idReplace a page's content. This overwrites rather than patches, so send the whole spec.
/v1/pages/:id/publishMake the current draft public.
/v1/pages/:idDelete a page, its leads and its uploads.
Creating and publishing are separate calls on purpose: a script can assemble a page over several steps and put it in front of people exactly once.
curl -X POST https://macrowebsite.com/v1/pages \
-H "Authorization: Bearer mw_live_…" \
-H "Content-Type: application/json" \
-d '{"title":"Fathom","blocks":["Coming soon."]}'
curl -X POST https://macrowebsite.com/v1/pages/<id>/publish \
-H "Authorization: Bearer mw_live_…"From an assistant
The same account is reachable over the Model Context Protocol, so an assistant can build, publish and report on pages directly.
Connect with sign-in
In a client that supports remote MCP connectors, add the URL below and authorize it. You sign in here; the assistant never holds a credential. Disconnect any time from the API keys page.
https://macrowebsite.com/mcp
Connect with a key
For clients where you set headers yourself:
{
"mcpServers": {
"macrowebsite": {
"url": "https://macrowebsite.com/mcp",
"headers": { "Authorization": "Bearer mw_live_…" }
}
}
}What it can do
list_pagescreate_pageupdate_pagepublish_pageget_page_statslist_leads
Limits
- Images up to 10MB — PNG, JPEG, WebP, GIF, AVIF.
- Video up to 100MB — MP4 or WebM. MPEG (.mpg) will not play in a browser and is not accepted.
- 500MB of uploads per page.
- Up to 30 sections, 40 blocks per section.
- Forms accept up to 10 fields.
Something missing?
These docs cover what exists today. If you need something that is not here, say so — it is a young API and the shape is still settling.