> ## Documentation Index
> Fetch the complete documentation index at: https://docs.signupbreeze.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get an event

> Returns one event with its shifts and how full each one is. To ask only "what still
needs people?", use the coverage endpoint instead — it answers that in one call.

Requires the `events:read` scope.



## OpenAPI

````yaml https://api.signupbreeze.com/openapi.yaml get /v1/events/{id}
openapi: 3.0.3
info:
  title: SignUpBreeze API
  description: >-
    Manage events, shifts, and signups programmatically — from your own scripts,
    an

    automation platform, or an AI agent.


    ## Authentication


    Every request needs a bearer token, which an organization owner or admin
    creates

    under **Organization settings → API**. Tokens belong to the organization
    rather

    than to the person who created one, so an admin leaving does not break a
    live

    integration.


    Each token carries a set of scopes, and every endpoint states the scope it

    requires. A request whose token lacks the scope is refused with `403`.


    **Every token expires**, after at most a year and by default after exactly
    that.

    An expired token is refused with `401`, the same as a revoked one, so plan
    to

    create a replacement before the expiry date shown in settings — nothing
    using

    the old token keeps working past it.


    ## Rate limiting


    Requests are throttled per API token, not per organization — issuing more

    tokens does not raise the ceiling. The limit varies by plan: 30 requests/min

    on Free and Calendar, 120 on Starter, 300 on Pro.


    Every response carries `X-RateLimit-Limit` and `X-RateLimit-Remaining`.

    Exceeding the limit returns `429`, with `Retry-After` and
    `X-RateLimit-Reset`

    added to that response so you know when to try again.


    ## Idempotency


    Writes accept an `Idempotency-Key` header. Send the same key again and the
    original

    response is replayed rather than the write happening twice — worth using
    anywhere a

    retry is possible, which is most places an agent is involved.


    ## Pagination


    Collections are cursor paginated. Follow `meta.next_cursor` rather than
    assuming

    page numbers.


    ## Scoping


    Everything a token can reach belongs to its organization. Another
    organization's

    record answers `404` rather than `403`, so a token cannot be used to
    discover that

    it exists.
  version: 1.0.0
servers:
  - url: https://api.signupbreeze.com
security:
  - default: []
tags:
  - name: Events
    description: >-

      Create and manage events. Every endpoint is scoped to the organization
      that owns the

      token — another organization's event responds `404`, not `403`, so a token
      cannot be

      used to discover that it exists.
  - name: Organization
    description: |-

      The organization a token belongs to.
  - name: Shifts
    description: >-

      The time slots volunteers sign up for. Shift times are wall-clock strings
      like `14:30`,

      interpreted in the parent event's timezone against its start date — you
      never send a

      date or an offset for a shift.
  - name: Signups
    description: >-

      Who has signed up. Read-only in v1: signups are created through the public
      event page,

      which is deliberately the only way a volunteer is added.
externalDocs:
  description: SignUpBreeze documentation
  url: https://docs.signupbreeze.com/api-reference/introduction
paths:
  /v1/events/{id}:
    parameters:
      - in: path
        name: id
        description: The ID of the event.
        example: 019fdf11-4bb2-7039-92c3-9e7f1ee711a1
        required: true
        schema:
          type: string
      - in: path
        name: event
        description: The event's id.
        example: 019fdf11-4bb2-7039-92c3-9e7f1ee711a1
        required: true
        schema:
          type: string
    get:
      tags:
        - Events
      summary: Get an event
      description: >-
        Returns one event with its shifts and how full each one is. To ask only
        "what still

        needs people?", use the coverage endpoint instead — it answers that in
        one call.


        Requires the `events:read` scope.
      operationId: getAnEvent
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 019ff256-ecc0-70fe-96b4-1f9294913d78
                    title: Adipisci quidem nostrum qui.
                    description: >-
                      Odit et et modi. Nostrum omnis autem et consequatur aut.
                      Enim non facere tempora ex voluptatem laboriosam
                      praesentium. Adipisci molestias fugit deleniti distinctio
                      eum doloremque id.


                      Aliquam veniam corporis dolorem mollitia deleniti nemo.
                      Quia officia est dignissimos neque. Odio veritatis
                      excepturi doloribus delectus fugit qui repudiandae. Est
                      alias tenetur ratione.
                    slug: adipisci-quidem-nostrum-qui-733
                    location: |-
                      80483 Kovacek Causeway
                      Moiseschester, AZ 60787-7092
                    is_virtual: false
                    start_date: '2026-09-22T05:51:00+00:00'
                    end_date: '2026-09-22T10:34:16+00:00'
                    timezone: UTC
                    is_published: false
                    public_url: http://localhost/e/adipisci-quidem-nostrum-qui-733
                    slots:
                      - id: 019ff256-ecc2-728b-bae9-3d0964e0e79c
                        event_id: 019ff256-ecc0-70fe-96b4-1f9294913d78
                        title: Grill Master
                        location: null
                        is_virtual: false
                        start_time: '2026-11-04T06:14:41+00:00'
                        end_time: '2026-11-04T08:14:41+00:00'
                        capacity: 10
                        filled: 0
                        remaining: 10
                        created_at: '2026-08-11T19:40:10+00:00'
                        updated_at: '2026-08-11T19:40:10+00:00'
                    created_at: '2026-08-11T19:40:10+00:00'
                    updated_at: '2026-08-11T19:40:10+00:00'
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        example: 019ff256-ecc0-70fe-96b4-1f9294913d78
                      title:
                        type: string
                        example: Adipisci quidem nostrum qui.
                      description:
                        type: string
                        example: >-
                          Odit et et modi. Nostrum omnis autem et consequatur
                          aut. Enim non facere tempora ex voluptatem laboriosam
                          praesentium. Adipisci molestias fugit deleniti
                          distinctio eum doloremque id.


                          Aliquam veniam corporis dolorem mollitia deleniti
                          nemo. Quia officia est dignissimos neque. Odio
                          veritatis excepturi doloribus delectus fugit qui
                          repudiandae. Est alias tenetur ratione.
                      slug:
                        type: string
                        example: adipisci-quidem-nostrum-qui-733
                      location:
                        type: string
                        example: |-
                          80483 Kovacek Causeway
                          Moiseschester, AZ 60787-7092
                      is_virtual:
                        type: boolean
                        example: false
                      start_date:
                        type: string
                        example: '2026-09-22T05:51:00+00:00'
                      end_date:
                        type: string
                        example: '2026-09-22T10:34:16+00:00'
                      timezone:
                        type: string
                        example: UTC
                      is_published:
                        type: boolean
                        example: false
                      public_url:
                        type: string
                        example: http://localhost/e/adipisci-quidem-nostrum-qui-733
                      slots:
                        type: array
                        example:
                          - id: 019ff256-ecc2-728b-bae9-3d0964e0e79c
                            event_id: 019ff256-ecc0-70fe-96b4-1f9294913d78
                            title: Grill Master
                            location: null
                            is_virtual: false
                            start_time: '2026-11-04T06:14:41+00:00'
                            end_time: '2026-11-04T08:14:41+00:00'
                            capacity: 10
                            filled: 0
                            remaining: 10
                            created_at: '2026-08-11T19:40:10+00:00'
                            updated_at: '2026-08-11T19:40:10+00:00'
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              example: 019ff256-ecc2-728b-bae9-3d0964e0e79c
                            event_id:
                              type: string
                              example: 019ff256-ecc0-70fe-96b4-1f9294913d78
                            title:
                              type: string
                              example: Grill Master
                            location:
                              type: string
                              example: null
                              nullable: true
                            is_virtual:
                              type: boolean
                              example: false
                            start_time:
                              type: string
                              example: '2026-11-04T06:14:41+00:00'
                            end_time:
                              type: string
                              example: '2026-11-04T08:14:41+00:00'
                            capacity:
                              type: integer
                              example: 10
                            filled:
                              type: integer
                              example: 0
                            remaining:
                              type: integer
                              example: 10
                            created_at:
                              type: string
                              example: '2026-08-11T19:40:10+00:00'
                            updated_at:
                              type: string
                              example: '2026-08-11T19:40:10+00:00'
                      created_at:
                        type: string
                        example: '2026-08-11T19:40:10+00:00'
                      updated_at:
                        type: string
                        example: '2026-08-11T19:40:10+00:00'
        '404':
          description: no such event, or it belongs to another organization
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Not found.
                properties:
                  message:
                    type: string
                    example: Not found.
components:
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: >-
        Create a token under <b>Organization settings → API</b>. Tokens are
        shown once, on creation. They belong to the organization, not to you, so
        they keep working if you leave the team. API access is included on every
        plan; the rate limit depends on the plan.

````