Google API endpoint
Returns Google video vertical results (title, platform, link, duration, age). Locale defaults to country=us and lang=en. Returns 503 when Google serves a challenge page or an unusable response.
/google/videosMCP tool: google_videos
Query parameters:
q: required. Search query. Example: openai.page: optional. 1-based page number. Defaults to 1.count: optional. Results per page. Defaults to 10, clamped to 1..50.country: optional. Two-letter country code. Defaults to us.lang: optional. Google UI language. Defaults to en.Notable response behavior:
503.| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | Yes | Search query | openai | |
| page | integer | No | 1 | 1-based page number; defaults to 1 Minimum: 1. | 1 |
| count | integer | No | 10 | Results per page; defaults to 10, clamped to 1..50 Minimum: 1. Maximum: 50. | 10 |
| country | string | No | us | Two-letter country code; defaults to us | us |
| lang | string | No | en | Google UI language; defaults to en | en |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/google/videos?q=openai&page=1&count=10&country=us&lang=en" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"results": [
{
"position": 1,
"title": "OpenAI DevDay keynote - YouTube",
"url": "https://www.youtube.com/watch?v=openai-devday",
"description": "Watch the OpenAI DevDay keynote.",
"platform": "YouTube",
"thumbnail": "https://example.com/thumb.jpg",
"duration": "45:12",
"age": "2 days ago"
}
],
"pagination": {
"page": 1,
"next_page": 2
}
}
}Request schema
No body schema
Response schema
#/definitions/google.videosResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | google.VideosResponse | No | ||||
| data.pagination | object | No | Paging information for this response. | |||
| data.pagination.next_page | integer | No | 2 | Page number of the next page. Omitted when there is no next page. | ||
| data.pagination.page | integer | No | 1 | Page number of this response, starting at 1. | ||
| data.pagination.previous_page | integer | No | 1 | Page number of the previous page. Omitted on the first page. | ||
| data.results | array | No | Video results in Google's order. | |||
| data.results[].age | string | No | 2 days ago | When the video was published, as Google shows it. | ||
| data.results[].description | string | No | Watch the OpenAI DevDay keynote. | Video description snippet as shown on the Google results page. | ||
| data.results[].duration | string | No | 45:12 | Video length as Google shows it, for example `45:12`. | ||
| data.results[].platform | string | No | YouTube | Platform hosting the video, for example `YouTube`. | ||
| data.results[].position | integer | No | 1 | Rank of the video across all pages for the query, starting at 1. | ||
| data.results[].thumbnail | string | No | https://example.com/thumb.jpg | URL of the video thumbnail. | ||
| data.results[].title | string | No | OpenAI DevDay keynote - YouTube | Video title as shown on the Google results page. | ||
| data.results[].url | string | No | https://www.youtube.com/watch?v=openai-devday | URL of the video page. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Missing or invalid query parameters | #/definitions/app.Response |
| 429 | Rate limit exceeded | #/definitions/app.Response |
| 500 | Internal server error | #/definitions/app.Response |
| 503 | Google upstream request failed | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/google/videos?q=openai&page=1&count=10&country=us&lang=en" \
-H "x-api-key: $CRAWLORA_API_KEY"