Ground an agent in the web
Let an agent search before it answers, then read the links it found, with the rank of each.
Google data API · Search
Run a Google web search and get the organic results as JSON: rank, title, link, snippet, domain and date, with related questions and searches. Operators like site:, intitle: and OR work, and you can filter by country, language, site, date range and file type.
Updated 21 October 2026
Let an agent search before it answers, then read the links it found, with the rank of each.
Check where a domain ranks for a set of queries in each country, on a schedule you choose.
Search a site, such as one domain or a profile path, to find the exact page or handle before you look it up elsewhere.
curl -X POST https://apiforagents.dev/v1/google \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"search","query":"best CRM for startups","pages":1,"country":"US","language":"en","estimateOnly":true}'curl -X POST https://apiforagents.dev/v1/google \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"search","query":"best CRM for startups","pages":1,"country":"US","language":"en"}'Everything you can send in one search call. Required inputs first.
| Input | Type | What it does |
|---|---|---|
| query * | string | ≤300 chars |
| pages | integer | Billed per page of ~10 results. The one op counted in pages. 1-5 |
| country | string | Country to search from. ISO alpha-2 |
| language | string | BCP-47 |
| site | string | Only results from this domain ("linkedin.com/in", "reddit.com"). The same as writing site: in the query. ≤120 chars |
| relatedToSite | string | Sites Google considers similar to this domain, instead of the query's own matches. ≤120 chars |
| since | string | YYYY-MM-DD |
| until | string | YYYY-MM-DD |
| fileTypes | text list | Only documents of these types, as extensions ("pdf", "xlsx", "ppt"). Empty = any page. each ≤8 chars |
The fields of every row, always present. Nothing is guessed: a value that could not be measured is null, and the answer's coverage says why.
| Field | Type |
|---|---|
| link | string |
| title | string |
| snippet | string |
| domain | string |
| source | string |
| publishedDate | string |
| rank | integer |
| relatedQuestions | any |
| relatedSearches | any |
| aiAnswer | string |
| aiAnswerSources | any |
| details | object |
details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.
Made-up names and values in the real field names, so you can see the shape before you spend anything.
| rank | title | domain | snippet | publishedDate | link |
|---|---|---|---|---|---|
| 1 | How to price a B2B SaaS product (2026 guide) | northfold.example | A step-by-step way to set your first price, with worked e… | 2026-08-12 | https://www.google.com/how-to-price-a-b2b-saas-product-20… |
| 2 | SaaS pricing models compared | ledgerly.example | Per seat, usage-based and flat fees, side by side. | 2026-06-30 | https://www.google.com/saas-pricing-models-compared-1001 |
| 3 | Pricing page examples that convert | brightdesk.example | 24 real pricing pages and what they get right. | 2026-09-18 | https://www.google.com/pricing-page-examples-that-convert… |
Pay as you go, in US dollars, per record. No subscription, nothing expires, $5 first top-up, and every new agent starts with $0.10 free.
| Request | Records | At the list price |
|---|---|---|
| One page | 1 | $0.0009 |
These are per-record list prices. Some calls also carry a minimum, such as a page of search results, so a small request can cost more than the table shows. The quote ("estimateOnly": true) is free, gives the most your exact request can cost, and the charge then settles to what came back. Records that do not come back are refunded.
One row per organic result: rank, title, domain, snippet, published date where shown, and link, plus the related questions and related searches Google shows for the query.
A query of up to 300 characters, and optionally the number of pages (one to five), country, language, a site to search within, a site to find similar sites to, since and until dates, and file types such as pdf or xlsx.
$0.0009 per page of about ten results at the list price. A small call can carry a minimum, so quote first with "estimateOnly": true: the quote is free and is the most the call can cost. You pay for what comes back.
The playground runs any endpoint by hand: pick a platform and what you want from it, fill a short form named in plain words (or press Use sample input), see the free quote on the Run button, run it, then read the answer as a table or JSON and download it as CSV or JSON. The same call is written out as cURL, Python and Node while you type.
Why people pick API for Agents
API for Agents is independent and not affiliated with or endorsed by LinkedIn or any company named here. LinkedIn is a trademark of LinkedIn Corporation; other names belong to their owners. Public data only: nothing behind a login.