Connect Bubble to Eventbrite using a private API token in a Private Bearer header — the token is account-scoped and doesn't expire unless you revoke it. Use the API to build custom event management interfaces, attendee check-in dashboards, and ticket sales monitors that the native Eventbrite Organizer app can't provide. Alternatively, embed Eventbrite's checkout widget in a Bubble HTML element with no API key for zero-config ticket sales on your page.
| Fact | Value |
|---|---|
| Tool | Eventbrite |
| Category | Productivity |
| Method | Bubble API Connector |
| Difficulty | Intermediate |
| Time required | 1–2 hours |
| Last updated | July 2026 |
Two ways to add Eventbrite to your Bubble app
Eventbrite integrates with Bubble through two distinct paths, and which one you need depends on whether you're selling tickets or managing them.
The **embeddable checkout widget** is the zero-config path. Paste an HTML snippet into a Bubble HTML element and Eventbrite's complete ticket purchase flow appears inline on your page — no API key, no setup, no backend configuration. This works for any publicly listed Eventbrite event. If your goal is simply to sell tickets without leaving your Bubble app, this is the right starting point.
The **API data path** is for organizers who want to build custom management tools on top of their Eventbrite account. Eventbrite's REST API v3 returns event details, ticket availability, attendee registrations, check-in status, and real-time capacity data — all the operational data that the native Eventbrite Organizer app surfaces, now accessible in a custom Bubble interface you control. The standout use cases: multi-event dashboards that aggregate attendance across many events, custom check-in apps for on-site staff, and community portals that show upcoming events filtered by member interests.
The API path uses a private token — account-scoped, long-lived (doesn't expire unless revoked), and stored in a header marked Private in Bubble's API Connector so it never reaches the browser. The main privacy consideration: Eventbrite attendee data includes personal information (names, email addresses, registration answers). Bubble Privacy rules must be configured before any attendee data is saved to your database.
Integration method
Uses Bubble's API Connector with a Private Bearer Authorization header to call Eventbrite REST API v3 server-side, plus an optional zero-config embeddable checkout widget for in-page ticket sales.
Prerequisites
- An Eventbrite account with at least one event created — free to create an account at eventbrite.com
- A private Eventbrite API token from Account Settings → Developer Links → API Keys in your Eventbrite account
- The API Connector plugin installed in your Bubble app (Plugins tab → Add plugins → search 'API Connector' by Bubble)
- For ticket-purchase webhooks: a paid Bubble plan — Backend Workflows (API Workflows) are not available on Bubble's free tier
Step-by-step guide
Generate your Eventbrite private API token
Go to eventbrite.com and log in to your organizer account. Click your profile picture in the top-right corner and select 'Account Settings' from the dropdown. In the Account Settings page, scroll down to the 'Developer Links' section in the left sidebar and click 'API Keys.' If you don't see this section, look for a direct link at eventbrite.com/platform/api-keys. On the API Keys page, click 'Create API Key.' Give your key a name (for example, 'Bubble App Integration') and click 'Create Key.' You'll see your new API key on the page — this is your private API token. Important characteristics of Eventbrite private tokens: - They are account-scoped: a single token sees ALL your events, ALL your attendees, and ALL your ticket data. This is powerful but means if the token is compromised, everything is exposed. - They don't expire automatically — they remain valid until you revoke them from this same API Keys page. - For multiple Bubble apps, generate a separate token per app. This limits blast radius if one token is compromised — you can revoke just that token without affecting your other apps. Copy the token and keep it ready to paste into Bubble. Never put it in a Bubble page element, URL parameter, or email — only in the API Connector's Private header.
Pro tip: Eventbrite tokens are account-scoped — one token sees all your events and all attendee personal data. If you're building an app for a client who has their own Eventbrite account, they should generate the token from their own account. Never use your personal organizer token in a client's Bubble app.
Expected result: You have an Eventbrite private API token copied and ready. You understand it is account-scoped, non-expiring, and must be stored only in Bubble's Private API Connector header.
Configure the API Connector and test with GET /users/me/
In your Bubble editor, click 'Plugins' in the left sidebar → 'Add plugins' → search 'API Connector' (by Bubble) → Install. Click 'API Connector' in your plugins list → 'Add another API.' Name it 'Eventbrite.' Set the 'API Root URL' to `https://www.eventbriteapi.com/v3`. Under 'Shared headers,' add one header: - Key: `Authorization` - Value: `Bearer YOUR_PRIVATE_TOKEN_HERE` (replace with your actual token) - Check the **'Private'** checkbox — this ensures the token is server-side only Before building event-specific calls, verify the connection with a simple test. Add a first call named 'Get My Profile.' Set method to GET, path to `/users/me/`. Under 'Use as,' select 'Data.' Click 'Initialize call.' A successful response returns your Eventbrite account profile including `id`, `name`, `first_name`, `last_name`, `email`, and `url`. Seeing your account details confirms the token is valid and the connection is working. If Initialize returns 'There was an issue setting up your call' or a 401 error: verify the Authorization header is exactly `Bearer ` followed by the token (with a space after Bearer), and that the Private checkbox is checked. Also confirm you're using the correct API Root URL — `https://www.eventbriteapi.com/v3` with the version path included.
1{2 "api_name": "Eventbrite",3 "base_url": "https://www.eventbriteapi.com/v3",4 "shared_headers": [5 {6 "key": "Authorization",7 "value": "Bearer <private: your_eventbrite_private_token>",8 "private": true9 }10 ],11 "test_call": {12 "name": "Get My Profile",13 "method": "GET",14 "path": "/users/me/",15 "use_as": "Data",16 "expected_response_fields": ["id", "name", "email", "url"]17 }18}Pro tip: Note the trailing slash on `/users/me/` — Eventbrite's API requires trailing slashes on some endpoints. If a call returns a 301 redirect in Bubble's API Connector, add a trailing slash to the path.
Expected result: The 'Get My Profile' call initializes successfully and returns your Eventbrite account details. The API Connector shows a green checkmark and detected response fields. The connection to Eventbrite is confirmed.
Fetch your organization ID and list your events
Eventbrite's API is organized around organizations (your organizer account) and events within them. Most event queries require your organization ID — a unique identifier that groups all your events. Add a second call: name it 'Get My Organizations,' method GET, path `/users/me/organizations/`. Use as 'Data.' Initialize it. The response returns an `organizations` array where each item has `id`, `name`, and other metadata. Your organization ID is the `id` field of the first (or only) item in this array. Save your organization ID as a Bubble App Constant: go to Settings → Bubble's 'Site Variables' or add a Data type called 'App Settings' with one record containing an `eventbrite_org_id` Text field. Store the value there. This avoids repeating a round-trip API call every time you need the org ID. Now add the events call: name it 'Get Events,' method GET, path `/organizations/{org_id}/events/`. Mark `org_id` as a dynamic parameter. Add URL parameters: - `status`: optional, default `live` (other options: `draft`, `canceled`, `ended`, `completed`, `all`) - `time_filter`: optional, default `current_future` (options: `current_future`, `past`, `all`) - `expand`: add `ticket_availability` — this single parameter adds sold/remaining ticket counts to each event object, saving a separate API call per event - `page_size`: set `50` Initialize with your actual org ID from the previous call. The response includes an `events` array with each event's `id`, `name.text`, `start.local`, `end.local`, `url`, `capacity`, `ticket_availability` (sold count, remaining), and `status`.
1{2 "call_name": "Get Events",3 "method": "GET",4 "path": "/organizations/<org_id>/events/",5 "parameters": [6 { "key": "status", "value": "live", "optional": true },7 { "key": "time_filter", "value": "current_future", "optional": true },8 { "key": "expand", "value": "ticket_availability" },9 { "key": "page_size", "value": "50" },10 { "key": "page", "value": "<dynamic>", "optional": true }11 ],12 "sample_event_fields": [13 "id",14 "name.text",15 "start.local",16 "end.local",17 "url",18 "capacity",19 "status",20 "ticket_availability.quantity_total",21 "ticket_availability.quantity_sold"22 ]23}Pro tip: The `expand=ticket_availability` parameter saves one API call per event for getting sold/remaining counts. Without it, you'd need to call GET /events/{id}/ticket_classes/ for each event separately. Always include this expansion for any dashboard that needs capacity data.
Expected result: The 'Get Events' call returns an events array for your organization. Each event includes ticket_availability data with quantity_sold and quantity_total. You can now bind this data to a Bubble Repeating Group.
Build the attendee list and set Privacy rules
To build a check-in app or attendee management interface, add an attendees call. Name it 'Get Attendees,' method GET, path `/events/{event_id}/attendees/`. Mark `event_id` as dynamic. Add parameters: - `page_size`: `50` - `page`: dynamic (for pagination) - `status`: optional filter (`attending`, `not_attending`, `attended`) Initialize with a real event ID from your account. The response returns an `attendees` array. Each attendee has: `id`, `profile.name`, `profile.first_name`, `profile.last_name`, `profile.email`, `profile.cell_phone`, `ticket_class_name`, `status` (attending/checked_in), `checked_in` (boolean), `created`, and `answers` (array of custom registration form answers). **CRITICAL — Privacy rules:** Before saving any attendee data to Bubble's database, you must configure Privacy rules. Go to Data tab → Privacy → click your Attendee data type. Add a rule: 'Everyone else' → uncheck ALL permissions (View, Edit, Delete). Add a rule: 'Current User (who is an admin)' → grant View and Edit. Attendees' email addresses, phone numbers, and registration answers are personal data protected by GDPR and similar regulations. Bubble's default 'everyone can view' setting would expose all attendees' personal data through the Data API. For the attendee Repeating Group: add search constraints to show only attendees for the currently selected event. Add a filter input for searching by name. Add a 'Check In' button per row that updates a `checked_in` boolean field on the Attendee record in Bubble's database and updates a checked-in count custom state on the page. For pagination: Eventbrite uses a `pagination` object in every response with `page_count`, `page_number`, `page_size`, and `object_count`. Add 'Previous' and 'Next' buttons that increment/decrement a `current_page` custom state and pass it as the `page` parameter.
1{2 "call_name": "Get Attendees",3 "method": "GET",4 "path": "/events/<event_id>/attendees/",5 "parameters": [6 { "key": "page_size", "value": "50" },7 { "key": "page", "value": "<dynamic: current page number>", "optional": true },8 { "key": "status", "value": "attending", "optional": true }9 ],10 "key_attendee_fields": [11 "id",12 "profile.name",13 "profile.email",14 "ticket_class_name",15 "status",16 "checked_in",17 "created",18 "answers"19 ],20 "privacy_rule_reminder": "Set 'Everyone else' to NO permissions on Attendee data type before saving any attendee records"21}Pro tip: RapidDev's team has built event check-in and attendee management tools on Bubble for conference organizers and community platforms. If you need to sync attendee check-in status back to Eventbrite (not just track it locally in Bubble), a free scoping call at rapidevelopers.com/contact can help design the two-way sync architecture.
Expected result: The 'Get Attendees' call returns an array of attendees for a specific event with personal data including names and email addresses. Privacy rules are configured on the Attendee data type before any records are saved to Bubble's database.
Add the zero-config embeddable checkout widget
For selling tickets inside your Bubble page without any API configuration, use Eventbrite's official checkout widget. This is a separate capability from the REST API — it doesn't require the private token. Find your event ID: open your event on eventbrite.com and look at the URL. The format is `https://www.eventbrite.com/e/event-name-tickets-{EVENT_ID}`. The long number at the end is your event ID. In your Bubble editor, add an HTML element to the page where you want the widget to appear. Set its height to at least 400 pixels. Paste the following HTML, replacing `{EVENT_ID}` with your actual event ID: The widget loads Eventbrite's complete checkout flow inline — ticket type selection, quantity, and payment processing. It handles all Stripe/payment logic. You receive ticket sales in your Eventbrite account normally. To make the event ID dynamic (showing different events based on the page or user), use Bubble's dynamic content in the HTML element. Store the Eventbrite event ID in a Bubble data field (on your Event or Campaign data type) and construct the widget HTML dynamically using Bubble's text expression: paste the static parts of the script with `+` concatenating the dynamic event ID field from your data. Note: the widget is for publicly listed events. Private events with invite-only access require a different embed approach using Eventbrite's private access link — check eventbrite.com support documentation for private event embed options.
1<!-- Eventbrite ticket checkout widget -->2<!-- Replace EVENT_ID with your actual Eventbrite event ID -->3<!-- Find your event ID in the URL: eventbrite.com/e/your-event-tickets-{EVENT_ID} -->45<div id="eventbrite-widget-container-EVENT_ID"></div>67<script src="https://www.eventbrite.com/static/widgets/eb_widgets.js"></script>89<script type="text/javascript">10 var exampleCallback = function() {11 console.log('Order complete!');12 };1314 window.EBWidgets.createWidget({15 widgetType: 'checkout',16 eventId: 'EVENT_ID',17 iFrameContainerId: 'eventbrite-widget-container-EVENT_ID',18 iFrameContainerHeight: 425,19 onOrderComplete: exampleCallback20 });21</script>2223<!-- Dynamic version tip: use Bubble's HTML element dynamic content -->24<!-- Replace EVENT_ID in both the div id and the eventId value with your dynamic field -->Pro tip: The `onOrderComplete` callback fires when a user completes a ticket purchase in the widget. You can use this to trigger a Bubble page workflow — for example, showing a custom thank-you popup or recording the purchase attempt in Bubble's database. However, you won't have the attendee details at this point — those come through the API or webhook.
Expected result: The Bubble HTML element shows Eventbrite's ticket checkout widget embedded inline on your page. Users can select ticket quantities and complete purchase without leaving your Bubble app. Eventbrite handles payment processing.
Set up ticket-purchase webhooks via Backend Workflow (paid plans)
For real-time notifications when someone buys a ticket — to trigger a welcome email, add them to a Bubble user record, or update a dashboard counter — set up an Eventbrite webhook pointing to a Bubble Backend Workflow. This requires a paid Bubble plan. First, go to Bubble's Settings → API tab and check 'This app exposes a Workflow API.' Then go to the Backend Workflows editor and create a new workflow. Name it 'eventbrite_webhook.' Add parameters to receive the webhook data: `api` (text) and `payload` (text or auto-detect). Under 'Detect request data,' save an empty workflow first. Your Backend Workflow endpoint URL will be: `https://yourapp.bubbleapps.io/api/1.1/wf/eventbrite_webhook` Now register this URL in Eventbrite. Go to eventbrite.com → Account Settings → Developer Links → Webhooks → Create Webhook. Enter your Backend Workflow URL and select the events you want to receive. For ticket purchases: select `attendee.updated` (fires when attendee status changes) and `order.placed` (fires when an order is completed). Eventbrite sends a POST to your URL with a JSON payload containing the event type and the affected object ID. In your Backend Workflow, after detecting the data structure, add steps to: look up the attendee or order by ID from the payload, fetch their details from the Eventbrite API (using the ID from the webhook), create or update the attendee record in Bubble's database, and trigger a confirmation email workflow. Note: For free-plan Bubble apps, an alternative is polling — a scheduled page workflow that checks for new attendees every 15 minutes by querying `/events/{id}/attendees/?page_size=50&status=attending` and comparing against records already in Bubble's database.
1{2 "backend_workflow_endpoint": "https://yourapp.bubbleapps.io/api/1.1/wf/eventbrite_webhook",3 "webhook_payload_example": {4 "config": {5 "action": "order.placed",6 "user_id": "12345678",7 "endpoint_url": "https://yourapp.bubbleapps.io/api/1.1/wf/eventbrite_webhook"8 },9 "api_url": "https://www.eventbriteapi.com/v3/orders/1234567890/"10 },11 "webhook_processing_steps": [12 "Step 1: Receive webhook payload, extract api_url from payload",13 "Step 2: Call Eventbrite API to fetch order/attendee details from the api_url",14 "Step 3: Create Attendee record in Bubble DB with fetched details",15 "Step 4: Apply Privacy rules — restrict attendee visibility to event admin only",16 "Step 5: Trigger welcome email workflow"17 ],18 "paid_plan_note": "Backend Workflows require Bubble Starter or higher plan"19}Pro tip: Eventbrite's webhook payload does NOT include the full attendee data — it includes only the API URL to fetch the attendee's details. After receiving the webhook, your Backend Workflow must make a second API call to that URL to get the actual attendee name, email, and registration answers. Build this two-step pattern into your webhook workflow.
Expected result: A Backend Workflow endpoint is registered in Eventbrite's Webhook settings. When someone purchases a ticket, Eventbrite sends a POST to Bubble, the workflow fetches the attendee details, creates a record in Bubble's database, and triggers a follow-up email workflow.
Common use cases
Custom Multi-Event Dashboard for Event Organizers
Build a Bubble dashboard that aggregates ticket sales, attendee counts, and revenue totals across all your Eventbrite events in one view — something the native Eventbrite Organizer app doesn't offer as a multi-event summary. Pull event data from the API, store totals in Bubble, and visualize with charts and summary cards.
Build a Bubble dashboard that fetches all my active Eventbrite events, shows total tickets sold, remaining capacity, and gross revenue per event in a data table, with a chart comparing attendance across the last 5 events.
Copy this prompt to try it in Bubble
On-Site Attendee Check-In App
Create a Bubble check-in app for event staff that searches attendees by name or ticket number, shows their registration details and ticket type, and marks them as checked in. Use GET /events/{id}/attendees/ to load attendees and a check-in state stored in Bubble's database. Event staff use tablets or phones with the Bubble app instead of Eventbrite's native check-in app.
Build a Bubble page with a search input where staff type an attendee's name, the page shows matching attendees from the Eventbrite API with their ticket type and registration answers, and a 'Check In' button marks them as arrived in Bubble's database and updates a checked-in count at the top.
Copy this prompt to try it in Bubble
Community Event Portal with Embedded Ticket Sales
For community platforms or membership sites built on Bubble, create an event discovery page that lists upcoming Eventbrite events, filters them by category or tag, and lets members buy tickets without leaving your Bubble site. Pull event metadata via the API for display, and use the embeddable checkout widget for the purchase flow.
Create a Bubble community events page that fetches upcoming events from the Eventbrite API filtered by category, displays event cards with name, date, location, and ticket price, and shows an embedded Eventbrite checkout widget when a member clicks 'Get Tickets' on any event card.
Copy this prompt to try it in Bubble
Troubleshooting
GET /users/me/ returns 401 Unauthorized
Cause: The private token is incorrect, has been revoked, or the Authorization header format is wrong. The most common formatting error is missing the 'Bearer ' prefix or including extra whitespace or quotation marks around the token.
Solution: Go to eventbrite.com → Account Settings → Developer Links → API Keys and verify the token is still active (not shown as revoked). Copy the token again fresh and paste it into Bubble's API Connector shared header as `Bearer <token>` with a single space between Bearer and the token. Confirm the Private checkbox is checked. Re-initialize the test call.
Initialize call returns 'There was an issue setting up your call' with no further error detail
Cause: The Initialize call in Bubble's API Connector needs a real successful API response to detect the field structure. Common causes: the API root URL is missing the `/v3` version path, or a required path parameter (like `event_id` or `org_id`) was left empty during initialization.
Solution: For calls with dynamic parameters (event_id, org_id), provide real values in the Initialize call's parameter fields — don't leave them blank or use placeholder text. Verify the API root URL is exactly `https://www.eventbriteapi.com/v3` with no trailing slash. Eventbrite returns a 404 for requests to the root URL without a specific path.
Attendee personal data (emails, names) is accessible to all logged-in users in Bubble
Cause: Bubble's default Data Privacy setting allows all logged-in users to search and view all records of any data type via the Data API. Without explicit Privacy rules on the Attendee data type, any user of your Bubble app could query attendee records.
Solution: Go to Data tab → Privacy → click on your Attendee data type. Add a rule: 'Everyone else' → uncheck 'View,' 'Edit,' and 'Delete.' Add a rule for your admin users (using a role field or admin boolean on the User type) that grants View access. This restricts attendee data to authorized users only. Apply similar rules to any other data type that stores Eventbrite API responses.
The embeddable checkout widget does not appear — the page shows a blank space where the widget should be
Cause: The event ID in the widget script does not match the event ID in the container div's id attribute. Both must contain exactly the same event ID string. Also, the event may not be published or publicly listed on Eventbrite.
Solution: Verify that both occurrences of the event ID in the HTML snippet match exactly: the `id` attribute in the `<div>` tag and the `eventId` value in the JavaScript. Check that the event is published and publicly visible on eventbrite.com (private or draft events require different embed configurations). Also confirm the event is not past its end date — ended events cannot be purchased through the widget.
Backend Workflow for webhooks is not receiving Eventbrite events
Cause: Backend Workflows require a paid Bubble plan. On the free plan, the Workflow API cannot receive inbound webhook POSTs. Additionally, the webhook URL must use the production Bubble app URL, not the development preview URL.
Solution: Confirm the Bubble app is on a paid plan (Starter or higher) and that the Workflow API is enabled in Settings → API. Verify the webhook URL in Eventbrite's settings is the production URL (`yourapp.bubbleapps.io/api/1.1/wf/...`) not the Bubble editor preview URL. Test the webhook by clicking 'Send Test' in Eventbrite's Webhook settings and checking Bubble's Logs tab → Workflow logs for the incoming request.
Best practices
- Configure Bubble Data Privacy rules on any data type that stores Eventbrite attendee data before saving the first record. Attendees' emails, names, phone numbers, and registration answers are personal data — Bubble's default open access is a GDPR compliance risk.
- Generate a separate Eventbrite API token for each Bubble app that accesses your account. Tokens are account-scoped and see all your events and attendees — a separate token per app lets you revoke one without affecting others.
- Use the `expand=ticket_availability` parameter on event list calls to get sold/remaining ticket counts in a single request, instead of making a separate ticket_classes call per event. This cuts API calls and WU consumption significantly for multi-event dashboards.
- Store your organization ID as a Bubble App Constant or in a single-record App Settings data type. The organization ID doesn't change — making an API call to retrieve it on every page load wastes WU and adds latency.
- For free Bubble plan apps that cannot receive webhooks, implement polling for new attendees: a 'Refresh' button that calls GET /events/{id}/attendees/ and compares the results against records already in Bubble's database, creating new records for attendees not yet stored.
- Mark the Authorization header as Private in Bubble's API Connector. Eventbrite tokens are account-scoped and long-lived — if exposed, an attacker has access to all your event and attendee data with no time limit.
- When paginating attendee lists, store the current page number in a Bubble custom state. Display 'Page X of Y' using the `pagination.page_number` and `pagination.page_count` values from each API response to give users clear navigation context.
Alternatives
Calendly manages one-to-one or group scheduling and appointment booking with time-slot availability. Eventbrite manages ticketed events with payment flows, capacity limits, and attendee tracking. Use Calendly for appointment-style bookings; use Eventbrite for paid or free events with ticketed registration and on-site check-in.
Acuity Scheduling is an appointment booking tool similar to Calendly, focused on client scheduling for service businesses. It lacks event ticketing, capacity management, and the embeddable purchase flow that Eventbrite provides. Choose Eventbrite for public events with ticket sales; choose Acuity for appointment-based client bookings.
Notion's API can store event information in a database with custom properties, but it has no native ticketing or payment flow. Eventbrite is the right tool when you need ticket sales, capacity management, and attendee tracking with payment processing included.
Frequently asked questions
Does the Eventbrite private token expire?
No — Eventbrite private tokens do not expire automatically. They remain valid indefinitely until you manually revoke them from Account Settings → Developer Links → API Keys. This is convenient for Bubble integrations since you don't need to implement token refresh logic. The trade-off is that a compromised token stays active until you notice and revoke it, so treat the token as carefully as a password.
Can I display Eventbrite events on my Bubble page without the API?
Yes — for a simple event listing from your Eventbrite account, you can embed Eventbrite's organizer widget (a separate JavaScript snippet) without using the REST API. For selling tickets, the checkout widget also requires no API key. The REST API is only needed when you want to pull event and attendee data into Bubble's database for custom dashboards, check-in tools, or CRM workflows.
Does Bubble need to be on a paid plan for this Eventbrite integration?
The API Connector calls — listing events, fetching attendees, displaying data in repeating groups — all work on Bubble's free plan. A paid Bubble plan is required only for receiving Eventbrite webhooks (which need Backend Workflows to handle inbound POST requests). Free-plan apps can poll for new attendees using a 'Refresh' button instead.
How do I get only the attendees for a specific event, not all attendees across all events?
The Eventbrite API is already structured per-event: use GET `/events/{event_id}/attendees/` where `event_id` is the ID of the specific event. There is no cross-event attendee endpoint. Build your Bubble UI so the user selects an event first (from the events repeating group), stores the selected event's ID in a custom state, and the attendees call uses that state as the `event_id` parameter.
Can I create Eventbrite events or update ticket quantities from Bubble?
Yes — Eventbrite's API supports POST to create events and PATCH to update them. Add POST `/events/` and PATCH `/events/{id}/` calls to your API Connector. Event creation requires your organization ID and at least a name, start/end time, and currency. Ticket class creation is a separate call to POST `/events/{id}/ticket_classes/`. These write operations use the same private token and Private header.
What personal data does Eventbrite include in attendee API responses?
Eventbrite attendee responses typically include: full name, first name, last name, email address, cell phone (if collected), ticket class purchased, registration date, check-in status, and answers to any custom registration form questions (which can include dietary preferences, company name, shirt size, etc.). This is personal data under GDPR and similar regulations. Always configure Bubble Privacy rules restricting access before saving attendee records.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation