Getting started
This guide takes you from zero to your first authenticated API call in about five minutes. You'll create an API key in the MetaMonster dashboard, verify it works, and then read one of your sites.
Prerequisites
- A MetaMonster account with at least one site added. If you don't have a site yet, add one in the dashboard first — the API reads the data MetaMonster has already crawled and analyzed.
- A terminal with
curl(or any HTTP client — the examples usecurl, but nothing here iscurl-specific).
Step 1 — Create an API key
API keys are created and managed in the MetaMonster dashboard. They can't be created through the API itself.
- Sign in to MetaMonster at new.metamonster.ai.
- Go to Settings → API Keys (
/settings/api-keys). - Click Create key.
- Give the key a name (a label to help you recognize it later, e.g. "Production integration") and choose an expiration (
Never,30 days,90 days, or1 year). - Click Create key.
Your new key is shown once, right after creation. It looks like this:
mm_aB3xK9pQ2rL7mN4vT1sY6wD8fH5gJ0cZ...
Copy it somewhere safe now. If you lose it, you can reveal it again later from the keys list (click the eye icon next to the key) — but store it securely regardless. Treat it like a password: anyone with your key can read and modify your MetaMonster data.
Scopes: Keys created in the dashboard are granted full access to your organization's data (all scopes). See Authentication → Scopes for what each scope allows.
Step 2 — Verify your key
Call GET /me to confirm the key works. Send it in the Authorization header as a Bearer token:
curl https://new.metamonster.ai/api/v1/me \
-H "Authorization: Bearer mm_YOUR_API_KEY"
A working key returns its identity:
{
"name": "Production integration",
"prefix": "mm_aB3x",
"scopes": ["sites:read", "content:write", "cms:publish"]
}
If you see 401 Unauthorized, double-check that you copied the whole key and included the Bearer prefix. See Authentication for the full list of auth errors.
Step 3 — List your sites
Now read something real. GET /sites returns your organization's sites:
curl https://new.metamonster.ai/api/v1/sites \
-H "Authorization: Bearer mm_YOUR_API_KEY"
{
"data": [
{
"id": 42,
"domain": "example.com",
"url": "https://example.com",
"name": "Example",
"created_at": "2026-05-01T12:00:00Z",
"last_crawled_at": "2026-07-20T09:30:00Z",
"page_count": 128,
"draft_count": 5
}
],
"meta": { "total": 1, "page": 1, "per_page": 15 }
}
Note the shape: list endpoints wrap results in data and include a meta object for pagination. See Conventions for the details.
Step 4 — Drill into a site's pages
Grab a site's id from the previous response and list its pages:
curl "https://new.metamonster.ai/api/v1/sites/42/pages?limit=5" \
-H "Authorization: Bearer mm_YOUR_API_KEY"
{
"data": [
{
"id": 5001,
"url": "https://example.com/pricing",
"path": "/pricing",
"site_id": 42,
"title": "Pricing — Example",
"primary_keyword": "example pricing",
"is_priority": true,
"opportunity_score": 78
}
],
"meta": { "total": 128, "page": 1, "per_page": 5 }
}
From here you can read a page's full detail (GET /pages/{id}), its current content (GET /pages/{id}/content), its SEO analysis (GET /pages/{id}/analysis), and more.
The golden path
Most integrations follow this shape:
GET /sites→ find the site you care about.GET /sites/{siteId}/pages→ find the pages (filter bysearch,is_priority,min_score, etc.).GET /pages/{pageId}→ read a page's detail, including its latest snapshot and analysis summary.GET /pages/{pageId}/content→ read the page's body content as markdown.PATCH /pages/{pageId}orPOST /pages/{pageId}/contentorPUT /pages/{pageId}/drafts/{field}→ make changes.
Next steps
- Authentication — scopes, key lifecycle, and every auth error.
- Conventions — how responses, pagination, errors, and rate limits work across every endpoint.
- Endpoint reference — the full catalog.
- Agent skill — drop-in instructions for AI coding agents.