Gather Guestlist API

Manage the email guestlist (members/guests) of a space

OpenAPI Specification

gather-guestlist-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Gather HTTP Guestlist API
  version: '2.0'
  description: The Gather HTTP API lets you read and write the map/room data of a Gather space and manage its email guestlist programmatically, enabling dynamically and programmatically generated maps. Authentication is via an API key generated at https://gather.town/apiKeys; the caller must have Admin or Builder permission on the space being modified. This description was reconstructed by the API Evangelist enrichment pipeline from Gather's official public documentation (Notion HTTP API reference) and the gathertown/api-examples repository — it captures the documented, verified operations and is not an official Gather OpenAPI document.
  x-provenance:
    generated: '2026-07-19'
    method: derived
    source:
    - https://gathertown.notion.site/Gather-HTTP-API-3bbf6c59325f40aca7ef5ce14c677444
    - https://github.com/gathertown/api-examples
  contact:
    name: Gather Support
    url: https://support.gather.town/
servers:
- url: https://api.gather.town
  description: Gather HTTP API
security:
- apiKey: []
tags:
- name: Guestlist
  description: Manage the email guestlist (members/guests) of a space
paths:
  /api/getEmailGuestlist:
    get:
      operationId: getEmailGuestlist
      summary: Get email guestlist
      description: Retrieve the email guestlist for a space — a JSON object keyed by email address, each value carrying optional name, affiliation, and role.
      tags:
      - Guestlist
      parameters:
      - $ref: '#/components/parameters/SpaceIdQuery'
      responses:
        '200':
          description: The guestlist object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Guestlist'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /api/setEmailGuestlist:
    post:
      operationId: setEmailGuestlist
      summary: Set email guestlist
      description: Set or update the email guestlist for a space. When overwrite is false the supplied entries are merged/appended; when true the guestlist is replaced.
      tags:
      - Guestlist
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                spaceId:
                  type: string
                guestlist:
                  $ref: '#/components/schemas/Guestlist'
                overwrite:
                  type: boolean
                  description: Replace the guestlist instead of merging.
              required:
              - spaceId
              - guestlist
      responses:
        '200':
          description: Guestlist updated.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    Guestlist:
      type: object
      description: Object keyed by email address; each value is an object with optional name, affiliation, and role string fields.
      additionalProperties:
        type: object
        properties:
          name:
            type: string
          affiliation:
            type: string
          role:
            type: string
  responses:
    BadRequest:
      description: Malformed request (invalid body or parameters).
    NotFound:
      description: The referenced space or map was not found.
    Forbidden:
      description: The API key lacks permission on the target space.
  parameters:
    SpaceIdQuery:
      name: spaceId
      in: query
      required: true
      schema:
        type: string
      description: The space identifier.
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: apiKey
      description: API key generated at https://gather.town/apiKeys, sent in the apiKey request header. The associated user must have Admin or Builder permission on the target space.