Skip to content

DocsStart here

Costs, caching and spending limits

How prices are worked out, when results are free, where to see what you spent, and the controls that stop spending.

OpenSEO charges nothing. Every paid action is billed by YepAPI to your own key at YepAPI's price. This page explains how the prices are worked out, where to see what you spent, and the controls you have over spending. Prices are YepAPI's at the time of writing; YepAPI sets them.

How prices are worked out

Kinds of price
KindHow it is billedExamples
FlatA fixed price per call.Domain overview totals $0.08, Lighthouse $0.05, Maps search $0.07, business profile $0.05
Per results page$0.01 for every 10 search results fetched.Google results: top 20 is $0.02, top 100 is $0.10
Per rowA base price plus a price per 100 rows returned, rounded up to the cent.Keyword ideas: $0.03 + $0.03 per 100 keywords. Backlink lists: $0.05 + $0.01 per 100 rows
Per tokenAI models charge by the length of the question and answer, at least $0.01 per answer. Web search adds roughly a cent or more.AI visibility, Prompt explorer, prompt suggestions

Per-row prices are billed on the rows that actually come back, so the price you see is the most a lookup can cost. Where a price is a range, the app shows both ends, for example $0.03 – $0.08.

A paid call is never retried automatically when retrying could bill you twice. OpenSEO retries it only when YepAPI turned it away for sending too fast, or when the connection failed before the request left. After a server error, a timeout or a connection lost mid-call, the request may already have run and been billed, so the error is shown and you decide whether to try again. Free calls, such as the balance, are retried as usual.

Rank checks: top 20, 50 or 100

Each tracker reads the top 20, 50 or 100 Google results per check, at $0.01 for every 10: $0.02, $0.05 or $0.10 per keyword and device. Top 100, the default, records your position wherever it is and the full field of competitors; top 20 covers the first two pages for a fifth of the price. SERP features count toward the depth. Desktop and mobile are separate checks. A run costs keywords × devices × price per check, and the tracker shows it per run and per month on its schedule.

AI answers have no fixed price

Because models charge by length, an AI visibility run shows a minimum ($0.01 per answer) and, once every selected model has answered before, an expected figure based on what its answers cost you. Web search is on by default because it is needed for citations.

When results are free

Results are kept for your account. Repeating the same request within its cache time costs nothing, and the next search loads at once. To pay for fresh data, use Refresh. Every paid call is listed with its cost inSettings and usage.

How long results are reused
LookupReused for
Keyword ideas, keyword metrics, organic and SERP competitors, keyword gap7 days
Domain overview, top keywords, top pages, all backlink reports, autocomplete, trends, Maps search, business profile1 day
Reviews6 hours
Google results, on-page check, Lighthouse1 hour
Prompt explorernever

Rank checks, AI visibility runs and geo-grids are not cached: each run fetches fresh data, which is the point of tracking. A plain site audit is free whatever you do.

Controls that stop spending

Monthly spending limit

Under Settings and usage you can set a monthly limit in dollars. Before every paid call, OpenSEO adds up what your account has spent this calendar month (UTC) and refuses the call once the limit is reached, with the error budget_reached. This covers the dashboard, the REST API, agents and scheduled runs, and it stops a long run part way instead of only checking when it starts.

Free actions keep working when the limit is reached: cached results, price checks, your saved data and the YepAPI balance. Calls already in flight when the limit is crossed still complete, so a month can end a few cents over.

Per-call ceilings

Agents and scripts can pass a ceiling with each paid call: max_cost_usd on MCP tools, ?maxCostUsd= on REST lookups and maxCostUsd when starting an AI visibility run. A call whose worst-case price is above the ceiling is refused before anything is spent, with cost_ceiling_exceeded.

AI answers have no worst case, so for them the ceiling works while the call runs: models are asked one at a time, each answer reserves its expected cost, and the run stops before an answer that would likely cross the ceiling. Since an answer's price is only known afterwards, the total can end above the ceiling by up to the cost of one answer. A run stopped this way is marked cancelled and is left out of your trend.

Confirmations in the app

Background runs that spend (rank checks, AI visibility, rendered audits and geo-grids) ask you to confirm with the price on the button. Creating trackers, adding keywords or prompts, and saving settings never spend.

Limits

Limits
WhatLimit
Keywords per rank tracker1,000
Rank check depthtop 20, 50 or 100
AI prompts per project200
AI models per project20
Competitors per project (AI visibility)20
Models in one Prompt explorer question8
Pages per site audit5,000
Pages per rendered audit500
Keywords per metrics lookup700 (100 for city-level volume)
Keywords per SERP-competitor lookup200
Domains per link intersect2 to 20
Geo-grid size3×3, 5×5, 7×7 or 9×9 in a project; up to 7×7 in the local rank checker
Saved keywords added at once1,000