Rank tracking API

Rank tracking API for Google and Bing.

Build a Google and Bing rank tracker with live SERP data, location and device controls, organic positions, and SERP features. Connect your scheduler and storage.

Search data for rank checkers and recurring reports

Use PrismCrawl's SERP API to collect the data behind an SEO dashboard, agency report, or competitor monitor. Retrieve rankings through the Google Search API and Bing Search API, then apply your own reporting rules.

Keyword monitoring

Track a defined list of queries and target domains. Separate branded searches, product terms, and competitor keywords so each report has a clear purpose.

Local SEO and agencies

Keep a separate series for every client, location, language, device, and engine. A mobile result in Austin should not overwrite a desktop result in another city.

SERP feature visibility

Track organic listings alongside supported features when present. Keep featured snippets, related questions, and other result types separate from organic rank.

From keyword list to historical observation

  1. Define a keyword list with the target domain or URL and the engines to check.
  2. Persist the complete search context. Google supports country, interface and result language, named location or coordinates, and device. Bing uses country, interface-language hints, coordinates, and device.
  3. Schedule jobs in your application. Choose a cadence that fits the reporting need and distribute requests within your package's rate limit.
  4. Read data.content.results, match the target hostname, and keep its returned rank and position fields. Filter organic results when reporting organic rankings.
  5. Follow documented pagination only when more depth is needed. Use Google's start control or Bing's returned next_page_token; each successful page consumes a credit.
  6. Save the UTC observation time, request ID, query, engine, targeting, page context, matched URL, rank, and SERP features. Generate deltas and alerts from comparable observations.

Extract a domain position from a Google response

This Python example checks the first page and prints an observation for your storage layer. It distinguishes organic rank from the mixed result position and avoids substring matches such as example.com.evil.test.
check_rank.py
import os
from datetime import datetime, timezone
from urllib.parse import urlparse
import requests

target = "example.com"
parameters = {
    "query": "example product",
    "gl": "us",
    "hl": "en-US",
    "location": "Austin,Texas,United States",
    "device": "mobile",
}
response = requests.post(
    "https://api.prismcrawl.com/v1/google/search",
    headers={"x-api-key": os.environ["PRISMCRAWL_API_KEY"]},
    json=parameters,
    timeout=30,
)
response.raise_for_status()
payload = response.json()
if not payload.get("success"):
    raise RuntimeError("Search did not succeed")
content = payload["data"]["content"]
matches = []
for result in content.get("results", []):
    host = (urlparse(result["url"]).hostname or "").lower()
    if result["type"] == "organic" and (
        host == target or host.endswith("." + target)
    ):
        matches.append(result)

best = min(matches, key=lambda item: item["rank"], default=None)
print({
    "observed_at": datetime.now(timezone.utc).isoformat(),
    "request_id": payload["request_id"],
    "engine": "google",
    "parameters": parameters,
    "status": "found" if best else "not_found_on_checked_page",
    "rank": best["rank"] if best else None,
    "position": best.get("position") if best else None,
    "url": best["url"] if best else None,
    "serp_features": content.get("serp_features", []),
})

Scale collection without mixing ranking contexts

  • Use a queue with bounded concurrency and capped backoff for transient errors
  • Keep API failures separate from successful searches with no matching domain
  • Store page context instead of assuming every SERP contains ten organic listings
  • Deduplicate identical scheduled checks while preserving separate locations and devices
  • Budget keywords × engines × locations × devices × checks × pages
  • Retain your own observations for long-term charts and exports

Rank tracking API costs and integration

One-time credit purchases start at $5, with no subscription. Rates range from $0.30 to $0.15 per 1,000 successful searches; the lowest rate requires a $1000 purchase. Credits are valid for 90 days. See the SERP API pricing breakdown for package sizes, rate limits, and usage examples.

Model recurring volume in the cost calculator, test a query in the playground, and inspect fields in the API reference. The rank tracker tutorial explains the surrounding application, while the SEO workflow guide connects observations to page decisions.

Frequently asked questions

Is PrismCrawl a hosted rank tracker?

PrismCrawl provides the live search API data. Your application manages keyword lists, scheduled checks, historical storage, alerts, and client reports.

Can I track Google and Bing rankings?

Yes. Use the Google Search and Bing Search endpoints with consistent engine-specific targeting. Store the engine and search context with each observation so rankings remain comparable.

What if my domain does not appear?

Record that it was not found within the pages you checked. Keep that state separate from an API failure and from a known numeric rank. Pagination availability and search results can change between checks.

Does request history replace my ranking database?

No. Standard request metadata is retained for 90 days and JSON/source HTML for 30 days. Save observations in your own database for longer trends. With zero_trace enabled, result artifacts are not retained and request history is limited to audit and billing fields.

Is a SERP position the same as Search Console average position?

No. An API check observes a search in a chosen context at a particular time. Search Console aggregates impressions across users and contexts. Use both sources with those differences in mind.

Make your first live search today.

Create an account, get 100 free credits, and test live Google or Bing results. No credit card or subscription required.