Brushfire Promotions & Access Codes API

List and retrieve promotions and access codes, bulk-import promotions, and generate dynamic promotions and access codes - the discounting and gated-access controls layered onto an event's ticket types and sections.

OpenAPI Specification

brushfire-openapi.json Raw ↑
{
  "openapi": "3.0.1",
  "info": {
    "title": "Brushfire API: Version 2025-07-22",
    "version": "2025-07-22",
    "description": "The Brushfire REST API provides programmatic access to the Brushfire event ticketing and registration platform. It covers events, ticket types, sections and seats, attendees, orders, the shopping cart and checkout flow, groups, sessions and check-in, promotions and access codes, payment profiles, and webhooks (Hooks). Authenticate by sending your App Key (requested at https://developer.brushfire.com/key) in the Authorization header. The API is date-versioned: send the desired version in the api-version request header (for example, 2025-07-22). This document is the live specification published at api.brushfire.com/swagger.",
    "contact": {
      "name": "Brushfire Developers",
      "url": "https://developer.brushfire.com"
    }
  },
  "servers": [
    {
      "url": "https://api.brushfire.com",
      "description": "Brushfire API (date-versioned via the api-version header)"
    }
  ],
  "paths": {
    "/accesscodes": {
      "get": {
        "tags": [
          "AccessCodes"
        ],
        "summary": "List all access codes for a specific client (and additional parameters)",
        "parameters": [
          {
            "name": "clientId",
            "in": "query",
            "description": "A string, a GUID, or an integer that corresponds to a specific client",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "description": "An option string value from \"Standard\", \"Template\", or \"Dynamic\" that represents the kind of access code",
            "schema": {
              "$ref": "#/components/schemas/AccessCodeKind"
            }
          },
          {
            "name": "isRedeemed",
            "in": "query",
            "description": "An optional boolean value if the access code has been redeemed",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "An option string to filter access codes by name",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AccessCodeOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AccessCodeOutput"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/accesscodes/{accessCodeId}": {
      "get": {
        "tags": [
          "AccessCodes"
        ],
        "summary": "Get details of a single access code",
        "parameters": [
          {
            "name": "accessCodeId",
            "in": "path",
            "description": "A GUID that corresponds to a specific access code",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessCodeOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessCodeOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/accesscodes/dynamic": {
      "post": {
        "tags": [
          "AccessCodes"
        ],
        "summary": "Creates the specified quantity of dynamic access codes based upon the provided template code",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccessCodeCreateInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AccessCodeCreateInput"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/AccessCodeCreateInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AccessCodeCreateOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AccessCodeCreateOutput"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/accounts/{accountId}": {
      "get": {
        "tags": [
          "Accounts"
        ],
        "summary": "Retrieve information for a specific account",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "An Email, a GUID, an Access Key, or an integer that corresponds to a specific account",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountSingleOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountSingleOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/accounts/auth": {
      "post": {
        "tags": [
          "Accounts"
        ],
        "summary": "Authenticate a user via email and password or social service to get Access Key",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountAuthInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountAuthInput"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/AccountAuthInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountAuthOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountAuthOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/accounts/helpdesk/{email}": {
      "get": {
        "tags": [
          "Accounts"
        ],
        "summary": "Retrieve an account that matches the provided email",
        "parameters": [
          {
            "name": "email",
            "in": "path",
            "description": "An Email that corresponds to a specific account",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountHelpdeskOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountHelpdeskOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/attendees/{attendeeId}": {
      "get": {
        "tags": [
          "Attendees"
        ],
        "summary": "Retrieve all relevant attendee information for the given attendee number",
        "parameters": [
          {
            "name": "attendeeId",
            "in": "path",
            "description": "An integer, GUID, or a string that corresponds to a specific attendee",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventId",
            "in": "query",
            "description": "An integer or a GUID that corresponds to a specific event (only necessary if sending an attendee code)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accessKey",
            "in": "query",
            "description": "The Access Key for the user context",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "qrSize",
            "in": "query",
            "description": "The width and height of the QR Code. If blank, no QR will be sent.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttendeeDetailsOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttendeeDetailsOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/attendees/{attendeeId}/cancel": {
      "post": {
        "tags": [
          "Attendees"
        ],
        "summary": "Cancel an attendee (zero financial change only)",
        "parameters": [
          {
            "name": "attendeeId",
            "in": "path",
            "description": "An integer or a GUID that corresponds to a specific attendee",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttendeeCancelInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AttendeeCancelInput"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/AttendeeCancelInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderCreateOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderCreateOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/attendees/{attendeeId}/code": {
      "post": {
        "tags": [
          "Attendees"
        ],
        "summary": "Associate an external code with a Brushfire attendee for scanning, etc.",
        "parameters": [
          {
            "name": "attendeeId",
            "in": "path",
            "description": "An integer or a GUID that corresponds to a specific attendee",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttendeeCodeInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AttendeeCodeInput"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/AttendeeCodeInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttendeeDetailsOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttendeeDetailsOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/attendees/{attendeeId}/communities": {
      "get": {
        "tags": [
          "Attendees"
        ],
        "summary": "Gets all the available communities for this specific attendee based upon any rules that might be in place",
        "parameters": [
          {
            "name": "attendeeId",
            "in": "path",
            "description": "An integer or a GUID that corresponds to a specific attendee",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accessKey",
            "in": "query",
            "description": "The Access Key for the user context",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AttendeeCommunityOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AttendeeCommunityOutput"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/attendees/{attendeeId}/community": {
      "post": {
        "tags": [
          "Attendees"
        ],
        "summary": "Set or clear the community for the specified attendee (as long as the group's community doesn't override)",
        "parameters": [
          {
            "name": "attendeeId",
            "in": "path",
            "description": "An integer or a GUID that corresponds to a specific attendee",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttendeeCommunityInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AttendeeCommunityInput"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/AttendeeCommunityInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttendeeDetailsOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttendeeDetailsOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/attendees/{attendeeId}/completed": {
      "post": {
        "tags": [
          "Attendees"
        ],
        "summary": "Set a registered attendee's completed state",
        "parameters": [
          {
            "name": "attendeeId",
            "in": "path",
            "description": "An integer or a GUID that corresponds to a specific attendee",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttendeeCompletedInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AttendeeCompletedInput"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/AttendeeCompletedInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttendeeDetailsOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttendeeDetailsOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/attendees/{attendeeId}/data": {
      "get": {
        "tags": [
          "Attendees"
        ],
        "summary": "Returns all data for the specified attendee in the same structure as {eventId}/data",
        "parameters": [
          {
            "name": "attendeeId",
            "in": "path",
            "description": "An integer, GUID, or a string that corresponds to a specific attendee",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {}
              },
              "text/json": {
                "schema": {}
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/attendees/{attendeeId}/donate": {
      "post": {
        "tags": [
          "Attendees"
        ],
        "summary": "Donate back an attendee",
        "parameters": [
          {
            "name": "attendeeId",
            "in": "path",
            "description": "An integer or a GUID that corresponds to a specific attendee",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttendeeDonateInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AttendeeDonateInput"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/AttendeeDonateInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderCreateOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderCreateOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiModelError"
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ]
      }
    },
    "/attendees/{attendeeId}/fields": {
      "get": {
        "tags": [
          "Attendees"
        ],
        "summary": "Retrieve fields for an attendee",
        "parameters": [
          {
            "name": "attendeeId",
            "in": "path",
            "description": "An integer or a GUID that corresponds to a specific attendee",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accessKey",
            "in": "query",
            "description": "The Access Key for the user context",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FieldOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FieldOutput"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref"

# --- truncated at 32 KB (531 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/brushfire/refs/heads/main/openapi/brushfire-openapi.json