Connect Retool to Eventbrite using a REST API Resource with a private token as Bearer authentication. Once connected, you can build event management panels that track ticket sales, manage attendee lists, process check-ins, and view event analytics — providing a real-time operations dashboard for event teams that Eventbrite's native interface cannot fully match.
| Fact | Value |
|---|---|
| Tool | Eventbrite |
| Category | Other |
| Method | REST API Resource |
| Difficulty | Beginner |
| Time required | 15 minutes |
| Last updated | April 2026 |
Build a Real-Time Event Operations Dashboard with Eventbrite and Retool
Eventbrite handles ticketing and registration elegantly, but event operations teams running large conferences, festivals, or corporate events quickly need capabilities beyond what Eventbrite's Organizer app provides: custom attendee filtering for VIP badge printing, real-time check-in rate dashboards displayed on event-floor screens, bulk attendee data exports combined with hotel room block assignments, or multi-event comparison reports for post-event analysis. Retool provides this custom operations layer by connecting directly to Eventbrite's REST API.
The integration is straightforward: Eventbrite issues private API tokens that work as Bearer tokens, requiring minimal configuration in Retool's REST API Resource. From there, the full Eventbrite API is accessible — event details, ticket class inventory, attendee profiles including custom registration questions, order history, check-in tracking, and discount codes. Retool's Table and Chart components give event teams fast, filterable views that the Eventbrite Organizer app cannot provide with comparable flexibility.
For events operations teams that also manage venue logistics, catering, or hotel room blocks in separate systems, Retool's multi-resource architecture makes it possible to build a unified event command center — attendee data from Eventbrite alongside room assignments from a database, catering headcounts from a spreadsheet-connected resource, and real-time check-in metrics updating every few minutes automatically.
Integration method
Eventbrite connects to Retool via a REST API Resource using a private API token passed as a Bearer token. Alternatively, Eventbrite supports OAuth 2.0 for accessing data from multiple organizer accounts. You configure the base URL and token once in Retool's Resources tab, then build queries for events, attendees, and orders. Retool proxies all requests server-side, keeping credentials off the browser.
Prerequisites
- An Eventbrite organizer account with at least one active or upcoming event
- A Retool account (Cloud or self-hosted) with permission to create Resources
- An Eventbrite private API token, generated from your Eventbrite account under Account Settings → Developer Links → API Keys
- The event IDs for the events you want to surface in Retool (visible in the Eventbrite URL or via the API)
- Basic familiarity with Retool's query editor and component panel
Step-by-step guide
Generate an Eventbrite private API token
Eventbrite provides private API tokens for accessing data from your own organizer account without requiring end users to authorize via OAuth. To generate a token, log into your Eventbrite account at eventbrite.com. Navigate to Account Settings (click your avatar in the top-right corner, then Account Settings). In the left sidebar, scroll down to find 'Developer Links' or navigate directly to eventbrite.com/platform/api-keys. On the API keys page, you will see your existing applications and the option to create new ones. Click 'Create API Key' or find an existing key. Each API key has a 'Private Token' — this is what you use as a Bearer token in Retool for accessing your own organizer data. Copy the private token value and store it securely. Private tokens provide full access to your Eventbrite organizer account — treat them like a password. For accessing data across multiple organizer accounts (for event agencies managing many clients), you would use Eventbrite's OAuth 2.0 flow to obtain account-specific access tokens. However, for most use cases involving a single organizer account, the private token is sufficient and significantly simpler to configure. Note that Eventbrite's private tokens do not expire automatically, but you can revoke them from the API keys page if credentials are compromised.
Pro tip: Eventbrite's private token is shown on the API keys page next to your app. If you cannot see it, look for a 'Show' button or 'Private Token' label — it may be hidden by default.
Expected result: An Eventbrite private token is copied and stored securely, ready to configure as a Bearer token in Retool.
Create a REST API Resource in Retool
In Retool, navigate to the Resources tab and click '+ Create new'. Select 'REST API' from the connector list. In the Name field, enter 'Eventbrite API'. For the Base URL, enter https://www.eventbriteapi.com/v3. For Authentication, select 'Bearer token' and paste your Eventbrite private token into the token field. Click 'Save resource'. Retool saves the configuration and makes it available to all apps in your organization. All requests are proxied server-side through Retool's backend, so the Bearer token is never transmitted to browser clients and CORS is not an issue. Once saved, test the connection by creating a quick GET query to /users/me/ — if it returns your Eventbrite account information, the token is working correctly. If your organization manages events across multiple Eventbrite accounts, create a separate REST API resource for each account with its corresponding private token, and name resources clearly (e.g., 'Eventbrite - Main Account', 'Eventbrite - Partner Account'). For production apps where token security is critical, store the private token as a secret configuration variable in Retool (Settings → Configuration Variables, mark as secret) and reference it in the resource using {{ retoolContext.configVars.EVENTBRITE_TOKEN }}.
Pro tip: Test your resource immediately after saving by creating a GET query to /users/me/ — this validates both the base URL and the Bearer token before you invest time building queries.
Expected result: A saved REST API Resource named 'Eventbrite API' appears in Retool's Resources list. A test query to /users/me/ returns your Eventbrite organizer account details.
Write queries to fetch events and attendees
Open your Retool app or create a new one. In the Code panel, click '+ New query' and select your Eventbrite API resource. Create a query to list all events for your organization: Method GET, path /organizations/{organization_id}/events/ — you can find your organization ID from the /users/me/ response (look for the 'organizations' array). Add URL parameters: status set to live,started,ended,complete for a broad view or just live for upcoming-only, time_filter set to current_future for events happening now or in the future, order_by set to start_asc, and page_size set to 50. Name this query getEvents. Create an attendees query: Method GET, path /events/{{ eventsTable.selectedRow.id }}/attendees/. Add parameters: page_size set to 100, page set to {{ attendeesTable.paginationOffset / 100 + 1 || 1 }}, and status set to attending for only confirmed attendees. Name this query getAttendees. Create a ticket classes query: Method GET, path /events/{{ eventsTable.selectedRow.id }}/ticket_classes/. Name this query getTicketClasses. Run each query to inspect the response structure — Eventbrite uses a pagination object with page_count, page_number, page_size, and object_count alongside the data array named after the resource type (events, attendees, ticket_classes).
1{2 "method": "GET",3 "path": "/organizations/YOUR_ORG_ID/events/",4 "params": {5 "status": "live,started",6 "time_filter": "current_future",7 "order_by": "start_asc",8 "page_size": "50",9 "expand": "ticket_availability"10 }11}Pro tip: Add 'expand=ticket_availability' to the events query to get ticket sold/remaining counts included directly in the event response, avoiding a separate ticket_classes query for the list view.
Expected result: The getEvents query returns a JSON object with a 'events' array and a 'pagination' object. The getAttendees query returns attendees for the selected event. Both display data in the query result panel.
Transform responses and build the event operations dashboard
Eventbrite's API responses contain nested objects for dates, costs, venue, and custom form responses that need flattening before binding to Retool components. In the getEvents query editor, click 'Advanced' → toggle 'Transform results'. Write a transformer that maps each event in data.events to a flat row. Key fields: id, name.text for the event title, start.local for the local start time, end.local for the end time, status, capacity, and ticket_availability.quantity_sold if you used the expand parameter. For attendees, write a transformer on getAttendees that maps each attendee to a flat row: name, email, ticket class name, answers to custom questions (answers array where each item has question and answer fields), and checked_in boolean. Custom questions are stored in answers[n].answer — you need to know which question index corresponds to which question for your event's registration form. After writing transformers, drag two Table components onto the canvas. Set the first to {{ getEvents.data }} for the events list. Set the second to {{ getAttendees.data }} for the attendee list, configured to load when an event is selected. Enable server-side pagination on the attendees table with total row count from {{ getAttendees.rawData.pagination.object_count }}. Add KPI Text components above the attendees table showing total sold, total checked in, and check-in percentage calculated from the attendee data. For large event check-in tracking across multiple venues or time slots, and integration with badge printing or registration kiosks, RapidDev's team can help build a comprehensive Retool event operations solution.
1// Transformer: flatten Eventbrite attendees2const attendees = data.attendees || [];3return attendees.map(att => {4 // Extract custom question answers5 const answers = {};6 (att.answers || []).forEach(a => {7 answers[a.question.replace(/\s+/g, '_').toLowerCase()] = a.answer;8 });9 return {10 attendee_id: att.id,11 name: `${att.profile.first_name || ''} ${att.profile.last_name || ''}`.trim(),12 email: att.profile.email,13 company: att.profile.company || 'N/A',14 job_title: att.profile.job_title || 'N/A',15 ticket_class: att.ticket_class_name || att.ticket_class_id,16 checked_in: att.checked_in,17 check_in_time: att.checked_in18 ? new Date(att.barcodes?.[0]?.changed || att.created).toLocaleString()19 : 'Not checked in',20 order_id: att.order_id,21 ...answers22 };23});Pro tip: Custom registration question answers are spread into the flat row using the question text as the key (normalized to snake_case). This makes all custom fields directly accessible as columns without knowing field IDs in advance.
Expected result: The events Table displays all upcoming events with ticket sales and capacity data. The attendees Table shows all registrants for the selected event with check-in status. KPI cards show real-time check-in metrics.
Add auto-refresh and Workflow-based webhook processing
For a production event operations dashboard, implement automatic data refresh and webhook-based real-time updates. For automatic refresh, select the getAttendees query in the Code panel, click the 'Advanced' tab, and enable 'Run query on a schedule'. Set the interval to 60000 ms (1 minute) for near-real-time check-in tracking during events. Also enable it on getEvents at 300000 ms (5 minutes) since events change less frequently. Add a manual 'Refresh Now' Button component at the top of the dashboard wired to trigger both queries simultaneously. For real-time webhook processing, create a Retool Workflow with a Webhook trigger. In Eventbrite's developer settings, configure webhooks to POST to your Retool Workflow's webhook URL for the 'attendee.checked_in' event type. The Workflow receives the payload and can write check-in data to a Retool Database table or trigger a notification to a connected Slack Resource. Bind a Table component in your Retool app to this Retool Database table to show a live stream of check-ins without relying on API polling. Add a Line Chart component showing check-in rate over time using the timestamped database records — this provides an event-floor display that shows check-in velocity trending up or plateauing during the event.
Pro tip: Configure Eventbrite webhooks for 'attendee.checked_in' events in addition to 'order.placed' to get real-time updates both when registrations occur and when attendees arrive at the venue.
Expected result: The attendees table automatically refreshes every minute during the event. A Retool Workflow receives Eventbrite check-in webhook events and logs them to Retool Database. The check-in rate chart updates in near real-time as attendees arrive.
Common use cases
Build a real-time attendee check-in dashboard
Your event operations team needs to monitor check-in rates by ticket type, identify no-shows, and track capacity per session or venue area in real time during the event. A Retool dashboard queries the Eventbrite attendees endpoint filtered to checked-in status, displays overall check-in rate as a KPI widget, and breaks down attendance by ticket class in a Bar Chart.
Build a real-time check-in dashboard for a specific Eventbrite event that shows total tickets sold, total checked in, and check-in rate as percentage KPI cards at the top. Add a Bar Chart comparing check-in counts by ticket class (General Admission, VIP, Speaker). Add an auto-refresh Table at the bottom showing the last 50 attendees who checked in, sorted by check-in time descending.
Copy this prompt to try it in Retool
Create a multi-event ticket sales analytics panel
Your events marketing team wants to compare ticket sales velocity across all upcoming events — how quickly tickets are selling relative to the event date, which price tiers are performing best, and which events need additional promotion. A Retool app queries all upcoming Eventbrite events, fetches their ticket class data, and displays a sortable Table and trend charts.
Build a ticket sales analytics dashboard that lists all upcoming Eventbrite events with columns for event name, date, total capacity, tickets sold, revenue to date, and days until event. Add a Bar Chart showing tickets remaining by event. Include a click handler that loads a ticket class breakdown for the selected event showing sales per tier.
Copy this prompt to try it in Retool
Build a VIP attendee management panel
For a corporate conference, your team needs to identify VIP attendees by ticket type, view their registration answers (company, role, dietary requirements), print badge information, and add personal notes. A Retool panel fetches attendees filtered to VIP ticket classes, displays their registration data with full custom question answers, and allows adding notes via a connected internal database.
Build a VIP attendee panel that fetches all attendees with ticket class 'VIP' for a selected event. Display a Table with columns for name, email, company, job title, dietary requirement (from custom registration questions), and check-in status. Add a detail panel that shows all registration answers and a text area for adding internal notes saved to a Retool Database table.
Copy this prompt to try it in Retool
Troubleshooting
Query returns 401 Unauthorized
Cause: The private token in the Retool resource has been revoked or is invalid. Eventbrite tokens can be revoked from the API keys page, or the token may have been copied incorrectly (with extra whitespace).
Solution: Navigate to eventbrite.com/platform/api-keys, verify the token is active, and re-copy the private token value. Update the Bearer token in your Retool resource configuration (Resources tab → select Eventbrite resource → click the token field, clear and re-paste the token → Save). Test with a GET query to /users/me/ to confirm the token works.
Events query returns empty results despite having active events
Cause: The organization ID in the API path is incorrect, or the status filter is excluding your events. Events that are 'draft' or 'canceled' are excluded by the status filters.
Solution: Retrieve your organization ID by querying /users/me/ and looking at the 'organizations' array in the response — copy the 'id' field. Update your events query path to use this correct organization ID. Try removing the status filter parameter temporarily to see all events regardless of status.
Attendees transformer returns empty 'name' fields for some attendees
Cause: Some Eventbrite attendees may have registered using a company billing account where individual attendee names are not separately captured, or the profile.first_name and profile.last_name fields are empty.
Solution: Add a fallback in the transformer for empty names: use the profile.name field (which combines first and last) as a fallback, or display the email address when the name is empty. Also check att.profile.name as an alternative field that sometimes contains the full name directly.
1name: [att.profile.first_name, att.profile.last_name].filter(Boolean).join(' ')2 || att.profile.name3 || att.profile.email4 || 'Name not provided',Webhook events are not arriving in the Retool Workflow
Cause: The Eventbrite webhook URL is not configured correctly, or the webhook endpoint was not enabled for the specific event type. Eventbrite webhooks must be configured per-event or at the organization level.
Solution: In your Eventbrite account, navigate to the specific event → Webhooks section, or at the account level under Account Settings → Webhooks. Verify the Retool Workflow webhook URL is registered and the 'attendee.checked_in' action is selected. Confirm the Retool Workflow is published (not in draft mode) — unpublished Workflows do not process incoming webhooks.
Best practices
- Store your Eventbrite private token as a secret configuration variable in Retool (Settings → Configuration Variables, marked as secret) and reference it in the resource using {{ retoolContext.configVars.EVENTBRITE_TOKEN }} rather than pasting the token directly.
- Enable automatic query refresh on the attendees query during live events (1-minute interval) and disable it outside of event hours to avoid unnecessary API calls — use a Toggle component in the Retool app to let event staff control the refresh rate.
- Use the 'expand' query parameter when fetching events (expand=ticket_availability) to include ticket sales data in the events list without a separate API call per event — this significantly reduces total API request volume.
- Implement server-side pagination for the attendees table using Eventbrite's page and page_size parameters — large events with thousands of attendees will time out if you attempt to fetch all records in a single request.
- Add a confirmation modal before triggering any POST operations that modify attendee status or create/cancel orders — accidental changes to event registrations are difficult to reverse and may affect attendee experience.
- Create Retool Workflows with webhook triggers for Eventbrite 'order.placed' and 'attendee.checked_in' events to receive real-time data updates, rather than relying solely on polling intervals for time-sensitive event-floor displays.
- For multi-event organizations, build the app with an event selector at the top that dynamically scopes all attendee and ticket queries — avoid hardcoding event IDs in query paths, which requires app edits for every new event.
Alternatives
GoToWebinar is the better choice if your events are entirely online webinars — it provides deeper webinar-specific analytics (attendance duration, poll responses, Q&A logs) that Eventbrite does not support for virtual events.
Calendly connects via REST API and is the right choice for managing individual appointment scheduling rather than large-scale event ticketing — it has a simpler API and suits one-on-one or small-group booking workflows.
Meetup connects via GraphQL API and is a better fit for community-driven recurring events and developer meetups where community membership and RSVP tracking matter more than ticket sales management.
Frequently asked questions
Does Retool have a native Eventbrite connector?
No. Eventbrite does not have a dedicated native connector in Retool. You connect via a generic REST API Resource using Eventbrite's REST API v3 and a private token. This provides full access to all organizer-level endpoints — events, attendees, orders, ticket classes, discount codes, and check-in data — covering everything needed to build a comprehensive event operations dashboard.
Can I check in attendees from Retool?
The Eventbrite API does not expose a direct 'check in attendee' write endpoint for updating checked_in status via REST API as of 2026. Check-in is typically handled through Eventbrite's Organizer app or official check-in integrations. However, you can use Retool to build a read-only check-in monitoring dashboard that tracks check-ins as they happen (via API polling or webhooks), even if the actual check-in action occurs through Eventbrite's own interface.
How do I access custom registration question answers in Retool?
Custom registration question answers are included in the attendee response in an 'answers' array. Each answer object contains a 'question' field (the question text) and an 'answer' field (the registrant's response). In your JavaScript transformer, iterate over the answers array and extract the values you need by matching question text or position. Spread these into the flat row object so they appear as columns in the Retool Table.
Can I export Eventbrite attendee data to a CSV from Retool?
Yes. Retool has a built-in CSV export feature on Table components — click the Table → Settings → enable 'Allow CSV download'. When clicked, this exports all visible rows (including the current page) to a CSV file. For a full export of all attendees across all pages, build a JavaScript query that loops through all pages of the Eventbrite attendees endpoint, collects all records, and triggers a CSV download using Retool's utils.exportDataToCSV() utility.
How do I handle Eventbrite OAuth 2.0 for accessing multiple organizer accounts?
For agency use cases where you manage events for multiple organizer accounts, you need Eventbrite's OAuth 2.0 flow. Each organizer must authorize your application through the standard OAuth redirect flow, resulting in per-account access tokens. Configure Retool to handle OAuth 2.0 with Eventbrite's authorization URL (https://www.eventbrite.com/oauth/authorize), token URL (https://www.eventbrite.com/oauth/token), and required scopes. Create separate Retool resources per organizer with their respective tokens.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation