# Migration guides

Switching to SerpWiz usually takes a few minutes. Every API returns Google results as JSON, so most of the work is changing the URL, the auth header and a few field names.

| From | Guide | Main changes |
|---|---|---|
| SerpApi | [Migrate from SerpApi](/docs/migrate-serpapi) | `api_key` param → `X-API-Key` header · `start` offset → `page` · `organic_results[].link` → `results[].url` |
| Serper | [Migrate from Serper](/docs/migrate-serper) | `POST` + `X-API-KEY` → `GET` + `X-API-Key` · `organic[]` → `results[]` · `places` → `/v1/google/maps` |

## What stays the same

- Google's own parameters: `q`, `gl`, `hl`, `tbs`, plus `lr` and `cr` for the Search endpoint.
- JSON responses with organic results, ads, the knowledge panel and related searches.

## What's different about SerpWiz

- **One price for every query:** $0.15 per 1,000 ($$0.1125 on annual plans). A search is always 1 query, never several credits.
- **Failed requests are free.** Errors, timeouts and `429` responses are never charged. The `X-Credits-Charged` header on every response shows exactly what was billed.
- **Unused queries roll over.** Purchased queries stay valid for 12 months.
- **Rate limits are per account in requests per second.** Your plan sets the limit. See [Rate limits](/docs/rate-limits).

You can try any request in the [Playground](/playground) before changing code, and new accounts get 1,000 free queries a month.
