Neon One Events API

Events, tickets, and event registrations.

OpenAPI Specification

neonone-events-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Neon CRM API v2 Accounts Events API
  description: Neon CRM API v2 is a RESTful, JSON-based rebuild of Neon One's legacy API v1, first launched in 2019. It exposes constituent accounts, households, donations, pledges, recurring donations, campaigns, memberships, events, custom fields and custom objects, orders and the online store, volunteers, and webhook subscriptions. All requests use HTTP Basic Authentication with the organization's Org ID as the username and an API key as the password. Neon CRM API v1 and its legacy webhook structure are scheduled to be retired on July 11, 2026; this document covers API v2 only. This is a representative subset of the full v2 surface, grounded in Neon's public developer documentation and version release notes (v2.0 - v2.11), not an exhaustive mirror of every documented endpoint.
  version: '2.11'
  contact:
    name: Neon One Developer Center
    url: https://developer.neoncrm.com/
  license:
    name: Proprietary
    url: https://neonone.com/
servers:
- url: https://api.neoncrm.com/v2
  description: Production and Sandbox
- url: https://trial.z2systems.com/v2
  description: Trial instances
security:
- basicAuth: []
tags:
- name: Events
  description: Events, tickets, and event registrations.
paths:
  /events:
    post:
      operationId: createEvent
      tags:
      - Events
      summary: Create an event
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventInput'
      responses:
        '200':
          description: The created event.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /events/{id}:
    parameters:
    - name: id
      in: path
      required: true
      description: The ID of the event.
      schema:
        type: string
    get:
      operationId: getEvent
      tags:
      - Events
      summary: Retrieve an event
      description: Supports a delimited list of multiple event categories as of API v2.11.
      responses:
        '200':
          description: The requested event.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateEvent
      tags:
      - Events
      summary: Update an event
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventInput'
      responses:
        '200':
          description: The updated event.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteEvent
      tags:
      - Events
      summary: Delete an event
      responses:
        '200':
          description: Deletion confirmation.
        '404':
          $ref: '#/components/responses/NotFound'
  /events/search:
    post:
      operationId: searchEvents
      tags:
      - Events
      summary: Search events
      description: Rate-limited to 1 simultaneous request.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchRequest'
      responses:
        '200':
          description: Matching events.
          content:
            application/json:
              schema:
                type: object
                properties:
                  searchResults:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /events/{id}/tickets:
    parameters:
    - name: id
      in: path
      required: true
      description: The ID of the event.
      schema:
        type: string
    get:
      operationId: listEventTickets
      tags:
      - Events
      summary: List an event's tickets
      responses:
        '200':
          description: A list of event tickets.
          content:
            application/json:
              schema:
                type: object
                properties:
                  tickets:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createEventTicket
      tags:
      - Events
      summary: Create an event ticket type
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        '200':
          description: The created ticket.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '401':
          $ref: '#/components/responses/Unauthorized'
  /events/{id}/tickets/{ticketId}:
    parameters:
    - name: id
      in: path
      required: true
      description: The ID of the event.
      schema:
        type: string
    - name: ticketId
      in: path
      required: true
      description: The ID of the ticket.
      schema:
        type: string
    get:
      operationId: getEventTicket
      tags:
      - Events
      summary: Retrieve an event ticket type
      responses:
        '200':
          description: The requested ticket.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateEventTicket
      tags:
      - Events
      summary: Update an event ticket type
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        '200':
          description: The updated ticket.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteEventTicket
      tags:
      - Events
      summary: Delete an event ticket type
      responses:
        '200':
          description: Deletion confirmation.
        '404':
          $ref: '#/components/responses/NotFound'
  /events/{id}/attendees:
    parameters:
    - name: id
      in: path
      required: true
      description: The ID of the event.
      schema:
        type: string
    get:
      operationId: listEventAttendees
      tags:
      - Events
      summary: List an event's attendees
      description: Attendee fields expanded in API v2.9 to include prefix, email, companyName, address, city, stateProvince, zipCode, phone1, phone1Type, dob, eventName, registrationId, and ticketName.
      responses:
        '200':
          description: A list of event attendees.
          content:
            application/json:
              schema:
                type: object
                properties:
                  attendees:
                    type: array
                    items:
                      $ref: '#/components/schemas/EventAttendee'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /events/{id}/eventRegistrations:
    parameters:
    - name: id
      in: path
      required: true
      description: The ID of the event.
      schema:
        type: string
    get:
      operationId: listEventRegistrationsForEvent
      tags:
      - Events
      summary: List registrations for an event
      responses:
        '200':
          description: A list of registrations.
          content:
            application/json:
              schema:
                type: object
                properties:
                  eventRegistrations:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
        '401':
          $ref: '#/components/responses/Unauthorized'
  /eventRegistrations:
    post:
      operationId: createEventRegistration
      tags:
      - Events
      summary: Create an event registration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventRegistrationInput'
      responses:
        '200':
          description: The created registration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventRegistration'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /eventRegistrations/{registrationId}:
    parameters:
    - name: registrationId
      in: path
      required: true
      description: The ID of the event registration.
      schema:
        type: string
    get:
      operationId: getEventRegistration
      tags:
      - Events
      summary: Retrieve an event registration
      responses:
        '200':
          description: The requested registration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventRegistration'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateEventRegistration
      tags:
      - Events
      summary: Update an event registration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventRegistrationInput'
      responses:
        '200':
          description: The updated registration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventRegistration'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: patchEventRegistration
      tags:
      - Events
      summary: Partially update an event registration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        '200':
          description: The updated registration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventRegistration'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteEventRegistration
      tags:
      - Events
      summary: Delete an event registration
      responses:
        '200':
          description: Deletion confirmation.
        '404':
          $ref: '#/components/responses/NotFound'
  /eventRegistrations/calculate:
    post:
      operationId: calculateEventRegistration
      tags:
      - Events
      summary: Calculate the price of a prospective event registration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        '200':
          description: The calculated registration total.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    EventInput:
      type: object
      required:
      - name
      properties:
        name:
          type: string
        eventDates:
          type: object
          additionalProperties: true
        category:
          type: object
          additionalProperties: true
      additionalProperties: true
    SearchRequest:
      type: object
      required:
      - searchFields
      - outputFields
      properties:
        searchFields:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
              operator:
                type: string
              value:
                type: string
        outputFields:
          type: array
          items:
            type: string
        pagination:
          type: object
          properties:
            currentPage:
              type: integer
            pageSize:
              type: integer
    Error:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
              message:
                type: string
    EventRegistrationInput:
      type: object
      required:
      - eventId
      - accountId
      properties:
        eventId:
          type: string
        accountId:
          type: string
        registrantAccountId:
          type: string
        tickets:
          type: array
          items:
            type: object
            additionalProperties: true
      additionalProperties: true
    EventAttendee:
      type: object
      properties:
        registrationId:
          type: string
        ticketName:
          type: string
        eventName:
          type: string
        prefix:
          type: string
        email:
          type: string
        companyName:
          type: string
        addressLine1:
          type: string
        city:
          type: string
        stateProvince:
          type: string
        zipCode:
          type: string
        phone1:
          type: string
        phone1Type:
          type: string
        dob:
          type: string
          format: date
      additionalProperties: true
    EventRegistration:
      allOf:
      - $ref: '#/components/schemas/EventRegistrationInput'
      - type: object
        properties:
          id:
            type: string
    Event:
      allOf:
      - $ref: '#/components/schemas/EventInput'
      - type: object
        properties:
          id:
            type: string
          thumbnailUrl:
            type: string
  responses:
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing or invalid Org ID / API key in the Basic Authorization header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: The rate limit for simultaneous requests to this endpoint was exceeded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic Authentication. Username is the Neon CRM organization's Org ID; password is an API key generated for a system user under Settings > User Management.