Brella Schedule API

List all timeslots (both networking and content types) for a specific event - titles, subtitles, tracks, locations, tags, and formatted content - for embedding or syncing an event agenda.

OpenAPI Specification

brella-openapi.yml Raw ↑
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.