# Facebook City Events API. Events, page by page.

By date window, with going and interested counts. We handle the proxies, blocks and platform changes.

[Get API key](https://socialtap.dev/signup/?next=%2Fplayground%2F%3Fendpoint%3Dfacebook.place_events)

## Facebook City Events API at a glance

Returns the public Facebook events in a city from its events link or ID, for every coming date or a window such as this weekend. Each event has its name, whether it's scheduled, under way or over, its start time with its offset from UTC, whether it's online, its venue and city, cover, ticket price label, the series a recurring date belongs to, the group it was created in, and how many people are going and interested.

GET `/v1/facebook/place_events`

[Read the API reference](https://socialtap.dev/docs/reference/facebook/place_events/index.md)

- **1 credit** per page, $0.75–$1.97 per 1,000 pages
- **21 typed fields** null when unknown
- **12** events per page, Facebook's ranking of the city's events, not by date
- **`url`** is all it needs, e.g. `https://www.facebook.com/events/explore/saint-petersburg-florida/111326725552547/`

## Send one request. Get up to 12 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`

`url = https://www.facebook.com/events/explore/saint-petersburg-florida/111326725552547/`

[Open in playground](https://socialtap.dev/playground/?endpoint=facebook.place_events)

cURL:

```shell
curl -G 'https://socialtap.dev/v1/facebook/place_events' \
  --data-urlencode 'url=https://www.facebook.com/events/explore/saint-petersburg-florida/111326725552547/' \
  -H "x-api-key: $SOCIALTAP_API_KEY"
```

TypeScript SDK:

```typescript
import { SocialTap } from "socialtap";

const client = new SocialTap(); // apiKey defaults to process.env.SOCIALTAP_API_KEY

const res = await client.facebook.placeEvents.list({ url: "https://www.facebook.com/events/explore/saint-petersburg-florida/111326725552547/" });
console.log(res.data);
console.log(res.credits.charged, res.meta.request_id);
```

Node.js (fetch):

```javascript
const params = new URLSearchParams({
  url: "https://www.facebook.com/events/explore/saint-petersburg-florida/111326725552547/",
});
const res = await fetch(`https://socialtap.dev/v1/facebook/place_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);
```

Python (requests):

```python
import os

import requests

res = requests.get(
    "https://socialtap.dev/v1/facebook/place_events",
    params={"url": "https://www.facebook.com/events/explore/saint-petersburg-florida/111326725552547/"},
    headers={"x-api-key": os.environ["SOCIALTAP_API_KEY"]},
)
body = res.json()
if not res.ok:
    raise RuntimeError(f"{body['error']['code']}: {body['error']['message']}")
data, page, meta = body["data"], body["page"], body["meta"]
print(data, meta["credits_charged"])
```

Go (net/http):

```go
package main

import (
	"encoding/json"
	"fmt"
	"log"
	"net/http"
	"net/url"
	"os"
)

func main() {
	q := url.Values{}
	q.Set("url", "https://www.facebook.com/events/explore/saint-petersburg-florida/111326725552547/")
	req, err := http.NewRequest("GET", "https://socialtap.dev/v1/facebook/place_events?"+q.Encode(), nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("x-api-key", os.Getenv("SOCIALTAP_API_KEY"))
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer res.Body.Close()
	var body struct {
		Data  json.RawMessage `json:"data"`
		Page  json.RawMessage `json:"page"`
		Meta  map[string]any  `json:"meta"`
		Error *struct {
			Code    string `json:"code"`
			Message string `json:"message"`
		} `json:"error"`
	}
	if err := json.NewDecoder(res.Body).Decode(&body); err != nil {
		log.Fatal(err)
	}
	if body.Error != nil {
		log.Fatalf("%s: %s", body.Error.Code, body.Error.Message)
	}
	fmt.Println(string(body.Data), body.Meta["credits_charged"])
}
```

200 OK:

```json
{
  "data": [
    {
      "approximate_fields": [
        "platform_specific.facebook.metrics.interested_count"
      ],
      "categories": [],
      "community_id": null,
      "cover_url": "https://scontent-atl3-1.xx.fbcdn.net/v/t39.30808-6/691737832_122221920272546827_3621567388430112740_n.jpg?stp=c0.45.1600.764a_dst-jpg_tt6&cstp=mx1600x764&ctp=s640x640&_nc_cat=110&ccb=SCRUBBED&_nc_sid=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=23&_nc_ht=scontent-atl3-1.xx&_n…",
      "description": null,
      "end_at": null,
      "hosts": [],
      "id": "1009766568177406",
      "is_online": false,
      "metrics": {
        "attendee_count": 253
      },
      "name": "90s Day Party: St. Petersburg, FL 💿",
      "parent_id": null,
      "place": {
        "address": null,
        "city": "Saint Petersburg, Florida",
        "country_code": null,
        "id": null,
        "latitude": null,
        "longitude": null,
        "name": "2655 6th Ave S, St Petersburg, FL 33712-1653, United States",
        "url": null
      },
      "platform": "facebook",
      "platform_specific": {
        "facebook": {
          "city_id": "111326725552547",
          "date_text": "Sat, Nov 7 at 3:00 PM EST",
          "frequency": null,
          "metrics": {
            "interested_count": 7500,
            "response_count": null
          },
          "occurrence_count": null,
          "price_text": null,
          "ticket_provider": null
        }
      },
      "start_at": "2026-11-07T20:00:00Z",
      "status": "scheduled",
      "ticket_url": null,
      "time_zone": null,
      "unknown_fields": [
        "hosts",
        "categories"
      ],
      "url": "https://www.facebook.com/events/1009766568177406/",
      "utc_offset_minutes": -300
    },
    {
      "approximate_fields": [],
      "categories": [],
      "community_id": null,
      "cover_url": "https://scontent-atl3-2.xx.fbcdn.net/v/t39.30808-6/876819554_1438940761722368_3293008712652972469_n.jpg?stp=c0.29.1920.917a_dst-jpg_tt6&cstp=mx1920x917&ctp=s640x640&_nc_cat=102&ccb=SCRUBBED&_nc_sid=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=23&_nc_ht=scontent-atl3-2.xx&_nc_…",
      "description": null,
      "end_at": null,
      "hosts": [],
      "id": "1117858504340275",
      "is_online": false,
      "metrics": {
        "attendee_count": 4
      },
      "name": "The Rocky Horror Spanksgiving Show!",
      "parent_id": null,
      "place": {
        "address": null,
        "city": "Saint Petersburg, Florida",
        "country_code": null,
        "id": "113001216940331",
        "latitude": null,
        "longitude": null,
        "name": "Green Light: Cinema, Lounge, Kitchen",
        "url": null
      },
      "platform": "facebook",
      "platform_specific": {
        "facebook": {
          "city_id": "111326725552547",
          "date_text": "Sat, Nov 14 at 8:30 PM EST",
          "frequency": null,
          "metrics": {
            "interested_count": 79,
            "response_count": null
          },
          "occurrence_count": null,
          "price_text": null,
          "ticket_provider": null
        }
      },
      "start_at": "2026-11-15T01:30:00Z",
      "status": "scheduled",
      "ticket_url": null,
      "time_zone": null,
      "unknown_fields": [
        "hosts",
        "categories"
      ],
      "url": "https://www.facebook.com/events/1117858504340275/",
      "utc_offset_minutes": -300
    },
    {
      "approximate_fields": [
        "platform_specific.facebook.metrics.interested_count"
      ],
      "categories": [],
      "community_id": null,
      "cover_url": "https://scontent-atl3-1.xx.fbcdn.net/v/t39.99422-6/851378089_1425164076476687_7376004806964005311_n.png?stp=c0.186.1080.516a_dst-jpg_tt6&cstp=mx1080x516&ctp=s640x640&_nc_cat=108&ccb=SCRUBBED&_nc_sid=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=14&_nc_ht=scontent-atl3-1.xx&_nc…",
      "description": null,
      "end_at": null,
      "hosts": [],
      "id": "1488319459545073",
      "is_online": false,
      "metrics": {
        "attendee_count": 107
      },
      "name": "St. Pete Yoga Fest",
      "parent_id": null,
      "place": {
        "address": null,
        "city": "Saint Petersburg, Florida",
        "country_code": null,
        "id": null,
        "latitude": null,
        "longitude": null,
        "name": "The St. Pete Pier",
        "url": null
      },
      "platform": "facebook",
      "platform_specific": {
        "facebook": {
          "city_id": "111326725552547",
          "date_text": "Sat, Nov 7 at 9:00 AM EST",
          "frequency": null,
          "metrics": {
            "interested_count": 1100,
            "response_count": null
          },
          "occurrence_count": null,
          "price_text": null,
          "ticket_provider": null
        }
      },
      "start_at": "2026-11-07T14:00:00Z",
      "status": "scheduled",
      "ticket_url": null,
      "time_zone": null,
      "unknown_fields": [
        "hosts",
        "categories"
      ],
      "url": "https://www.facebook.com/events/1488319459545073/",
      "utc_offset_minutes": -300
    }
  ],
  "page": {
    "has_more": true,
    "next_cursor": "c1.EXAMPLE_CURSOR",
    "next_cursor_expires_at": "2026-10-26T12:00:00Z",
    "end_reason": null
  },
  "meta": {
    "request_id": "req_3f9c2a7d1e8b4c6a9f0e2d4b6a8c0e1f",
    "platform": "facebook",
    "source": "api",
    "is_cached": false,
    "credits_charged": 1,
    "latency_ms": 793,
    "fetched_at": "2026-10-25T12:00:00Z",
    "input": {
      "kind": "place",
      "id": "111326725552547",
      "url": "https://www.facebook.com/events/explore/-/111326725552547/"
    },
    "credits_remaining": 9999,
    "client_request_id": null,
    "warnings": []
  }
}
```

Long arrays and strings are shortened here. Real responses are complete.

## What you send and what comes back.

The [response reference](https://socialtap.dev/docs/reference/facebook/place_events/index.md#response) lists every field, its type and when it is `null`. [See the full schema](https://socialtap.dev/resources/event/index.md).

- ### 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 city: its Facebook events link (facebook.com/events/explore/\<city>/\<id>/, with a time window after it such as /today/; m. and web. hosts too) or its numeric ID.
- ### What comes back

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

- **`platform`string**: Platform ID (facebook, …).
- **`id`string**: Platform-native event ID (string; Facebook's numeric event ID).
- **`url`string**: Canonical event page URL (https://www.facebook.com/events/\<id>/).
- **`name`string**: The event's name as its page shows it.
- **`description`string**: Its description as plain text; null when it has none.
- **`status`string**: 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_at`string**: When it starts, RFC 3339 UTC; null only when the platform shows no start.
- **`end_at`string**: When it ends, RFC 3339 UTC; null when its hosts set no end or the platform does not show it.

Live data from 33 platforms.

[TikTok](https://socialtap.dev/apis/tiktok/index.md) · [Instagram](https://socialtap.dev/apis/instagram/index.md) · [Facebook](https://socialtap.dev/apis/facebook/index.md) · [YouTube](https://socialtap.dev/apis/youtube/index.md) · [Reddit](https://socialtap.dev/apis/reddit/index.md) · [Threads](https://socialtap.dev/apis/threads/index.md) · [Spotify](https://socialtap.dev/apis/spotify/index.md) · [Amazon](https://socialtap.dev/apis/amazon/index.md) · [Apple Music](https://socialtap.dev/apis/applemusic/index.md) · [Pinterest](https://socialtap.dev/apis/pinterest/index.md) · [Rumble](https://socialtap.dev/apis/rumble/index.md) · [X](https://socialtap.dev/apis/x/index.md) · [Bluesky](https://socialtap.dev/apis/bluesky/index.md) · [Twitch](https://socialtap.dev/apis/twitch/index.md) · [LinkedIn](https://socialtap.dev/apis/linkedin/index.md) · [Telegram](https://socialtap.dev/apis/telegram/index.md) · [TikTok Shop](https://socialtap.dev/apis/tiktokshop/index.md) · [Kwai](https://socialtap.dev/apis/kwai/index.md) · [Snapchat](https://socialtap.dev/apis/snapchat/index.md) · [SoundCloud](https://socialtap.dev/apis/soundcloud/index.md) · [Truth Social](https://socialtap.dev/apis/truthsocial/index.md) · [Kick](https://socialtap.dev/apis/kick/index.md) · [Komi](https://socialtap.dev/apis/komi/index.md) · [Lnk.Bio](https://socialtap.dev/apis/linkbio/index.md) · [Linkme](https://socialtap.dev/apis/linkme/index.md) · [Linktree](https://socialtap.dev/apis/linktree/index.md) · [Pillar](https://socialtap.dev/apis/pillar/index.md) · [TikTok Ad Library](https://socialtap.dev/apis/tiktok-ad-library/index.md) · [Facebook Ad Library](https://socialtap.dev/apis/facebook-ad-library/index.md) · [Facebook Events](https://socialtap.dev/apis/facebook-events/index.md) · [Facebook Marketplace](https://socialtap.dev/apis/facebook-marketplace/index.md) · [Google Ads Transparency Center](https://socialtap.dev/apis/google-ads-transparency/index.md) · [LinkedIn Ad Library](https://socialtap.dev/apis/linkedin-ad-library/index.md)

## What teams build with the Facebook City Events API.

- ### List what's on in a city this weekend
- ### Monitor a market's concerts, festivals and meetups
- ### Feature local events in a city guide
- ### Track how interest in local events builds

## Good to know before you build.

- Events come in Facebook's ranking for the city, not by date, so since and until filter each page without ending the walk. The list covers about the next three months.
- Going and interested counts are rounded from a thousand (approximate_fields lists them). end_at, description, hosts and categories aren't on the list: the Facebook Event API returns them, with exact counts, for an event's ID.
- place.name is what the event's card shows, often a street address, and place.address is null.
- A page can hold fewer events than limit, or none, and the list still goes on: follow page.next_cursor until it ends.
- place.city and platform_specific.facebook.city_id name the Page whose ID you sent. For a neighborhood's or a postal code's ID that is that Page, not the event's city: the Facebook Event API returns the city for an event's ID.
- An ID that names no Page returns not_found, and the ID of a Page that isn't a place returns an empty list.

## 1 credit per page. Failed requests are free.

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

[Plans and packs](https://socialtap.dev/pricing/index.md) · [How this endpoint is priced](https://socialtap.dev/docs/reference/facebook/place_events/index.md#pricing) · [How credits work](https://socialtap.dev/docs/credits/index.md)

| Source | Price per successful page | Per 1,000 pages |
| --- | --- | --- |
| Any source | 1 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 City Events API.

More in the [API reference](https://socialtap.dev/docs/reference/facebook/place_events/index.md).

**How do I find a city's ID?**

Search its name with the Facebook Marketplace Location Search API. It's also the number in the city's events link, the number at the end of its /pages/\<name>/\<id> link, and platform_specific.facebook.city_id of any of its events.

**Which events does it cover?**

The public events Facebook shows logged-out visitors on the city's events page: those it files under that city, in its center or not.

**How much does the Facebook City Events API cost?**

A page of up to 12 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 3 hours.

More Facebook Events

## Facebook Events API. 4 endpoints, one key.

- [Facebook Event API](https://socialtap.dev/apis/facebook/event/index.md) (1 credit · `GET /v1/facebook/event`)
- [Facebook Page Events API](https://socialtap.dev/apis/facebook/events/index.md) (1 credit / page · `GET /v1/facebook/events`)
- [Facebook Event Search API](https://socialtap.dev/apis/facebook/search_events/index.md) (1 credit / page · `GET /v1/facebook/search_events`)

## Try it on a link you already have.

Paste 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](https://socialtap.dev/signup/) [Read the docs](https://socialtap.dev/docs/index.md)

---

[HTML version](https://socialtap.dev/apis/facebook/place_events/) · [Docs index for AI agents](https://socialtap.dev/llms.txt) · [All docs in one file](https://socialtap.dev/llms-full.txt)
