For AI agents: use llms.txt for a full index of these docs.
Features
Search and AI answers
Google results, news, images, papers and trends, and Google AI Mode answers.
Video
YouTube, TikTok and Instagram videos, transcripts and comments.
Social
Posts, profiles and comments from Reddit, Instagram, LinkedIn and Pinterest.
Places and travel
Google Maps and Tripadvisor places and reviews, hotels and flights.
Jobs
Job listings from Google Jobs, LinkedIn, Indeed and Upwork.
Shopping
Amazon, Google Shopping and TikTok Shop products and prices.
Apps
App Store and Google Play apps, reviews and charts.
Real estate
Homes for sale, for rent and sold from Zillow.
Ads
Ad libraries from Meta, Google, TikTok, LinkedIn, Microsoft and Pinterest.
Base URL
POST with a JSON object body. The path is /v1/ plus the endpoint id with dots as slashes: google.search is /v1/google/search, and youtube.transcript is /v1/youtube/transcript. Unknown input fields return 400.
Authentication
Create a key in the dashboard. Send it with every request:401 with code unauthorized.
Responses
A successful call returns exactlysuccess, data, creditsUsed, and requestId:
data is a single object. A list is returned in data.results, with data.cursor when another page exists. Fields are not nested by owner: a value that belongs to a related resource carries that resource in its name, such as videoId, videoUrl, channelName and placeId. Empty values are omitted.
A failed call returns an error status and { "success": false, "error": { ... } }. See Errors.
One call, one page, one price
Each call returns one page. Most calls cost 1 credit and some cost 2. Five long lists cost 1 credit per 10 results. Instagram and TikTok transcripts cost more when the audio has to be transcribed. See Credits and billing. Some endpoints takepage: send page: 2, then 3, until data.results is empty. Others take cursor: send back the cursor from the response. The rest return everything in one call. See Page through results.
Request parameters are top-level fields of the JSON body. The body is the only input, and the response format is fixed.
Send a link or an id
To point at one thing, a request names it the way the response does. Send its link or its id, never both:videoUrl or videoId, placeUrl or placeId, userUrl or username, postUrl or postId (Instagram: postCode), and so on. Each endpoint’s reference lists the pair. Sending both, or neither, returns a 400.