openapi: 3.0.3 info: title: Brella Integration API description: >- Public REST Integration API for the Brella event networking and engagement platform. Organizers use it to read event data - events, attendees, speakers, sponsors, timeslots (schedule), and invites - for a Brella organization and sync it to registration, CRM, and analytics tools. Access is gated: an organization admin generates an API key from the Brella admin panel and sends it in the Brella-Api-Access-Token header. Versioning is negotiated via the Accept header (application/vnd.brella.v4+json). Pagination is mandatory on all list endpoints (page[size] up to 500, page[number]). Only endpoints confirmed against the public developer portal (developer.brella.io) are modeled here; additional documented surfaces (RSVP & session check-in, statistics & analytics) exist but their exact paths were not confirmed at authoring time. version: v4 contact: name: Brella Developer Documentation url: https://developer.brella.io/ termsOfService: https://www.brella.io/terms-and-conditions servers: - url: https://api.brella.io/api/integration description: Brella Integration API production host security: - BrellaApiAccessToken: [] tags: - name: Events - name: Attendees - name: Speakers - name: Sponsors - name: Schedule - name: Invites paths: /organizations/{organizationId}/events: get: operationId: listEvents tags: - Events summary: List all events description: >- List the events belonging to a Brella organization. Supports mandatory pagination and optional ISO 8601 date-range filtering. parameters: - $ref: '#/components/parameters/OrganizationId' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - name: created_from in: query required: false description: Return events created on or after this ISO 8601 timestamp. schema: type: string format: date-time example: '2023-11-20T00:00:00.000Z' - name: created_to in: query required: false description: Return events created on or before this ISO 8601 timestamp. schema: type: string format: date-time responses: '200': description: A paginated list of events. '401': $ref: '#/components/responses/Unauthorized' /organizations/{organizationId}/events/{eventId}/attendees: get: operationId: listAttendees tags: - Attendees summary: List all attendees description: >- List attendees for a specific event. Supports mandatory pagination and optional created_from, created_to, updated_from, and updated_to filters for incremental syncs. parameters: - $ref: '#/components/parameters/OrganizationId' - $ref: '#/components/parameters/EventId' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - name: created_from in: query required: false schema: type: string format: date-time - name: created_to in: query required: false schema: type: string format: date-time - name: updated_from in: query required: false schema: type: string format: date-time - name: updated_to in: query required: false schema: type: string format: date-time responses: '200': description: A paginated list of attendees. '401': $ref: '#/components/responses/Unauthorized' /organizations/{organizationId}/events/{eventId}/speakers: get: operationId: listSpeakers tags: - Speakers summary: List all speakers description: List the speakers configured for a specific event. parameters: - $ref: '#/components/parameters/OrganizationId' - $ref: '#/components/parameters/EventId' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': description: A paginated list of speakers. '401': $ref: '#/components/responses/Unauthorized' /organizations/{organizationId}/events/{eventId}/sponsors: get: operationId: listSponsors tags: - Sponsors summary: List all sponsors description: List sponsors and exhibitors for a specific event. parameters: - $ref: '#/components/parameters/OrganizationId' - $ref: '#/components/parameters/EventId' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': description: A paginated list of sponsors. '401': $ref: '#/components/responses/Unauthorized' /organizations/{organizationId}/events/{eventId}/timeslots: get: operationId: listTimeslots tags: - Schedule summary: List all timeslots description: >- List all timeslots (both networking and content types) for a specific event, including titles, subtitles, tracks, locations, tags, and formatted content. parameters: - $ref: '#/components/parameters/OrganizationId' - $ref: '#/components/parameters/EventId' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': description: A paginated list of timeslots. '401': $ref: '#/components/responses/Unauthorized' /organizations/{organizationId}/events/{eventId}/invites: get: operationId: listInvites tags: - Invites summary: List all invites description: List the invites issued for a specific event. parameters: - $ref: '#/components/parameters/OrganizationId' - $ref: '#/components/parameters/EventId' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' responses: '200': description: A paginated list of invites. '401': $ref: '#/components/responses/Unauthorized' components: securitySchemes: BrellaApiAccessToken: type: apiKey in: header name: Brella-Api-Access-Token description: >- Organization-level API key generated by an organization admin from the Brella admin panel. Grants read (and, where applicable, write) access to the organization's event data. parameters: OrganizationId: name: organizationId in: path required: true description: The numeric ID of the Brella organization. schema: type: integer EventId: name: eventId in: path required: true description: The numeric ID of the Brella event. schema: type: integer PageSize: name: page[size] in: query required: true description: Number of records per page. Maximum 500. Pagination is mandatory. schema: type: integer maximum: 500 default: 50 PageNumber: name: page[number] in: query required: true description: The page number to retrieve. Pagination is mandatory. schema: type: integer default: 1 responses: Unauthorized: description: Missing or invalid Brella-Api-Access-Token.