openapi: 3.1.0 info: title: Givebutter Campaign Tickets API version: 1.0.0 description: The Campaign Tickets surface of the Givebutter Public API — 3 operation(s). Split by tag from Givebutter's own published OpenAPI at https://givebutter.com/docs/api.json (harvested 2026-09-12). Operations, schemas and responses are verbatim from the provider's spec. contact: name: Givebutter API Documentation url: https://docs.givebutter.com/api-reference/authentication servers: - url: https://api.givebutter.com/ security: - http: [] tags: - name: Campaign Tickets paths: /v1/campaigns/{campaign}/items/tickets: get: operationId: campaigns.items.tickets.index summary: List all campaign tickets tags: - Campaign Tickets parameters: - name: campaign in: path required: true description: The campaign ID schema: type: integer responses: '200': description: Paginated set of `CampaignItemTicketResource` content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/CampaignItemTicketResource' links: type: object properties: first: type: - string - 'null' last: type: - string - 'null' prev: type: - string - 'null' next: type: - string - 'null' required: - first - last - prev - next meta: type: object properties: current_page: type: integer minimum: 1 from: type: - integer - 'null' minimum: 1 last_page: type: integer minimum: 1 links: type: array description: Generated paginator links. items: type: object properties: url: type: - string - 'null' label: type: string active: type: boolean required: - url - label - active path: type: - string - 'null' description: Base path for paginator generated URLs. per_page: type: integer description: Number of items shown per page. minimum: 0 to: type: - integer - 'null' description: Number of the last item in the slice. minimum: 1 total: type: integer description: Total number of items being paginated. minimum: 0 required: - current_page - from - last_page - links - path - per_page - to - total required: - data - links - meta '404': $ref: '#/components/responses/ModelNotFoundException' post: operationId: campaigns.items.tickets.store summary: Create a campaign ticket tags: - Campaign Tickets parameters: - name: campaign in: path required: true description: The campaign ID schema: type: integer requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StoreCampaignItemTicketRequest' responses: '200': description: '`CampaignItemTicketResource`' content: application/json: schema: $ref: '#/components/schemas/CampaignItemTicketResource' '422': $ref: '#/components/responses/ValidationException' '404': $ref: '#/components/responses/ModelNotFoundException' /v1/campaigns/{campaign}/items/tickets/{ticketId}: get: operationId: campaigns.items.tickets.show summary: Get a campaign ticket tags: - Campaign Tickets parameters: - name: campaign in: path required: true description: The campaign ID schema: type: integer - name: ticketId in: path required: true schema: type: integer responses: '200': description: '`CampaignItemTicketResource`' content: application/json: schema: $ref: '#/components/schemas/CampaignItemTicketResource' '404': $ref: '#/components/responses/ModelNotFoundException' components: responses: ValidationException: description: Validation error content: application/json: schema: type: object properties: message: type: string description: Errors overview. errors: type: object description: A detailed description of each field that failed validation. additionalProperties: type: array items: type: string required: - message - errors ModelNotFoundException: description: Not found content: application/json: schema: type: object properties: message: type: string description: Error overview. required: - message schemas: StoreCampaignItemTicketRequest: type: object properties: name: type: string maxLength: 255 price: type: number minimum: 0 total_quantity: type: - integer - 'null' minimum: 0 subtype: type: - string - 'null' enum: - physical - digital - hybrid maxLength: 255 active: type: - boolean - 'null' retail_price: type: - number - 'null' minimum: 0 description: type: - string - 'null' maxLength: 5000 bundle_only: type: - boolean - 'null' hide_remaining: type: - boolean - 'null' scope: type: - string - 'null' enum: - registrant - event maxLength: 255 bundles: type: - array - 'null' items: type: string custom_fields: type: - array - 'null' items: type: string pictures: type: - array - 'null' items: type: string required: - name - price title: StoreCampaignItemTicketRequest CampaignItemTicketResource: type: object properties: id: type: string campaign_id: type: string name: type: string description: type: string price: type: string total_quantity: type: string subtype: type: string active: type: string retail_price: type: string bundle_only: type: string hide_remaining: type: string scope: type: string bundles: type: string custom_fields: type: string pictures: type: string required: - id - campaign_id - name - description - price - total_quantity - subtype - active - retail_price - bundle_only - hide_remaining - scope - bundles - custom_fields - pictures title: CampaignItemTicketResource securitySchemes: http: type: http scheme: bearer x-source: https://givebutter.com/docs/api.json x-harvested: '2026-09-12'