Yandex API endpoint
Returns organic Yandex web results for a query: title, destination URL, display URL, and snippet, with page-based pagination. Advertisements are not returned. Yandex challenges a portion of requests with a captcha; the service retries and returns 503 if every attempt is challenged, so callers should retry on 503. Results are localized by Yandex to the location the request is made from.
/yandex/searchMCP tool: yandex_search
Query parameters:
q: required. Search query. Example: openai. Up to 400 characters.page: optional. 1-based result page. Defaults to 1, maximum 10. Any other value returns 400.Notable response behavior:
503, and the call can simply be retried.description is omitted for rows where Yandex shows no snippet (for example some social profiles); display_url is Yandex's host breadcrumb.503 (parser drift), never as an empty success.pagination.next_page is present only when Yandex offers a next page and page is below 10.| Field | Filled in, of 10 checked | Values in the sample |
|---|---|---|
| position | 10 | 1 to 10, median 5 |
| title | 10 | “OpenAI | Research & Deployment” and 9 other values |
| url | 10 | openai.com and 9 other hosts |
| display_url | 10 | “openai.com” and 9 other values |
| description | 9 | median 137 characters |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | Yes | Search query | openai | |
| page | integer | No | 1 | 1-based result page; defaults to 1, maximum 10 Minimum: 1. Maximum: 10. | 1 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/yandex/search?q=openai&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "openai",
"results": [
{
"position": 1,
"title": "OpenAI | Research & Deployment",
"url": "https://openai.com/",
"display_url": "openai.com",
"description": "Research acceleration: The view inside OpenAI."
}
],
"pagination": {
"page": 1,
"next_page": 2
}
}
}Request schema
No body schema
Response schema
#/definitions/yandex.searchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | yandex.SearchResponse | No | ||||
| data.pagination | yandex.SearchPagination | No | ||||
| data.pagination.next_page | integer | No | 2 | |||
| data.pagination.page | integer | No | 1 | |||
| data.query | string | No | openai | |||
| data.results | array | No | ||||
| data.results[].description | string | No | OpenAI is an AI research and deployment company. | |||
| data.results[].display_url | string | No | openai.com | |||
| data.results[].position | integer | No | 1 | |||
| data.results[].title | string | No | OpenAI | Research & Deployment | |||
| data.results[].url | string | No | https://openai.com/ | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Missing or invalid parameters | #/definitions/app.Response |
| 429 | Rate limit exceeded | #/definitions/app.Response |
| 500 | Internal server error | #/definitions/app.Response |
| 503 | Yandex upstream request failed or was challenged with a captcha | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/yandex/search?q=openai&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"