Neon One Campaigns API

Fundraising campaigns that transactions are attributed to.

OpenAPI Specification

neonone-campaigns-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Neon CRM API v2 Accounts Campaigns 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: Campaigns
  description: Fundraising campaigns that transactions are attributed to.
paths:
  /campaigns:
    get:
      operationId: listCampaigns
      tags:
      - Campaigns
      summary: List campaigns
      responses:
        '200':
          description: A list of campaigns.
          content:
            application/json:
              schema:
                type: object
                properties:
                  campaigns:
                    type: array
                    items:
                      $ref: '#/components/schemas/Campaign'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createCampaign
      tags:
      - Campaigns
      summary: Create a campaign
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Campaign'
      responses:
        '200':
          description: The created campaign.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /campaigns/{id}:
    parameters:
    - name: id
      in: path
      required: true
      description: The ID of the campaign.
      schema:
        type: string
    get:
      operationId: getCampaign
      tags:
      - Campaigns
      summary: Retrieve a campaign
      responses:
        '200':
          description: The requested campaign.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateCampaign
      tags:
      - Campaigns
      summary: Update a campaign
      description: The socialFundraising.enabled field must be explicitly set to true when updating a campaign via API v2, or peer-to-peer fundraising support will be disabled in the UI (fixed default behavior noted in API v2.2 release notes).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Campaign'
      responses:
        '200':
          description: The updated campaign.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: patchCampaign
      tags:
      - Campaigns
      summary: Partially update a campaign
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        '200':
          description: The updated campaign.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteCampaign
      tags:
      - Campaigns
      summary: Delete a campaign
      responses:
        '200':
          description: Deletion confirmation.
        '404':
          $ref: '#/components/responses/NotFound'
components:
  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'
  schemas:
    Error:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
              message:
                type: string
    Campaign:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        code:
          type: string
        isDefault:
          type: boolean
        socialFundraising:
          type: object
          properties:
            enabled:
              type: boolean
          additionalProperties: true
      additionalProperties: true
  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.