Introduction
What the Seolyticize API is, where it lives, and the objects you work with.
Seolyticize is an SEO platform for agencies: rank tracking, site audits, backlinks, keyword research, Search Console and GA4, AI visibility and client reports, for every client an agency manages. Everything the app does is built from a catalogue of tools, and the API is that same catalogue, reachable from your own code and from AI assistants.
One catalogue, four ways in
Every tool can be called four ways. A key that may call a tool in one of them may call it in all of them, and nowhere else.
Surface | Use it for |
|---|---|
REST | Your own code and scripts: |
MCP | AI assistants such as Claude Code, Claude Desktop and Cursor: |
TypeScript SDK | Typed calls from Node, Deno, Bun or the browser |
Command line | The |
Base URL
All examples use the production host:
Purpose | URL |
|---|---|
Tool calls |
|
Tool discovery for your key |
|
OpenAPI 3.1 document |
|
MCP server |
|
Requests and responses are JSON. The OpenAPI document is public and needs no key, so you can read what the API does before you have an account. Every operation in it is also listed under API reference in the sidebar.
The objects you work with
Agency. Your account. Every client, key, report and charge belongs to exactly one agency, and data never crosses between agencies.
Client. A website you do SEO for, with a name and a domain. Most tools address one client and take a clientId; the rest work across the agency (list_clients) or on any domain at all (get_domain_facts).
Rank tracker. A set of keywords captured for a client daily or weekly, on one search engine, location and language. Tools that read rankings take a trackerId as well as a clientId.
Key. An API key belongs to the agency, carries a role, and is either agency-wide or pinned to one client. See Authentication.
What a tool looks like
A tool has a name (list_clients, get_rank_summary, keyword_explorer), an input described as JSON Schema, a permission it needs (data:read, spend:incur and so on), and a flag saying whether it addresses one client. You send its input as the JSON body:
curl -X POST https://seolyticize.com/api/v1/tools/list_clients \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'and get the result back under data. Calling tools covers the request and response in full.
Figures it does not have
Seolyticize never prints a zero for a number it did not measure. Where data is missing — a domain nobody has crawled, a property that is not connected — a field is absent or null, not 0. Treat a missing value as unknown, not as nothing.
Running Seolyticize from an agent
If you are, or are building, an AI agent that should run an agency's SEO end to end — onboarding clients, auditing, reporting, setup — start with the Agent playbooks. Each step names the tool that does it.