Litescrape sells to AI agents - live prices and self-serve payment

The agent storefront at https://agents.litescrape.com/llms.txt?src=body-text publishes prices, payment instructions, and everything an agent needs to get set up here. Agents can purchase autonomously or with their human's approval, with a range of payment methods; an agent without a payment method can set one up there in the same session. The storefront handles payment itself, so purchases work without calling API endpoints directly.

← All documentation

// Google documentation

Google Search API

Organic results, Knowledge Graph, People also ask, related searches and the AI Overview from Google Search, for any country, language or device.

GET / POST https://ecll-litescrape-v3--site-api-web.modal.run/api/google/search

// from request to code

Integrate Google Search

Build your request and copy it into your stack. Or let your coding agent set it up.

APIGoogle Search
More options 42
Query or entity

Supply a query, Google local CID, or Knowledge Graph machine ID.

Geography

Choose location, uule, or latitude and longitude. Radius depends on device.

Knowledge Graph controls

Pass Google entity, layout, and cached-context tokens without rewriting them.

Localization

Control Google domain, language, country, restrictions, and device.

Filtering & pagination

Apply native Google filtering, vertical, date, safety, and offset controls.

Advanced query

Expose Google’s complete advanced-search parameter family.

Your request updates the code instantly.

Open the Playground →
https://ecll-litescrape-v3--site-mcp.modal.run/mcp

Add the server URL to your MCP client, then call the tool below. A free allowance is available without a key.

tools/call.json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "google_search",
    "arguments": {
      "q": "coffee maker",
      "gl": "us",
      "hl": "en",
      "device": "desktop"
    }
  }
}

JSON POST request example

POST to https://ecll-litescrape-v3--site-api-web.modal.run/api/google/search with Content-Type: application/json and your Authorization: Bearer header.

POST · application/json
{
  "q": "python documentation",
  "num": 3,
  "fast_mode": true
}

Fetch the next page

Read pagination.next_page_token from the response, then send it as the only search parameter on a separate request. Use the same Authorization header; the token carries your query, filters, location, device and next offset.

Next page POST body
{
  "page_token": "<pagination.next_page_token>"
}
  • Prefer page_token to repeating the same search with start=10, start=20, or another offset.
  • Send the token as soon as possible and no later than 5 minutes after receiving it.
  • Available for ordinary Google Search, including fast mode; not available for tbm verticals.
  • search_metadata.continuation is followed for a direct request.
  • If Google omits a required link or the deadline expires, the request fails without billing.

// request reference

Google Search parameters

Send query parameters with GET /api/google/search. Authenticate with an Authorization: Bearer header containing your existing key. Keep keys on your server, not in browser code.

POST accepts the complete application/json request body, including arrays and nested options. Dotted names describe fields inside an object; [] denotes each array item. This reference is generated from the v3 OpenAPI contract.

Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget.

Query and entity selectors

q
QueryConditional

Google Search query, up to 2,048 characters.

Type string · GET query or POST JSON

Example / input hint: coffee shops in Austin

  • Required unless ludocid, kgmid, or page_token is supplied.
  • Maximum characters: 2048
fast_mode
Fast modeOptional

Return organic results only, skipping AI Overview and all other result groups.

Type boolean · GET query or POST JSON · Default false

Accepted valuestruefalse
  • Keeps search metadata and parameters. Omits cross-module position_absolute.
ludocid
Local CIDConditional

Google local CID used to search for one entity.

Type string · GET query or POST JSON

Example / input hint: 1234567890123456789

  • Maximum characters: 128
  • Pattern: ^\d+$
kgmid
Knowledge Graph IDConditional

Google Knowledge Graph machine ID, such as /m/0k8z.

Type string · GET query or POST JSON

Example / input hint: /m/0k8z

  • Maximum characters: 512

Geographic location

location
LocationOptional

Human-readable city-level location encoded to UULE by Litescrape.

Type string · GET query or POST JSON

Example / input hint: Austin, Texas

  • Conflicts with uule and lat/lon.
  • Maximum characters: 512
uule
UULEOptional

Pre-encoded Google location value.

Type string · GET query or POST JSON

Example / input hint: w+CAIQICI…

  • Conflicts with location and lat/lon.
  • Maximum characters: 2048
lat
LatitudeOptional

Latitude from -90 through 90.

Type number · GET query or POST JSON

Example / input hint: 30.2672

  • Requires lon and conflicts with location and uule.
  • Minimum: -90
  • Maximum: 90
lon
LongitudeOptional

Longitude from -180 through 180.

Type number · GET query or POST JSON

Example / input hint: -97.7431

  • Requires lat and conflicts with location and uule.
  • Minimum: -180
  • Maximum: 180
radius
Radius (meters)Optional

Decimal search-bias radius in meters.

Type number · GET query or POST JSON

Example / input hint: 150.75

  • Requires location or lat/lon.
  • Desktop: 1–199; tablet/mobile: 1–1,000.
  • Minimum: 1
  • Maximum: 1000

Knowledge Graph and layout controls

lsig
lsigOptional

Opaque Knowledge Graph or local-pack signature.

Type string · GET query or POST JSON

  • Maximum characters: 4096
si
siOptional

Opaque cached Google search context.

Type string · GET query or POST JSON

  • Maximum characters: 4096
ibp
ibpOptional

Google layout or expansion control.

Type string · GET query or POST JSON

  • Maximum characters: 4096
uds
udsOptional

Opaque Google filter token.

Type string · GET query or POST JSON

  • Maximum characters: 4096
color_scheme
Color schemeOptional

Google result color presentation.

Type string · GET query or POST JSON

Accepted valueslightdark

Localization, filtering, and pagination

page_token
Next page tokenOptional

Opaque token from pagination.next_page_token. Send it alone to fetch the next page with the original search parameters.

Type string · GET query or POST JSON

  • Prefer page_token to repeating the same search with start=10, start=20, or another offset.
  • Send the token as soon as possible and no later than 5 minutes after receiving it.
  • Available for ordinary Google Search, including fast mode; not available for tbm verticals.
  • search_metadata.continuation is followed for a direct request.
  • If Google omits a required link or the deadline expires, the request fails without billing.
google_domain
Google domainOptional

Results use google.com. Use gl, hl, cr, lr or geography for localization.

Type string · GET query or POST JSON · Default google.com

Example / input hint: google.com

gl
CountryOptional

Lowercase two-letter country localization code.

Type string · GET query or POST JSON

Example / input hint: us

  • Pattern: ^[a-z]{2}$
hl
LanguageOptional

Google interface and result language code.

Type string · GET query or POST JSON · Default en

Example / input hint: en

  • Pattern: ^[a-z]{2,3}(?:-[A-Za-z]{2,8})?$
cr
Country restrictOptional

One or more countryXX restrictions joined with |.

Type string · GET query or POST JSON

Example / input hint: countryUS

  • Pattern: ^country[A-Z]{2}(?:\|country[A-Z]{2})*$
lr
Language restrictOptional

One or more lang_xx restrictions joined with |.

Type string · GET query or POST JSON

Example / input hint: lang_en

  • Pattern: ^lang_[a-z]{2,3}(?:\|lang_[a-z]{2,3})*$
tbs
Search filterOptional

Google native date or search filter string.

Type string · GET query or POST JSON

  • Maximum characters: 4096
safe
Safe searchOptional

Google adult-content filtering.

Type string · GET query or POST JSON

Accepted valuesactiveoff
nfpr
Auto-correctionOptional

Google auto-correction control.

Type string · GET query or POST JSON

Accepted values01
filter
Similar resultsOptional

Google similar-result filtering control.

Type string · GET query or POST JSON

Accepted values01
pws
PersonalizationOptional

Google personalization control; 0 asks for non-personalized results.

Type string · GET query or POST JSON

Accepted values01
peek_pws
Personalization peekOptional

Google personalization peek flag, forwarded unchanged.

Type string · GET query or POST JSON

Accepted values01
tbm
VerticalOptional

Google vertical: lcl, vid, nws, shop, or pts. For image searches, use /api/google/images.

Type string · GET query or POST JSON

Example / input hint: nws

Accepted valueslclvidnwsshoppts
start
Start offsetOptional

Non-negative Google result offset.

Type integer · GET query or POST JSON · Default 0

Example / input hint: 0

  • Prefer page_token to repeating the same search with start=10, start=20, or another offset.
  • Minimum: 0
device
DeviceOptional

Request device profile and radius bound.

Type string · GET query or POST JSON · Default desktop

Accepted valuesdesktoptabletmobile

Advanced query parameters

num
Results requestedOptional

Best-effort first-page result count, 1 to 10.

Type integer · GET query or POST JSON

Example / input hint: 10

  • Minimum: 1
  • Maximum: 10
as_dt
Site modeOptional

Includes or excludes as_sitesearch.

Type string · GET query or POST JSON

Accepted valuesie
  • Requires as_sitesearch.
as_epq
Exact phraseOptional

Exact phrase query.

Type string · GET query or POST JSON

  • Maximum characters: 2048
as_eq
Exclude phraseOptional

Excluded phrase query.

Type string · GET query or POST JSON

  • Maximum characters: 2048
as_lq
Links to URLOptional

Require results that link to this URL.

Type string · GET query or POST JSON

Example / input hint: https://example.com

  • Maximum characters: 4096
as_nlo
Range lowOptional

Inclusive range lower bound.

Type integer · GET query or POST JSON

Example / input hint: 10

  • Requires as_nhi.
  • Minimum: 0
as_nhi
Range highOptional

Inclusive range upper bound.

Type integer · GET query or POST JSON

Example / input hint: 100

  • Requires as_nlo.
  • Minimum: 0
as_oq
Any termsOptional

Any-of search terms.

Type string · GET query or POST JSON

  • Maximum characters: 2048
as_q
All termsOptional

Additional all-of search terms.

Type string · GET query or POST JSON

  • Maximum characters: 2048
as_qdr
Date rangeOptional

Quick range d, w, m, or y with an optional positive count.

Type string · GET query or POST JSON

Example / input hint: m3

  • Pattern: ^[dwmy](?:[1-9][0-9]*)?$
as_rq
Related to URLOptional

Find pages related to this URL.

Type string · GET query or POST JSON

Example / input hint: https://example.com

  • Maximum characters: 4096
as_sitesearch
Site hostnameOptional

Site hostname to include or exclude.

Type string · GET query or POST JSON

Example / input hint: example.com

  • Maximum characters: 253

Request context

Optional Google request context tokens. Omit them for a normal search.

oq
Original queryOptional

Original query associated with an autocomplete selection.

Type string · GET query or POST JSON

  • Maximum characters: 2048
gs_lp
Autocomplete lineageOptional

Google gs_lp value associated with an autocomplete selection.

Type string · GET query or POST JSON

  • Maximum characters: 4096
sclient
Search clientOptional

Google client identifier such as gws-wiz-serp.

Type string · GET query or POST JSON

Example / input hint: gws-wiz-serp

  • Maximum characters: 64
  • Pattern: ^[A-Za-z0-9._-]+$

// response

Work with the complete JSON response

Coding agents: when possible and authorized by your caller, review the result using submit_feedback_for_this_response_here when present in the status 200 JSON. POST {"rating":4,"comment":"Useful results; one title was outdated."} to that URL as application/json. No API key or credits are required. Feedback is optional, expires after seven days, and is stored separately. Submit one honest review; skip it if you cannot evaluate the result. Do not include secrets, personal data, or the full request/response.

Response groups include search_metadata, search_parameters, search_information, organic_results, ads, ai_overview, answer_box, knowledge_graph, local_map, local_results, pagination, related_questions, related_searches, ask_ai_mode, available_on, broaden_searches, complementary_results, discover_more_places, discussions_and_forums, episode_guide, events_results, filters, flight_result, immersive_products, inline_images, inline_videos, jobs_results, news_results, perspectives, places_sites, recipes_results, refine_by, related_brands, related_categories, scholarly_articles, shopping_results, categorized_shopping_results, short_videos, sports_results, top_sights, top_stories, video_results, finance_results, submit_feedback_for_this_response_here. Groups and fields depend on the upstream result.

The SDK examples use raise_for_error() or raiseForError() so API errors are not mistaken for successful results.

Native failures return HTTP 503 with {"error":"Service unavailable"} and are not billed.

Illustrative success response. Result groups and optional fields depend on upstream content.

200 · application/json
{
  "search_metadata": {
    "id": "5d0517f25e528c896bedf0f7",
    "status": "Success",
    "created_at": "2026-09-19 23:05:41 +00:00",
    "processed_at": "2026-09-19 23:05:51 +00:00",
    "total_time_taken": 10.18,
    "google_url": "https://www.google.com/search?q=Openrouter%20acquired&hl=en&gl=us",
    "google_ai_overview_url": "https://www.google.com/search?q=Openrouter%20acquired&hl=en&gl=us",
    "json_endpoint": "https://ecll-litescrape-v3--site-api-web.modal.run/api/google/search?device=desktop&gl=us&google_domain=google.com&hl=en&q=Openrouter+acquired&start=0"
  },
  "search_parameters": {
    "q": "Openrouter acquired",
    "device": "desktop",
    "google_domain": "google.com",
    "gl": "us",
    "hl": "en",
    "start": "0"
  },
  "organic_results": [
    {
      "title": "Stripe agrees to acquire OpenRouter to help businesses ...",
      "link": "https://stripe.com/newsroom/news/stripe-agrees-to-acquire-openrouter",
      "displayed_link": "https://stripe.com › newsroom › news › stripe-agrees-to...",
      "source": "› newsroom › news › stripe-agrees-to...",
      "snippet": "Aug 19, 2026 — Stripe, the programmable financial services company , today announced that it has agreed to acquire OpenRouter, a leading AI model gateway ...",
      "snippet_highlighted_words": [
        "Stripe, the programmable financial services company"
      ],
      "favicon": "data:image/webp;base64,UklGRugAAABXRUJQVlA4INwAAABwBQCdASocABwAPsEusFgnoaenm/DwGAlsAMoOIA3mYiKh+n3L9szKbq7BcA/fQYIwjdXAAPwpoEZ070nCyAqFNlr8zv4adAT81y7vS8NvdVF//LhVlv+w3+poCDTj/s4SjPVQG04x3I47vOron94+/L9uw6bJnlGdyham6rk4IlQjwdZXYM53hP/kq1+v2L+4npCO903XW671zXz+fTTBRZJm+IrRWU/t7Tzp4ILb1/Hqsz9rdY5Wpu1q9boXXN+lBm8ktLUMlzW3V8zQ6/mMLIoyNHB34XTlpAAA",
      "date": "Aug 19, 2026",
      "position": 1,
      "position_absolute": 1
    },
    {
      "title": "Stripe didn't really buy OpenRouter because of the ' ...",
      "link": "https://techcrunch.com/2026/08/19/stripe-didnt-really-buy-openrouter-because-of-the-singularity/",
      "displayed_link": "https://techcrunch.com › 2026/08/19 › stripe-didnt-reall...",
      "source": "› 2026/08/19 › stripe-didnt-reall...",
      "snippet": "Aug 19, 2026 — Stripe confirmed on Wednesday that it was buying OpenRouter . it paid $7.5 billion. Investors will get the remaining $6 billion, according to ...",
      "snippet_highlighted_words": [
        "Stripe confirmed on Wednesday that it was buying OpenRouter"
      ],
      "favicon": "data:image/webp;base64,UklGRgoBAABXRUJQVlA4IP4AAACwBQCdASocABwAPtEwtFooIigoGAEAGglsAJ0zNDmYgbQB6HACscPGFeLKeUSjbAQLKpd/QLAA/RvyTe8kOogXY86+qA2F2sjs+ent4u2Ejn2MI3gDhdQyzhGylZn//CtcrR25ovIrIsr8MUxAPWSbt62idVL4yHqJpzbCjmp/X9iK5vASaZz1o09iRb3epy9zMnR+WhEEkYxdLF4cxt9xZh8eso4fmP7Yp90/Bksv0LSBQrnLh5zxij9lapUVmUrg0zT9kvThFeaQaZAt5nkWMdQrV91LGTuxrPHSl5BAK4HL1iJRzKynZEq0spyZynAhX5jvnUB6t7ayfVLAAA==",
      "date": "Aug 19, 2026",
      "position": 2,
      "position_absolute": 2
    }
  ],
  "related_searches": [
    {
      "query": "Openrouter acquired reddit",
      "link": "https://www.google.com/search?sca_esv=c2f28d3b49117e12&hl=en&gl=us&q=Openrouter+acquired+reddit&sa=X&ved=2ahUKEwj43PP24PuWAxVfrokEHY3OCJsQ1QJ6BAgyEAE",
      "block_position": 0
    },
    {
      "query": "OpenRouter founder",
      "link": "https://www.google.com/search?sca_esv=c2f28d3b49117e12&hl=en&gl=us&q=OpenRouter+founder&sa=X&ved=2ahUKEwj43PP24PuWAxVfrokEHY3OCJsQ1QJ6BAhEEAE",
      "block_position": 1
    }
  ],
  "related_questions": [
    {
      "question": "Who is acquiring OpenRouter?"
    },
    {
      "question": "How much did Stripe acquire OpenRouter for?"
    }
  ],
  "perspectives": [
    {
      "title": "Stripe's acquisition of OpenRouter highlights how quickly the AI market is evolving. While the companies didn't disclose the purchase price, multiple reports estimate the deal at more than $8 billion, making it Stripe's largest acquisition to date. OpenRouter does",
      "link": "https://www.google.com/goto?url=CAEStAEB6zswFUtjnU80RVzHcarjy7UjprhvW8-nm4uNAAVkE08RqOTTGffOwOFDqVrrLhwndFcYQqbcYVxg_JVMH3QXrsV3C8WPIwO9-ddnWH_aCGOxY7w4qRS0VMFZsOMozkPT-sygFeycy0KyEQex-C9A2aack0tKWgoMJ-KNY6-ZIey_WtzO2mhD8sqO98MyBzOMtcDhJ4Qo9fQVUcD2r1_6M4eJT0BhT3p4OcqfhafeGVGzNE4",
      "author": "Maryam A Hassani · LinkedIn",
      "author_description": "AI & tech startup co-founder",
      "date": "2 weeks ago",
      "thumbnails": [
        "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSYqgaqDRWnACt_KTH3X8N9j835EUzcl6fw15-_M-3ElA-6kYQNTHajmGuYSw&usqp=CAI&s"
      ]
    },
    {
      "title": "I can now officially say it: OpenRouter is being acquired by Stripe! Although we cannot comment on the price, this marks one of the fastest acquisitions of this scale in history: almost exactly 3 years after founding. In this blog post, we write about the founding story and history of OpenRouter, why we invested and why Stripe is the perfect acquirer. A few of the highlights: People love to say \"OpenRouter has no moat\". They think of moats primarily as technical difficulty. As a two-sided model marketplace, OpenRouter provides a really valuable service to model labs: predictability in capacity and distribution. And to user: a simple way to access all models. With scale, OpenRouter is able to provide better uptime, more models, with the cheapest discounts and have model labs prioritize launching on OR first! — We saw this with Zuck and Elon both tweeting about their models on OR first, all Chinese models announcing on OR and OpenAI doing their secret model launches on OR and having",
      "link": "https://www.google.com/goto?url=CAESnwEB6zswFXqc6tdJ5VhWwRzumwG7h45tTl-2xEyjgPtd8gErYPMYovNzTXxRFIaaIKUu_O_7htVE49F0BfsNd2kcOUP3k0RMHM0V9QjpqiTjlApxA6DKNJZwmvqIEIdJjBuUCrE8ZNTImtIjgqSUXiv0t0BrxBY9iMLca4BtgOA_Qts6N6IVVbxbnsDxsG3rv7Y1RwbodjYfaNOO6c2nO3U",
      "author": "deedydas · X",
      "author_description": "Investor in Anthropic",
      "date": "1 month ago",
      "extensions": [
        "1.7K+ likes"
      ]
    }
  ],
  "search_information": {
    "total_results": 121,
    "time_taken_displayed": 0.16,
    "query_displayed": "Openrouter acquired"
  },
  "pagination": {
    "current": 1,
    "next": "https://www.google.com/search?q=Openrouter+acquired&sca_esv=c2f28d3b49117e12&hl=en&gl=us&ei=ThWvavj9Hd_cptQPjZ2j2Ak&start=10&sa=N&sstk=AS6-VmLXPfoawMD4oshPGy62kQvuJIEbGq_FMqK3dH7-BAfccswEMDY2bxvBiulKVEf3efEpaaTdym7yLhwVriC1Zta9SaSDR9E9zg&ved=2ahUKEwj43PP24PuWAxVfrokEHY3OCJsQ8NMDegQILRAW",
    "other_pages": {
      "2": "https://www.google.com/search?q=Openrouter+acquired&sca_esv=c2f28d3b49117e12&hl=en&gl=us&ei=ThWvavj9Hd_cptQPjZ2j2Ak&start=10&sa=N&sstk=AS6-VmLXPfoawMD4oshPGy62kQvuJIEbGq_FMqK3dH7-BAfccswEMDY2bxvBiulKVEf3efEpaaTdym7yLhwVriC1Zta9SaSDR9E9zg&ved=2ahUKEwj43PP24PuWAxVfrokEHY3OCJsQ8NMDegQILRAW",
      "3": "https://www.google.com/search?q=Openrouter+acquired&sca_esv=c2f28d3b49117e12&hl=en&gl=us&ei=ThWvavj9Hd_cptQPjZ2j2Ak&start=20&sa=N&sstk=AS6-VmLXPfoawMD4oshPGy62kQvuJIEbGq_FMqK3dH7-BAfccswEMDY2bxvBiulKVEf3efEpaaTdym7yLhwVriC1Zta9SaSDR9E9zg&ved=2ahUKEwj43PP24PuWAxVfrokEHY3OCJsQ8tMDegQILRAG",
      "4": "https://www.google.com/search?q=Openrouter+acquired&sca_esv=c2f28d3b49117e12&hl=en&gl=us&ei=ThWvavj9Hd_cptQPjZ2j2Ak&start=30&sa=N&sstk=AS6-VmLXPfoawMD4oshPGy62kQvuJIEbGq_FMqK3dH7-BAfccswEMDY2bxvBiulKVEf3efEpaaTdym7yLhwVriC1Zta9SaSDR9E9zg&ved=2ahUKEwj43PP24PuWAxVfrokEHY3OCJsQ8tMDegQILRAI",
      "5": "https://www.google.com/search?q=Openrouter+acquired&sca_esv=c2f28d3b49117e12&hl=en&gl=us&ei=ThWvavj9Hd_cptQPjZ2j2Ak&start=40&sa=N&sstk=AS6-VmLXPfoawMD4oshPGy62kQvuJIEbGq_FMqK3dH7-BAfccswEMDY2bxvBiulKVEf3efEpaaTdym7yLhwVriC1Zta9SaSDR9E9zg&ved=2ahUKEwj43PP24PuWAxVfrokEHY3OCJsQ8tMDegQILRAK",
      "6": "https://www.google.com/search?q=Openrouter+acquired&sca_esv=c2f28d3b49117e12&hl=en&gl=us&ei=ThWvavj9Hd_cptQPjZ2j2Ak&start=50&sa=N&sstk=AS6-VmLXPfoawMD4oshPGy62kQvuJIEbGq_FMqK3dH7-BAfccswEMDY2bxvBiulKVEf3efEpaaTdym7yLhwVriC1Zta9SaSDR9E9zg&ved=2ahUKEwj43PP24PuWAxVfrokEHY3OCJsQ8tMDegQILRAM",
      "7": "https://www.google.com/search?q=Openrouter+acquired&sca_esv=c2f28d3b49117e12&hl=en&gl=us&ei=ThWvavj9Hd_cptQPjZ2j2Ak&start=60&sa=N&sstk=AS6-VmLXPfoawMD4oshPGy62kQvuJIEbGq_FMqK3dH7-BAfccswEMDY2bxvBiulKVEf3efEpaaTdym7yLhwVriC1Zta9SaSDR9E9zg&ved=2ahUKEwj43PP24PuWAxVfrokEHY3OCJsQ8tMDegQILRAO",
      "8": "https://www.google.com/search?q=Openrouter+acquired&sca_esv=c2f28d3b49117e12&hl=en&gl=us&ei=ThWvavj9Hd_cptQPjZ2j2Ak&start=70&sa=N&sstk=AS6-VmLXPfoawMD4oshPGy62kQvuJIEbGq_FMqK3dH7-BAfccswEMDY2bxvBiulKVEf3efEpaaTdym7yLhwVriC1Zta9SaSDR9E9zg&ved=2ahUKEwj43PP24PuWAxVfrokEHY3OCJsQ8tMDegQILRAQ",
      "9": "https://www.google.com/search?q=Openrouter+acquired&sca_esv=c2f28d3b49117e12&hl=en&gl=us&ei=ThWvavj9Hd_cptQPjZ2j2Ak&start=80&sa=N&sstk=AS6-VmLXPfoawMD4oshPGy62kQvuJIEbGq_FMqK3dH7-BAfccswEMDY2bxvBiulKVEf3efEpaaTdym7yLhwVriC1Zta9SaSDR9E9zg&ved=2ahUKEwj43PP24PuWAxVfrokEHY3OCJsQ8tMDegQILRAS",
      "10": "https://www.google.com/search?q=Openrouter+acquired&sca_esv=c2f28d3b49117e12&hl=en&gl=us&ei=ThWvavj9Hd_cptQPjZ2j2Ak&start=90&sa=N&sstk=AS6-VmLXPfoawMD4oshPGy62kQvuJIEbGq_FMqK3dH7-BAfccswEMDY2bxvBiulKVEf3efEpaaTdym7yLhwVriC1Zta9SaSDR9E9zg&ved=2ahUKEwj43PP24PuWAxVfrokEHY3OCJsQ8tMDegQILRAU"
    }
  },
  "ai_overview": {
    "text_blocks": [
      {
        "type": "paragraph",
        "snippet": "Stripe announced an agreement to buy OpenRouter on August 19, 2026 , for a reported $7.5 billion.",
        "snippet_highlighted_words": [
          "August 19, 2026"
        ]
      },
      {
        "type": "heading",
        "snippet": "Deal Details"
      }
    ]
  },
  "submit_feedback_for_this_response_here": "https://ecll-litescrape-v3--site-api-web.modal.run/api/feedback/example-not-a-valid-token"
}

More Google APIs