Skip to content

New Official SDKs for TypeScript, Python and Go

SerpKite
Get API key
Docs menu / Choose search providers for your workflow

Choose search providers for your workflow

Choose Google-only search, automatic fallback, a provider list or consensus. Keep rank measurements consistent and inspect provider provenance when gathering research.

View as Markdown

Choose a provider policy before you build retries, caching or comparisons around search results. Google is the default; other enabled providers can answer supported verticals when you opt in. The full provider reference lists coverage and the meaning of each response field.

Workflow Policy Why
Google rank tracking or SERP audits engine: "google" Results and positions stay tied to Google’s index
Agent research where fallback is acceptable engine: "auto" Another enabled engine can answer if Google fails
Restrict research to selected engines engine: ["google", "brave"] Only the selected providers can answer, in the service’s route order
Research across independent indexes engine: "consensus" Merge results with per-result source labels

An explicit policy overrides the key’s Allow fallback to other search engines setting. Set engine: "google" explicitly in applications whose output must remain Google-specific.

Use fallback and keep the provider label

from serpkite import SerpKite

sk = SerpKite()
response = sk.search(
    "asyncio task group cancellation",
    engine="auto",
    country="us",
    include_domains=["docs.python.org"],
)
print("Answered by:", response.meta.engine)
for result in response.results:
    print(result.title, result.link)

Keep meta.engine with your stored search results. A Brave result has Brave’s ranking and snippets, and may lack Google-specific extras. meta.route describes provider attempts on fresh requests; cache hits omit it. A failed attempt along the fallback route costs nothing; the response is settled for the provider that answered.

Use JSON when your application needs provider provenance. Markdown responses are text and do not contain a JSON meta object. If you project with fields, retain the metadata you inspect:

import { SerpKite } from "serpkite";

const sk = new SerpKite();
const response = await sk.search({
  q: "asyncio task group cancellation",
  engine: ["google", "brave"],
  fields: "results.title,results.link,meta.engine,meta.credits_used",
});
console.log(response);

Provider availability depends on the endpoint and deployment. A provider that serves web search may not serve news or images. An unavailable or unsupported explicit policy returns 400 invalid_request; repeating it will not enable that provider. Check the coverage table.

Merge independent indexes with consensus

curl https://api.serpkite.com/v1/search \
  -H "Authorization: Bearer $SERPKITE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q":"asyncio task group cancellation","engine":"consensus","num":10}'

Consensus is available on web search only. It queries up to three independent indexes, deduplicates URLs and ranks by agreement. Each result’s sources lists the providers that returned it; meta.engine is consensus. The merged position is a consensus rank, so it does not measure a Google ranking.

Budget for each provider that returns nonempty results: three successful single-page sources can cost 3 credits. Failed, blocked or empty providers are free. Cache hits cost half, and consensus results use a separate cache from single-provider requests.

include_domains, exclude_domains and boost_domains cannot be combined with consensus. For restricted-source research, use a single provider or auto with domain filters instead. An unsupported combination returns 400.

Apply the policy consistently

  • Rank tracking: use Google explicitly for /v1/rank and any batch searches you compare over time. Keep country, language, location and device fixed too.
  • Batches: put engine inside each request in the requests array, alongside its query. Preserve the returned provider with each job result.
  • Monitors: search and news monitors can save engine; webpage monitors cannot. Changing a saved monitor search resets its baseline.
  • Caching: set max_age only when older results suit the workflow. Google-only requests do not receive cached fallback or consensus results.
  • MCP: tool schemas determine which options a client can pass. A dedicated key’s fallback setting can opt search tools into auto when they omit engine.

Last updated: 2026-10-04