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

# Get All Types

> Retrieves all registration types for a specific event. Registration types (e.g., Attendee, Exhibitor, Speaker) categorize registrants and can have different pricing, capacity limits, and group size constraints. Requires the `event_id` query parameter.



## OpenAPI

````yaml /api-reference/openapi.yaml get /reg-types
openapi: 3.1.0
info:
  title: Swoogo API
  version: 1.0.0
  summary: REST API for the Swoogo event management platform
  description: >
    The Swoogo API provides programmatic access to manage events, registrants,
    sessions,

    speakers, sponsors, and related resources on the Swoogo event management
    platform.


    ## Authentication


    The API uses OAuth 2.0 with the **client credentials** grant type.


    1. **Get your credentials** — Log in to Swoogo and go to **My Profile > API
    Credentials**
       to find your consumer key and secret.
    2. **Encode credentials** — URL-encode the key and secret (RFC 1738),
    concatenate them
       with a colon (`key:secret`), then Base64-encode the result.
    3. **Request a token** — `POST /oauth2/token` with your encoded credentials
    in the
       `Authorization: Basic {encoded}` header and `grant_type=client_credentials` in the body.
    4. **Use the token** — Include `Authorization: Bearer {access_token}` on all
    subsequent requests.


    > Tokens expire after **30 minutes**. Request a new token when you receive a
    `401` response.


    ## Rate Limiting


    API requests are rate-limited to **2,000 requests per 10-minute window** per
    API credential.

    List endpoints cost **10 credits** per call; all other endpoints cost **1
    credit**.

    Rate limit status is returned in response headers:


    | Header | Description |

    |--------|-------------|

    | `X-Rate-Limit-Limit` | Maximum requests allowed in the current window |

    | `X-Rate-Limit-Remaining` | Requests remaining in the current window |

    | `X-Rate-Limit-Reset` | Seconds until the window resets |


    When the limit is exceeded, the API returns `429 Too Many Requests`.


    ## Pagination


    All list endpoints return paginated results in this envelope:


    ```json

    {
      "items": [...],
      "_links": { "self": { "href": "..." }, "first": { "href": "..." }, "last": { "href": "..." } },
      "_meta": { "totalCount": 95, "pageCount": 5, "currentPage": 1, "perPage": 20 }
    }

    ```


    Control pagination with these query parameters:


    | Parameter | Default | Max | Description |

    |-----------|---------|-----|-------------|

    | `page` | 1 | — | Page number (1-indexed) |

    | `per-page` | 20 | 1000 | Items per page. Capped at **200** when using
    `expand`. |


    Pagination metadata is also returned in `X-Pagination-*` response headers.


    ## Filtering and Sorting


    Use the `search` parameter to filter results. Combine multiple conditions
    with `&`.


    **Operators:** `=`, `!=`, `>`, `<`, `>=`, `<=`, `*contains*`,
    `*beginswith*`, `*endswith*`, `*in*`


    **Examples:**

    - `search=registration_status=confirmed` — exact match

    - `search=created_at>=2024-01-01` — date range

    - `search=last_name=*beginswith*Sm` — starts with "Sm"

    - `search=status=*in*confirmed|attended` — matches any value
    (pipe-separated)

    - `search=id>100&registration_status=confirmed` — multiple conditions (AND
    by default)


    Set `searchCondition=or` to match **any** condition instead of all.


    Use `sort` to order results. Prefix with `-` for descending:
    `sort=-created_at`.


    ## Field Selection and Expansion


    Use `fields` to request only the fields you need:
    `fields=id,email,first_name,last_name`.

    When omitted, a default subset of fields is returned.


    Use `expand` to include related objects in the response:
    `expand=homeAddress,sessions`.

    Each resource documents its available expand values. Using `expand` caps the
    page size at **200**.


    ## Errors


    All errors return a consistent JSON response:


    ```json

    {
      "name": "Not Found",
      "message": "The requested resource does not exist.",
      "code": 0,
      "status": 404
    }

    ```


    | Status | Meaning |

    |--------|---------|

    | `400` | Bad Request — invalid parameters or business rule violation |

    | `401` | Unauthorized — missing or expired bearer token |

    | `403` | Forbidden — valid token but insufficient permissions |

    | `404` | Not Found — resource does not exist or is not accessible |

    | `422` | Unprocessable Entity — validation errors on input fields |

    | `429` | Too Many Requests — rate limit exceeded |

    | `500` | Internal Server Error — unexpected server error |


    ## Webhooks


    Swoogo can send HTTP callbacks when resources are created, updated, or
    deleted.

    Configure webhooks via the API or the Swoogo UI. Supported trigger objects:

    `event`, `contact`, `registrant`, `speaker`, `sponsor`, `session`,

    `session_attendance`, `registrant_line_item`.


    Webhook payloads can be sent as `json` (application/json) or `post`
    (form-encoded).
  termsOfService: https://www.swoogo.com/terms
  contact:
    name: Swoogo Developer Support
    url: https://developer.swoogo.com
    email: dev@swoogo.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://api.swoogo.com/api/v1
    description: Production API server
  - url: https://local.swoogo.com/api/v1
    description: Local API server
security: []
tags:
  - name: Authentication
    description: Obtain and manage OAuth 2.0 bearer tokens for API access.
  - name: Events
    description: >-
      Events are the top-level resource in Swoogo. An event represents a
      conference, meeting, webinar, or other gathering. Most resources
      (registrants, sessions, speakers, sponsors) are scoped to an event via
      `event_id`. Use events to manage scheduling, capacity, registration
      windows, and event metadata.
  - name: Registrants
    description: >-
      Registrants are individuals who have registered for an event. Each
      registrant belongs to one event and carries a registration status, package
      selection, session choices, and financial data (fees, taxes, payments).
      Registrants can be checked in, emailed, approved/denied, and assigned to
      groups.
  - name: Sessions
    description: >-
      Sessions are individual agenda items within an event — talks, workshops,
      panels, or breaks. Sessions have scheduling (date, start/end time,
      timezone), capacity limits, location assignments, track categorization,
      and optional fees. Registrants select sessions during registration.
  - name: Speakers
    description: >-
      Speakers are presenters associated with event sessions. Each speaker has
      profile information (name, bio, company, photo) and can be linked to one
      or more sessions.
  - name: Sponsors
    description: >-
      Sponsors are organizations or individuals providing support for events.
      Sponsors have profile data, custom fields, and optional attendance
      tracking.
  - name: Contacts
    description: >-
      Contacts are people in your Swoogo CRM, independent of any specific event.
      Contacts can be linked to registrants across multiple events and managed
      via invitation lists.
  - name: Registrant Types
    description: >-
      Registration types (reg types) define categories of attendees for an event
      — such as "Attendee", "Exhibitor", or "VIP". Each reg type can have its
      own capacity, naming, and group size constraints.
  - name: Packages
    description: >-
      Packages define pricing tiers for event registration. A package specifies
      the fee amount, early bird pricing, and which sessions or features are
      included. Registrants select a package during registration.
  - name: Discount Codes
    description: >-
      Discount codes provide percentage or absolute discounts on registration
      fees. Codes can have capacity limits, group size requirements, and
      apply-to-all or selective targeting. Codes can be cloned to create
      variants.
  - name: Transactions
    description: >-
      Transactions record financial activity for registrants — payments,
      refunds, and credits. Supports offline payment types (credit card, wire
      transfer, check, cash, etc.) and integration with payment gateways.
  - name: Registrant Sessions
    description: >-
      Manage which sessions a registrant is enrolled in. Add or remove session
      assignments.
  - name: Registrant Session Waitlists
    description: >-
      Manage waitlist entries for sessions that are at capacity. Add or remove
      waitlist positions.
  - name: Registrant Groups
    description: >-
      Manage group registration assignments. Add or remove registrants from
      registration groups.
  - name: Registrant Line Items
    description: >-
      View itemized financial line items for registrant orders, including fees,
      taxes, and discounts.
  - name: Registrant Line Item Audits
    description: View the audit trail for changes to registrant line items.
  - name: Event Fields
    description: >-
      Manage custom fields on events. Create, update, and delete event-level
      custom field definitions.
  - name: Event Questions
    description: View event questions configured for registration forms.
  - name: Event Websites
    description: View websites associated with events.
  - name: Event Badges
    description: Manage event badges. Generate badge PDFs for registrants.
  - name: Event Folders
    description: View event folders used to organize events in the Swoogo dashboard.
  - name: Session Fields
    description: >-
      Manage custom fields on sessions. Create, update, and delete session-level
      custom field definitions.
  - name: Session Locations
    description: >-
      Manage physical or virtual locations where sessions take place. Locations
      can be assigned to sessions and include name, capacity, and address
      information.
  - name: Session Attendance
    description: Track and manage session attendance records for registrants.
  - name: Session Scans
    description: Record and manage check-in scans for session attendance.
  - name: Session Fees
    description: Manage pricing for individual sessions, including early bird rates.
  - name: Package Fees
    description: Manage pricing for packages, including early bird rates.
  - name: Tracks
    description: >-
      Tracks group related sessions into thematic categories (e.g., "Technical",
      "Business", "Keynotes"). Registrants can filter sessions by track.
  - name: Pages
    description: View pages associated with event websites.
  - name: Speaker Sessions
    description: >-
      Manage the association between speakers and sessions. Assign or remove
      speakers from sessions.
  - name: Sponsor Fields
    description: >-
      Manage custom fields on sponsors. Create, update, and delete sponsor-level
      custom field definitions.
  - name: Sponsor Attendance
    description: View sponsor attendance records for events.
  - name: Contact Fields
    description: View custom field definitions for contacts.
  - name: Invitation Lists
    description: >-
      Invitation lists are curated groups of contacts used for targeted event
      invitations and access control. Manage lists and their contact
      memberships.
  - name: Data Lists
    description: >-
      Data lists store reusable sets of key-value options used in custom fields
      (e.g., dropdown choices, checkbox options). Manage lists and their items.
  - name: Data List Items
    description: Manage individual items within a data list.
  - name: Call for Speaker Contacts
    description: Manage contacts who have submitted to a call for speakers program.
  - name: Call for Speaker Reviews
    description: Manage reviews of call for speaker submissions.
  - name: Call for Speaker Submissions
    description: Manage speaker submissions to a call for speakers program.
  - name: Images
    description: >-
      Upload, retrieve, and delete images associated with resources
      (registrants, speakers, sponsors, etc.).
  - name: Webhooks
    description: >-
      Configure HTTP callbacks that fire when resources are created, updated, or
      deleted. Webhooks support JSON and form-encoded payloads, custom headers,
      and retry logic.
  - name: Webhook Groups
    description: >-
      Organize webhooks into groups for easier management. A webhook group
      contains one or more webhooks that share common configuration.
paths:
  /reg-types:
    get:
      tags:
        - Registrant Types
      summary: Get All Types
      description: >-
        Retrieves all registration types for a specific event. Registration
        types (e.g., Attendee, Exhibitor, Speaker) categorize registrants and
        can have different pricing, capacity limits, and group size constraints.
        Requires the `event_id` query parameter.
      operationId: getAllRegistrantTypes
      parameters:
        - name: event_id
          in: query
          required: true
          schema:
            type: integer
            example: 1
          description: >-
            integer - required - The ID of the event you want to retrieve reg
            types for
        - name: fields
          in: query
          schema:
            type: string
            example: >-
              id,name,public_short_name,admin_short_name,description,capacity,sold_out_message,min_group_size,max_group_size,created_at,updated_at
          description: >-
            string - optional - Comma separated list of fields you want to
            return
        - name: search
          in: query
          schema:
            type: string
            example: id>123
          description: >-
            string - optional - Filter conditions to narrow the results. Valid
            operators are =, !=, >=, <=, >, <, *contains*, *beginswith*,
            *endswith*
        - name: page
          in: query
          schema:
            type: string
            example: '1'
          description: integer - optional - The page of results you want to view
        - name: per-page
          in: query
          schema:
            type: string
            example: '5'
          description: >-
            integer - optional - The number of results per page (to a max of
            200)
        - name: sort
          in: query
          schema:
            type: string
          description: >-
            string - optional - Sort the results (add - in front for opposite
            sort direction, e.g. "-id")
        - name: ids
          in: query
          schema:
            type: string
          description: >-
            Comma-separated list of IDs to retrieve. When provided, only records
            matching these IDs are returned. All values must be positive
            integers. Maximum 100 IDs per request.
          example: 1,2,3
      responses:
        '200':
          description: Get Registrant Types
          headers:
            x-rate-limit-limit:
              $ref: '#/components/headers/RateLimitLimit'
            x-rate-limit-remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            x-rate-limit-reset:
              $ref: '#/components/headers/RateLimitReset'
            x-pagination-current-page:
              $ref: '#/components/headers/PaginationCurrentPage'
            x-pagination-page-count:
              $ref: '#/components/headers/PaginationPageCount'
            x-pagination-per-page:
              $ref: '#/components/headers/PaginationPerPage'
            x-pagination-total-count:
              $ref: '#/components/headers/PaginationTotalCount'
          content:
            application/json:
              schema:
                type: object
                properties:
                  _links:
                    type: object
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
                            example: >-
                              reg-types.json?event_id=1&fields=id%2Cname%2Ccreated_at&page=1
                  _meta:
                    type: object
                    properties:
                      currentPage:
                        type: number
                        example: 1
                      pageCount:
                        type: number
                        example: 1
                      perPage:
                        type: number
                        example: 20
                      totalCount:
                        type: number
                        example: 2
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                          example: 1
                        name:
                          type: string
                          example: Attendee
                    example:
                      - id: 1
                        name: Attendee
                      - id: 2
                        name: Exhibitor
              examples:
                Get Registrant Types:
                  value:
                    _links:
                      self:
                        href: >-
                          reg-types.json?event_id=1&fields=id%2Cname%2Ccreated_at&page=1
                    _meta:
                      currentPage: 1
                      pageCount: 1
                      perPage: 20
                      totalCount: 2
                    items:
                      - id: 1
                        name: Attendee
                      - id: 2
                        name: Exhibitor
      security:
        - bearerAuth: []
components:
  headers:
    RateLimitLimit:
      schema:
        type: integer
      description: Maximum number of API requests allowed in the current 10-minute window.
      example: 2000
    RateLimitRemaining:
      schema:
        type: integer
      description: Number of requests remaining in the current rate limit window.
      example: 1367
    RateLimitReset:
      schema:
        type: integer
      description: Number of seconds until the current rate limit window resets.
      example: 0
    PaginationCurrentPage:
      schema:
        type: integer
      description: The current page number in the paginated result set.
      example: 1
    PaginationPageCount:
      schema:
        type: integer
      description: Total number of pages available based on the current `per-page` value.
      example: 5
    PaginationPerPage:
      schema:
        type: integer
      description: Number of items returned per page.
      example: 20
    PaginationTotalCount:
      schema:
        type: integer
      description: Total number of items matching the query across all pages.
      example: 95
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: access_token
      description: >-
        OAuth 2.0 bearer token obtained from `POST /oauth2/token`. Tokens expire
        after 30 minutes. Include in the `Authorization` header as `Bearer
        {access_token}`.

````