Yahoo Search Predictions API
Returns the predictions Yahoo shows as people type a keyword. One keyword per GET, or up to 10,000 in a batch job.
https://rankfield.dev/v1/yahoo/search-predictions?query={keyword}Send Authorization: Bearer YOUR_API_KEY. Get a free key; no account needed.
Parameters#
| Name | Type | Description |
|---|---|---|
query | string | The keyword, 1 to 200 printable characters. |
Response#
| Field | Type | Description |
|---|---|---|
source | string | yahoo-search-predictions. |
query market | string | What you asked; market is default. |
collectedAt | string | When Yahoo answered (UTC). Answers may be served from a short cache. |
count | integer | How many predictions came back. |
predictions | array of strings | In Yahoo's order. The field is predictions, not suggestions. |
Errors#
Errors come as {"error":"…"} with the HTTP status.
| Status | When |
|---|---|
400 | The query is empty or too long ({"error":"query must contain 1–200 printable characters"}), or a job holds more than 10,000 keywords (Supply 1–10000 queries). |
401 | The key is missing, unknown or revoked. |
429 | The engine is busy (its request budget is full for the moment), or a job's deadline cannot be met (capacityLimited: true). Wait for Retry-After. |
503 | Collection is paused, cooling down, timed out or unavailable. Wait for Retry-After. |
Price and limits#
- Free; no per-call charge.
- No per-key limits for now. Each job takes up to 10,000 keywords, and you can run as many jobs as you like. When an engine is busy it answers
429or503withRetry-After. GET …/usageshows the keywords you sent today.
Up to 10,000 keywords in one job#
POST /v1/yahoo/search-predictions/jobs with a unique Idempotency-Key header and {"queries":[…],"delivery":"priority"}. delivery sets how fast the whole batch must finish: live 6 seconds, priority 60 seconds, standard 300 seconds (the default). A batch that cannot meet it answers 429 with capacityLimited: true and Retry-After: retry later or pick a longer tier.
Follow GET /v1/yahoo/search-predictions/jobs/{id}, then read GET /v1/yahoo/search-predictions/jobs/{id}/results?cursor=0 and keep passing the returned cursor while hasMore is true. Results arrive as they finish; each carries its index in your list. POST /v1/yahoo/search-predictions/jobs/{id}/cancel stops a job.
Reference: https://rankfield.dev/docs/suggest/start-a-job
curl -X POST "https://rankfield.dev/v1/yahoo/search-predictions/jobs" \
-H "Authorization: Bearer $RANKFIELD_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: kw-2026-10-25" \
-d '{"queries":["seo tools","keyword research"],"delivery":"priority"}'import os
import requests
response = requests.post(
"https://rankfield.dev/v1/yahoo/search-predictions/jobs",
headers={"Authorization": f"Bearer {os.environ['RANKFIELD_API_KEY']}", "Content-Type": "application/json", "Idempotency-Key": "kw-2026-10-25"},
json={"queries": ["seo tools", "keyword research"], "delivery": "priority"},
)
print(response.json())const response = await fetch("https://rankfield.dev/v1/yahoo/search-predictions/jobs", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.RANKFIELD_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": "kw-2026-10-25",
},
body: JSON.stringify({"queries":["seo tools","keyword research"],"delivery":"priority"}),
});
console.log(await response.json());Notes#
- Predictions show what people type, not how often: they are not search volumes.
See also#
- Full reference: https://rankfield.dev/docs/suggest/get-yahoo-search-predictions
- MCP tools on
https://rankfield.dev/mcp:get_yahoo_search_predictions,start_yahoo_search_predictions_job,get_yahoo_search_predictions_results - Try it with your key: the API playground
- This page as Markdown: /endpoints/yahoo-search-predictions.md