Scraper API

Google Events API

with dates, venues, and ticket links

Search Google Events for any location and get every event as clean JSON: dates, venues, addresses, ticket sources, and map links. One request, structured results.

SUCCESS
98.7%

of requests succeed

P50
3.3s

median response

P95
4.9s

95% finish faster

PRICE
$0.37

per 1k event searches at volume

Stop maintaining scrapers

Event listings shift constantly. Your code shouldn't care.

  • A parser per page layout
  • Dates in a dozen formats
  • Ticket sources that vary per event
  • Headless browsers to keep warm
  • Fix the parsers again next week
One integration commit replaces a backlog you’ll never finish.
scraper | git log
hotfix: markup changed, nulls in output
fix: date parser breaks on ranges
fix: ticket source list changed shape
chore: bump browser pool memory
fix: selector drift after redesign
hotfix: map token moved again
fix: dedupe on venue names
chore: re-run failed batch overnight
fix: pagination broke after redesign
fix: retry storm on timeouts
hotfix: markup changed, nulls in output
fix: date parser breaks on ranges
fix: ticket source list changed shape
chore: bump browser pool memory
fix: selector drift after redesign
hotfix: map token moved again
fix: dedupe on venue names
chore: re-run failed batch overnight
fix: pagination broke after redesign
fix: retry storm on timeouts
hotfix: markup changed, nulls in output
fix: date parser breaks on ranges
fix: ticket source list changed shape
chore: bump browser pool memory
fix: selector drift after redesign
hotfix: map token moved again
fix: dedupe on venue names
chore: re-run failed batch overnight
fix: pagination broke after redesign
fix: retry storm on timeouts
hotfix: markup changed, nulls in output
fix: date parser breaks on ranges
fix: ticket source list changed shape
chore: bump browser pool memory
fix: selector drift after redesign
hotfix: map token moved again
fix: dedupe on venue names
chore: re-run failed batch overnight
fix: pagination broke after redesign
fix: retry storm on timeouts
feat: integrate HasData API
Code Examples

One GET Request. That's the whole integration.

Start with just a query. Add more parameters when your use case needs them.

request example
curl -G 'https://api.hasdata.com/scrape/google/events' \
	--data-urlencode 'q=Events in New York' \
	--data-urlencode 'location=Austin,Texas,United States' \
	--header 'x-api-key: <YOUR_API_KEY>' \
	--header 'Content-Type: application/json'
q * Search Query
Specify the search term for which you want to scrape the SERP.
location Location
Google canonical location for the search.
uule Encoded Location
The encoded location parameter.
domain Domain
Google domain to use. Default is google.com.
gl Country
The two-letter country code for the country you want to limit the search to.
hl Language
The two-letter language code for the language you want to use for the search.
start Result Offset
This parameter specifies the number of search results to skip and is used for implementing pagination. For example, a value of 0 (default) indicates the first page of results, 10 refers to the second page, and 20 to the third page.
htichips Filtering
Filter parameter for refining event search results. Supports various filters for events. Multiple filters can be passed using a comma. The available filters are: - `date:today`: Today's Events - `date:tomorrow`: Tomorrow's Events - `date:week`: This Week's Events - `date:weekend`: This Weekend's Events - `date:next_week`: Next Week's Events - `date:month`: This Month's Events - `date:next_month`: Next Month's Events - `event_type:Virtual-Event`: Online Events For example, to filter for today's online events, use: `event_type:Virtual-Event,date:today`.
TRY ALL 8 PARAMETERS FREE
Response

Every event, one predictable schema

The same keys come back on every request. Map the fields once and forget about it.

eventsResults.json
[
  {
    "position": 1,
    "title": "Austin Comedy Killers",
    "date": {
      "startDate": "24 Jul",
      "when": "Jul 7 - 28"
    },
    "address": [
      "Sunset Strip Comedy & Entertainment, 214 E 6th St Unit c",
      "Austin, TX"
    ],
    "venue": {
      "name": "Sunset Strip Comedy & Entertainment",
      "reviews": 198
    },
    "description": "Tuesdays • 9:00 PM Sunset Strip Comedy Club Don’t miss Austin Comedy Killers-a no-holds-barred stand-up comedy showcase happens every Tuesday, at 9:00 PM at…",
    "link": "https://www.austintexas.org/event/austin-comedy-killers/396012/",
    "eventLocationMap": {
      "image": "https://www.google.com/maps/vt/data=…",
      "link": "https://www.google.com/maps/place/…"
    }
  }
]
Fields in eventsResults
title string

Event name

date.startDate string

Start day, e.g. "24 Jul"

date.when string

Human-readable run, e.g. "Jul 7 - 28"

address string[]

Venue line and city

venue.name string

Venue name

venue.reviews number

Venue review count

description string

Event description

link string

Primary event URL

thumbnail string

Event image URL

eventLocationMap object

Static map image and Google Maps link

What We Offer

An all-in-one scraping service

Every feature you need to collect data from thousands to millions of requests.

Loved by developers

Teams that deleted their scraper

Now it's the part of the pipeline they don't think about

4.8 ★★★★★
across 100+ reviews on 5 platforms
Trustpilot Trustpilot ★★★★★

HasData delivers exactly what we need: speed and comprehensive search features. It's the fastest API we've used in this space. Plus, their customer support is fantastic.

Denver Sinclair
Denver Sinclair
Capterra Capterra ★★★★★

We rely on HasData for search performance data and broader scraping needs. Their APIs deliver highly structured data that integrates directly into our platforms.

JN
Jacob N.
Trustpilot Trustpilot ★★★★★

Great web scraping API which is incredibly easy to use. It requires minimal effort to get up and running, and the documentation is very clear and helpful.

Arnold Foster
Arnold Foster
Trustpilot Trustpilot ★★★★★

I needed to scrape some information they didn't already support, and they wrote the code for me right away, which was super nice of them.

Hussein Ali
Hussein Ali
Clutch Clutch ★★★★★

We were particularly impressed with how easily we could integrate HasData into our existing workflow.

TB
Taras Bazyshyn
CEO at BAZTDL Sp. z o.o
Pricing

Plans that get cheaper at scale

Fixed price, fixed volume, no surprises at the end of the month. Upgrade when you need more.

Free
$0 /mo
One-time free trial
200 event searches to start
1 concurrent request
Team seats
Community support
Start free
Startup
$41 /mo
$1.02 / 1k event searches
40K event searches / month
15 concurrent requests
Team seats
Email support
Get started
Business
Recommended
$83 /mo
$0.41 / 1k event searches
200K event searches / month
30 concurrent requests
Team seats
Priority email support
Get started
Growth
$208 /mo
$0.35 / 1k event searches
50 concurrent requests
Team seats
Dedicated account manager
Get started
Monthly event search volume
Free 200K 1M 4M 12M 20M
Best fit
Business
event searches / mo
200K
Concurrency
30
$ / 1k event searches
$0.41
$83 /mo
Get Started
Enterprise
Custom price based on required volume

Past 100M scrapes a month, or terms the self-serve plans do not cover. We shape the contract around your workload.

Credits rollover
Unused credits carry into the next billing period.
Concurrency 2000+
Parallel request limits set to your peak load.
#1 request priority
Highest speed, always first in the queue.
Personal manager
A direct line to the founding team.
SSO
SAML single sign-on for the whole team.
SOC-2 compliance
Security review, DPA, and audit reports.
Talk to sales Quote within one business day
FAQ

Questions, answered

1 Grab your API key 2 Send a GET request 3 Get structured JSON

Your first Google Events response
is minutes away

200 event searches free · no credit card