SEO API
Your growth data, one GET away
A read-only REST API for everything meev tracks: search rankings, AI visibility, competitors, content, and backlinks. Deterministic JSON, one API key, and an OpenAPI spec. Built for scripts, backends, and no-code tools.
$ curl https://meev.ai/api/public/v1/domains/dom_1a2b/rankings \ -H "x-api-key: meev_sk_live_•••"
{
"success": true,
"data": {
"avgPosition": 12.4,
"tracked": 214,
"topKeywords": [
{ "keyword": "ai visibility", "position": 3 }
]
}
}Authenticate
Mint a key in your dashboard, then send it on every request. Two header styles work, so use whichever your stack prefers.
Read-only, and scoped to you. Keys are shown once and stored hashed. Every request is limited to the domains you own, the API never writes, and you can revoke a key anytime from your dashboard.
Endpoints
Everything lives under https://meev.ai/api/public/v1. A selection below; the full reference is the OpenAPI spec.
Domains & account
- GETThe websites you manage.
/domains - GETBusiness, voice, and positioning profile.
/domains/{id} - GETYour plan, limits, and usage.
/account
Search & SEO
- GETOrganic ranking posture and top keywords.
/domains/{id}/rankings - GETClicks, impressions, and queries.
/domains/{id}/search-performance - GETDemand keyword tools can't see.
/domains/{id}/gsc-blind-spot - GETKeywords competitors rank for that you don't.
/domains/{id}/keyword-gaps
AI visibility
- GETMentions and citations across AI search.
/domains/{id}/ai-visibility - GETWhich sources AI answers cite.
/domains/{id}/ai-visibility/citations
Competitors & backlinks
- GETWho wins the queries you want.
/domains/{id}/competitors - GETReferring domains and authority.
/domains/{id}/backlinks
Content
- GETThemes, cadence, and coverage.
/domains/{id}/content - GETYour topical map and gaps.
/domains/{id}/topical-authority
Full machine-readable reference: /api/public/v1/openapi.json
From zero to first call
- 01
Get a key
In your dashboard, open Settings then API keys and create one. It's shown once, so copy it right away.
- 02
Call an endpoint
Send your key as an x-api-key or Authorization: Bearer header on any GET under the base URL.
- 03
Read the JSON
Every response is a deterministic { success, data } envelope with stable, typed fields, ready to generate a client from the OpenAPI spec.
What teams build with the SEO ranking API
The same data the dashboard renders is available as JSON, so you are never stuck waiting on an export. Four things people do with it most often.
Put rankings on your own dashboard
Pull organic positions and top keywords on a schedule and render them wherever your team already looks: a BI tool, a Notion database, an internal admin. The ranking endpoints return the same shape every time, so the chart you build today keeps working.
Alert on movement that matters
Poll rankings and AI visibility from a cron job, diff against yesterday, and post to Slack when a tracked keyword drops out of the top ten or a competitor starts getting cited in AI answers instead of you.
Report across every client at once
Agencies run one loop over /domains and pull the same metrics per client, so a monthly report that took an afternoon of copy-paste becomes a scheduled script. Plan limits and usage are readable from /account, so the job can throttle itself.
Feed your own models and workflows
Keyword gaps, topical authority, and citation sources come back as typed JSON, which makes them usable as input to a brief generator, a prioritization score, or whatever you already run in your stack.
Frequently asked
- Is there an SEO ranking API?
- Yes. GET /domains/{id}/rankings returns your organic ranking posture and top keywords, and /domains/{id}/search-performance returns clicks, impressions, and the queries behind them. Both are read-only and return the same typed shape on every call, so you can chart or diff them without writing defensive parsing.
- Can I use this as an SEO tool API inside my own product?
- Yes, for domains you own or manage. One API key reads rankings, AI visibility, competitors, backlinks, content, and keyword gaps, so you can build reporting, alerting, or internal tooling on top of it instead of scraping. It stays read-only, so it can power a product surface but never edits or spends on your behalf.
- What can I access?
- Read-only data for the domains you own: search rankings, AI visibility, competitors and backlinks, content and topical authority, and keyword gaps.
- How do I authenticate?
- With an API key you mint in your dashboard. Send it as an x-api-key header, or as an Authorization: Bearer token. The key is shown once and stored hashed, so keep it somewhere safe.
- Is there an OpenAPI spec?
- Yes. The full machine-readable reference is published at /api/public/v1/openapi.json, so you can generate a typed client in your language of choice.
- Can the API change anything?
- No. The API is read-only. It can read your data to power scripts, dashboards, and workflows, but it can't edit, publish, or spend on your behalf.
- What are the rate limits?
- A per-minute limit that scales with your plan. When you hit it, the API returns a 429 with a Retry-After header telling you when to try again.
- I want an AI assistant to use this, not code. What do I use?
- Use MCP instead. Connect Claude, Cursor, or any MCP client to ask about your data in plain language. The REST API is for code; MCP is for assistants.
Build something with your own growth data.