API and MCP
Base URL https://seomely.com/api
Everything the dashboard shows is available over REST and over MCP. Both use the same API key and the same monthly allowance, so there is one credential to manage rather than two.
Authentication
Create a key at /app/api-keys. It is shown once and stored only as a hash, so we cannot recover it for you.
curl https://seomely.com/api/v1/investigate \
-H "Authorization: Bearer sk_live_..." \
-d "project=example.com"Rate limits
Calls are metered per month, per account, across REST and MCP together. Every response carries the running count:
x-api-calls-used: 412 x-api-calls-limit: 25000
- Free — 1,000 calls a month
- Pro — 25,000 calls a month
- Agency — 250,000 calls a month
Past the ceiling you get 429 quota_exceeded until the 1st. There is no per-second limit and no burst throttle. If you find one, it is a bug rather than a policy.
Endpoints
project accepts a domain or a project id, and can be omitted on GET endpoints to cover every property the key can see. GET parameters go in the query string; POST parameters go in a JSON body.
GET /v1/investigate
Regressions, the factor they share, and remaining pages ranked by priority with reasons. Start here.
Parameters: project, since_days (default 30)
GET /v1/projects
Properties this key can see.
Parameters: none
GET /v1/urls/unindexed
Everything not in the index, each with a cause and whether submitting helps.
Parameters: project, limit (100), orphans=true
GET /v1/urls/orphans
Only pages with no inbound links from your own site.
Parameters: project, limit (100)
GET /v1/urls/status
Current state for one URL.
Parameters: url (required)
GET /v1/urls/history
Every observation we hold for one URL, newest first.
Parameters: url (required), limit (100)
GET /v1/regressions
Pages that were indexed and are not now.
Parameters: project, since_days (30)
GET /v1/stats
Coverage totals per property.
Parameters: project
GET /v1/indexnow
Whether IndexNow is set up, and whether autopilot is on.
Parameters: project
POST /v1/sitemaps/sync
Re-read the sitemap now.
Parameters: project (body)
POST /v1/indexnow/setup
Generate a key, or register one you already host.
Parameters: project, key (optional)
POST /v1/indexnow/autopilot
Turn nightly submission on or off.
Parameters: project, enabled
POST /v1/urls/submit
Submit URLs to the IndexNow network. Pages where submission cannot help are skipped and reported as skipped.
Parameters: project, urls[]
Errors
Every error has the same shape:
{ "error": { "code": "project_not_found", "message": "No connected property matches \"example.com\"." } }- 401 missing_key — No Authorization header.
- 401 invalid_key — The key does not exist.
- 401 revoked_key — The key was revoked. It stops working immediately.
- 400 missing_url — An endpoint that needs ?url= did not get one.
- 400 missing_project — A POST that needs a property did not name one.
- 404 project_not_found — No connected property matches that domain or id.
- 404 unknown_endpoint — No endpoint at that method and path.
- 429 quota_exceeded — Monthly call ceiling reached. Resets on the 1st.
- 500 internal_error — Our fault. Nothing was charged against your quota beyond the call itself.
MCP server
Streamable HTTP at https://seomely.com/api/mcp, authorised with the same bearer token. There is nothing to install: it is a remote server, not a package.
Claude Code
claude mcp add --transport http seomely https://seomely.com/api/mcp \ --header "Authorization: Bearer sk_live_..."
Claude Desktop, Cursor, or any client that takes a config file
{
"mcpServers": {
"seomely": {
"type": "http",
"url": "https://seomely.com/api/mcp",
"headers": { "Authorization": "Bearer sk_live_..." }
}
}
}The tools mirror the REST endpoints, with investigate_indexing as the one to reach for first: it correlates regressions with their shared cause and returns ranked work, so an agent does not have to infer the connection from separate calls.
submission_helps. When it is false, the cause is content or configuration, and submitting the URL again cannot change the outcome. Tools that promise indexing rely on people not knowing that. Please do not tell someone to resubmit a page we have already told you submission will not help.Priorities carry a why array of the specific observations that produced them. There is no composite score anywhere in this API, so quoting those reasons is always more accurate than inventing an explanation for a number.
Discovery
- /.well-known/mcp.json — server card: endpoint, transport, auth, tool list
- /llms.txt — what this product is, for agents reading the site