MacroWebsite

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

POST/v1/pages

Create a page from a spec. It is created as a draft— nothing is public until you publish it.

GET/v1/pages

List your pages, with their URLs and lead counts.

PUT/v1/pages/:id

Replace a page's content. This overwrites rather than patches, so send the whole spec.

POST/v1/pages/:id/publish

Make the current draft public.

DELETE/v1/pages/:id

Delete 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_pages
  • create_page
  • update_page
  • publish_page
  • get_page_stats
  • list_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.