Introducing the Instagram APIRead more →

Facebook Event Search API. Events matching your search.

Events by keyword, anywhere or in one city. We handle the proxies, blocks and platform changes.

Facebook Event Search API at a glance

Searches public Facebook events by keyword, anywhere or in one place, and returns them in Facebook's own ranking. Each result has the event's ID, link and name, its start, venue and cover, whether it's online, its status, and how many people are interested and going. Narrow by date with since and until. When Facebook refuses the query, results come from the search's page and are thin: mostly the ID, link, name and a picture.

GET /v1/facebook/search_events

Read the API reference
  • 1 credit per page, $0.75–$1.97 per 1,000 pages
  • 21 typed fields null when unknown
  • 20 events per page, Facebook's ranking of the results, not by date
  • query is all it needs, e.g. jazz

Send one request. Get up to 20 events back.

Copy the request in your language, or hand it to your agent. Sign up for an API key and your first 100 credits are free.

$ npm install socialtap
query = jazz
GET /v1/facebook/search_eventsTry in
const params = new URLSearchParams({
  query: "jazz",
});
const res = await fetch(`https://socialtap.dev/v1/facebook/search_events?${params}`, {
  headers: { "x-api-key": process.env.SOCIALTAP_API_KEY ?? "" },
});
const body = await res.json();
if (!res.ok) throw new Error(`${body.error.code}: ${body.error.message}`);
const { data, page, meta } = body;
console.log(data, meta.credits_charged);
200 OK · GET https://socialtap.dev/v1/facebook/search_eventsLong arrays and strings are shortened here. Real responses are complete.Docs

What you send and what comes back.

The response reference lists every field, its type and when it is null. See the full schema.

  • Null means unknown

    A field Facebook Events doesn't show is null, never zero or an empty string, so a real zero always means zero.

  • What it accepts

    The words to search events for, as in Facebook's event search: names, artists, topics, places.

  • What comes back

    Public events with their start and end, time zone, venue or online flag, hosts, categories, ticket link and attendance.

platformstring
Platform ID (facebook, …).
idstring
Platform-native event ID (string; Facebook's numeric event ID).
urlstring
Canonical event page URL (https://www.facebook.com/events/<id>/).
namestring
The event's name as its page shows it.
descriptionstring
Its description as plain text; null when it has none.
statusstring
At fetch time: scheduled (not started), ongoing (started, not over), ended (over), canceled (called off by its hosts); unknown when the source that answered does not show it (a fallback whose results hold only a name and a picture). New values may be added; treat any other value as unknown.
start_atstring
When it starts, RFC 3339 UTC; null only when the platform shows no start.
end_atstring
When it ends, RFC 3339 UTC; null when its hosts set no end or the platform does not show it.

What teams build with the Facebook Event Search API.

  • Find upcoming events on a topic or artist

  • Rank events by how many are going

  • Monitor a keyword for new events

  • Check whether a brand's event is listed

Good to know before you build.

  • A result holds id, url, name, start_at, status, is_online, place, cover_url, platform_specific.facebook.date_text and, when Facebook shows them, its interested and going counts and price text. description, end_at and ticket_url are null and hosts and categories [] (listed in unknown_fields), because a search doesn't show them: send an id to the Facebook Event API for its full record.
  • A recurring event's start_at is the first date of its series, which can be long past, and its status is ongoing until the series ends. platform_specific.facebook.date_text gives its next date as Facebook shows it, and the Facebook Event API returns the series.
  • Counts of a thousand or more are rounded by Facebook and listed in approximate_fields.
  • A venue is often the text its host typed: then place has a name and no ID.
  • When Facebook refuses the query (its rate limit, or a change on its side), the first page comes from the search's own page (meta.source page), with fewer and thinner results: id, url, name and a square cover_url, status unknown, and start_at, place, date_text and the counts null. page.next_cursor goes on with whole results.
  • since and until go to Facebook's date filter, which reads whole days and keeps a recurring event by any of its dates, so a result's start_at can be before since.
  • Results come in Facebook's ranking, not by date, and it depends on where the request comes from: the same words can return different events from one request to the next. location narrows them to one place.
  • Facebook returns nothing for some single common words (party, bar, wine), from every country tried, while a phrase with one of them answers in full (birthday party). That empty list is Facebook's answer and is charged as usual, so try a longer phrase.
  • A search with no results returns an empty list, and so does a location ID that names no place. A page can hold fewer events than limit and the list still goes on: follow page.next_cursor until it ends.
  • If Facebook's search returns next to nothing where the request comes from, on every try, the search answers upstream_blocked and costs nothing, rather than a false empty list: retry later.
  • Cursors expire sooner than on most lists, because Facebook's do: an older one returns invalid_cursor, and the search starts again from its first page.

1 credit per page. Failed requests are free.

Buy credits once and spend them on any endpoint, on any platform.

SourcePrice per successful pagePer 1,000 pages
Any source1 credit$0.75–$1.97
  • Cache hits are free.
  • Credits from packs and top-ups never expire.
  • A monthly plan's credits are spent first, and what is left of them ends at each renewal.
  • Prices exclude tax: sales tax is added at checkout where it applies.
  • Outside the US, plans and packs are sold to businesses: checkout asks for your VAT, GST or other business tax ID.

Questions about the Facebook Event Search API.

More in the API reference.

What does a result leave out?
The description, end, hosts, categories, series and ticket link, which a logged-out Facebook search doesn't show. The Facebook Event API returns them for an event's ID.
How do I search one city?
Send its ID as location. The Facebook Marketplace Location Search API finds it from the city's name.
Does it find past events?
Rarely. Facebook's search favors coming events, though one that just ended can still appear, with status ended.
How much does the Facebook Event Search API cost?
A page of up to 20 events costs 1 credit. Every successful page is charged, empty pages included. SocialTap credits cost $0.75–$1.97 per 1,000, depending on the plan or pack.
How do I get the next page?
Repeat the same request with cursor set to page.next_cursor from the previous response, keeping the other parameters. When page.has_more is false there are no more pages. Cursors expire after 30 minutes.

Try it with your own search.

Type it in the playground, or copy the request into your code.

100free credits
  • No credit card
  • Failed requests are free
  • Works on all 218 endpoints
Start for free Read the docs