# API changelog

> Changes to the SerpKite API contract, newest first. Additive changes ship without notice; anything breaking is announced here in advance.

This page tracks the public API at `api.serpkite.com`: endpoints, parameters, response fields, errors and billing rules. For changes to Google's results pages themselves, see the [Google SERP changelog](https://serpkite.com/google-serp-changelog).

**Compatibility policy.** New endpoints, optional parameters and response fields are additive and can appear at any time, so ignore fields you don't recognize. Removing or renaming anything, or changing what a call costs, is a breaking change: it will get advance notice here and a new API version.

## 2026-10-02: AI Overview and AI Mode removed

### Removed

- The `ai_overview` request parameter and response field on `/v1/search` (including `format=compact` and `format=markdown` output). Sending `ai_overview` now returns `400 invalid_request` ("AI Overviews are no longer returned; remove it").
- The `POST /v1/ai-mode` endpoint.
- The `ai_overview` tool on the remote MCP server.

Everything else on `/v1/search` (organic results, answer box, knowledge graph, People Also Ask, related searches, top stories, local pack and ads) and every other endpoint is unchanged, as are the credit prices.

## v1.0.0 (2026-09-29): the v1 API

SerpKite's own versioned API, published as an [OpenAPI 3.1 spec](https://serpkite.com/openapi/serp-api.yaml). It replaces the unversioned preview routes.

### Breaking changes from the preview

- **Paths:** every route is under `/v1`: `/v1/search`, `/v1/news`, `/v1/images`, `/v1/videos`, `/v1/maps`, `/v1/places`, `/v1/reviews`, `/v1/shopping`, `/v1/scholar`, `/v1/patents`, `/v1/autocomplete`, `/v1/lens`, `/v1/ai-mode`, `/v1/webpage`, `/v1/rank`, `/v1/account`, `/v1/status`, `/v1/batches`. `GET /customsearch/v1` is unchanged.
- **Auth:** `Authorization: Bearer skt_live_…` (or `?api_key=` on GET). The legacy key header is no longer accepted.
- **Parameters:** `country` and `language` set the market and interface language. Reviews take `place_id` (or `cid`/`fid`), `sort` and `page_token`. The endpoint is chosen by the path, not a body field.
- **Strict validation:** unknown parameters return `400 invalid_request`, and the message names the replacement (for example `unknown parameter "type": use the endpoint path`).
- **Response envelope:** every vertical returns `request` (the normalised request), `results` (its primary list: organic rows, images, news, places, reviews, papers, suggestions…), vertical extras and `meta`. All keys are snake_case (`ai_overview`, `knowledge_graph`, `people_also_ask`, `related_searches`, `displayed_link`, `image_url`…). `fields` paths follow suit: `results.title,results.link,ai_overview`.
- **Batches:** `POST /v1/batches` with `{"endpoint", "requests": [1–100 bodies], "webhook_url"}` queues one half-price job per request. Realtime endpoints take a single JSON object; array bodies and the batch mode flag are gone.
- **MCP:** the remote server is at `https://api.serpkite.com/v1/mcp`, with Bearer auth; tool arguments use `country` and `language`.

### New

- `engine` parameter on `/v1/search`, `/v1/news`, `/v1/images` and `/v1/videos`: `google` (the default, unchanged), `auto`, one provider or a list. Opt-in fallback to other search engines when Google is unavailable, labelled in `meta.engine` and the new `meta.route`, plus a per-key dashboard setting. See [Search providers](https://serpkite.com/docs/providers).
- `POST /v1/rank`: the best position of a domain for a keyword in the top 10 to 100.
- `GET /v1/status`: public per-endpoint success rate and latency over the last hour.
- Official SDKs: TypeScript (`npm install serpkite`), Python (`pip install serpkite`, sync and async) and Go (`github.com/serpkite/serpkite-go`), plus `langchain-serpkite` and `serpkite[crewai]`. See [SDKs](https://serpkite.com/docs/sdks).

### Unchanged

- `format` (`json`, `compact`, `markdown`), `fields`, `include_content`, `num: 100` depth bundle, `max_age` caching, the AI Overview at no extra cost, resolved destination URLs and the credit prices.
- Response headers `X-Credits-Used`, `X-Credits-Remaining`, `X-Cost-USD`, `X-Cache`, `X-Latency-Ms`, `X-Tokens-Estimate`, `X-Request-Id`.
- Failed, empty and blocked requests are refunded automatically.
- Account controls: multiple keys with monthly limits, spend cap, alerts, auto-recharge, teams and a metadata-only request log.

## v0.9 (2026-09): preview

The first public preview: JSON search endpoints for Google's verticals, a webpage-to-Markdown fetcher, the CSE-compatible `GET /customsearch/v1`, the three output formats, the batch lane with signed webhooks, the remote MCP server, and the dashboard with keys, usage, billing and spend controls.

## Planned

These are on the roadmap but not live. Nothing here is a date commitment.

- **OAuth for the MCP server**, so clients that can't send custom headers (ChatGPT connectors, some desktop apps) can sign in directly.

## Incidents

This page covers the API contract only. For outages, degraded performance and incident history, see the [status page](https://status.serpkite.com).