Skip to content

Rank tracking API, by country and language

One API key. Your rankings in your warehouse, your BI tool, your CMS, your team chat

Everything in the Metrik dashboard is available as JSON: daily positions per market, AI answer citations and Core Web Vitals, plus signed webhooks when something changes.

  • REST
  • JSON
  • Bearer tokens
  • Signed webhooks
  • Team plan
// Node 18 or later, as an ES module: fetch is built in
const params = new URLSearchParams({ site: 'example.com', market: 'de-DE', date: '2026-10-02' });

const res = await fetch(`https://api.metrik.example/v1/rankings?${params}`, {
  headers: { Authorization: `Bearer ${process.env.METRIK_API_KEY}` },
});
if (!res.ok) throw new Error(`Metrik API error ${res.status}`);

const { data } = await res.json();
for (const row of data) console.log(row.keyword, row.position, row.change);

Your first request

Authenticate with a bearer token and ask for one day of positions in one market.

curl "https://api.metrik.example/v1/rankings?site=example.com&market=de-DE&date=2026-10-02" \
  -H "Authorization: Bearer $METRIK_API_KEY"

An API that matches the dashboard

  • REST and JSON

    Predictable resource URLs, ISO dates, cursor pagination and the same filters as the dashboard.

  • Webhooks

    A signed POST when a ranking crosses your threshold, an AI citation appears or disappears, or a processing job finishes.

  • Scoped keys

    Read-only or read-write keys per project, shown once at creation and revocable at any time.

  • Daily snapshots

    Data refreshes every day and any date since tracking began can be requested, so a backfill is one loop away.

  • Every market in one call

    Pass one or several markets, from en-US to fr-FR, and get local results in each language.

  • Signed and versioned

    Every webhook carries an HMAC signature, and breaking changes only ship under a new version prefix.

React to changes as they happen

Register an HTTPS endpoint, then verify the signature of every event before you trust it.

curl https://api.metrik.example/v1/webhooks \
  -H "Authorization: Bearer $METRIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/hooks/metrik", "events": ["ranking.changed", "citation.lost"]}'

Or skip the code

Ready-made connections for the tools your team already uses.

  • Team chat alerts

    Post daily movers and alerts to a channel through an incoming webhook.

    Alerts
  • Spreadsheets

    A live CSV link for every report, which any spreadsheet can import and refresh on a schedule.

    Export
  • Data warehouse

    A nightly export of every table as Parquet files to your object storage, or straight into Postgres.

    Export
  • BI dashboards

    Point any BI tool at the export, with a documented schema for every table.

    BI
  • Search console data

    Import clicks and impressions to show real traffic next to every ranking.

    Import
  • Automation tools

    Start workflows in any automation platform that accepts webhooks, without writing code.

    Webhooks

From key to first webhook in three steps

  1. Create a key

    In Settings › API, create a read-only key for your project. It is shown once, so store it in your secrets manager.

  2. Pull your data

    Call /v1/rankings, /v1/ai-citations or /v1/web-vitals with a site, a market and a date or a date range.

  3. Subscribe to events

    Register an endpoint for events such as ranking.changed or citation.lost, and verify each signature.

API questions

Which plans include the API?

The REST API and webhooks are part of the Team plan, along with 20 sites, 2,500 keywords and up to 20 markets.

Is there a rate limit?

Yes. Limits are generous for daily syncs and are returned in the RateLimit headers of every response, so your client can slow down before it reaches them.

How fresh is the data?

Rankings and AI answer checks run once a day per market and are complete before 7 a.m. local time. Every response includes the date the data was collected.

Can I backfill historical data?

Yes. Any date since your project started tracking can be requested, one day or a range at a time, with cursor pagination for large sets.

Do you have SDKs?

The API is plain HTTPS and JSON, so any HTTP client works. An OpenAPI description lets you generate a typed client in your language.

Make your first call today

API keys come with the Team plan. Create one in Settings › API and paste it into the curl example above.