Skip to content
Core API
Esc
↑↓navigate↵open⌘Jpreview
On this page

Sponsor categories

Organize sponsors into categories, control booth meetings and manage category order.

Release timing: This page includes changes planned for 9 October 2026. See the deployment note before using the updated operations or inputs.

Sponsor categories group sponsors within an event. Configure a separate SponsorCategory scope with the required Read or Write actions and event access.

Operations

Event-level resource. Every operation requires an enabled Core API scope for this resource and access to the URL context.

GETList records

/api/core/organizations/123/events/456/sponsor-categories

Permission: Read access. Readable fields, query filters and related objects must be selected in the scope.

curl --fail-with-body --silent --show-error --globoff --max-time 30 --request GET \
  --url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/sponsor-categories' \
  --header "Accept: application/vnd.brella.v4+json" \
  --header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}"

Response: 200 OK. A JSON:API data array and pagination metadata. Default page size 30; maximum 100.

View response structure
{
  "data": [
    {
      "id": "1201",
      "type": "sponsor-category"
    }
  ],
  "meta": {
    "total_count": 1,
    "total_pages": 1,
    "current_page": 1
  }
}

Illustrative, with no additional response fields selected.

Errors: 400 for invalid parameter shapes; 403 for a missing/expired token or disallowed operation; 404 when the URL context, record or a referenced record is inaccessible; 429 for rate limits. Troubleshooting and retry guidance.

GETGet a record

/api/core/organizations/123/events/456/sponsor-categories/1201

Permission: Read access. Readable fields, query filters and related objects must be selected in the scope.

curl --fail-with-body --silent --show-error --globoff --max-time 30 --request GET \
  --url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/sponsor-categories/1201' \
  --header "Accept: application/vnd.brella.v4+json" \
  --header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}"

Response: 200 OK. A JSON:API data object; fields depend on the token scope.

View response structure
{
  "data": {
    "id": "1201",
    "type": "sponsor-category"
  }
}

Illustrative, with no additional response fields selected.

Errors: 400 for invalid parameter shapes; 403 for a missing/expired token or disallowed operation; 404 when the URL context, record or a referenced record is inaccessible; 429 for rate limits. Troubleshooting and retry guidance.

POSTCreate a record

/api/core/organizations/123/events/456/sponsor-categories

Permission: Write access with the create action. Every request key must map to an allowed writable field; unconfigured inputs are ignored.

curl --fail-with-body --silent --show-error --globoff --max-time 30 --request POST \
  --url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/sponsor-categories' \
  --header "Accept: application/vnd.brella.v4+json" \
  --header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-raw '{
  "external_id": "CATEGORY-GOLD",
  "name": "Gold",
  "level": "large"
}'

Response: 201 Created. Save data.id for later requests. Attributes come from Write-response fields.

View response structure
{
  "data": {
    "id": "1201",
    "type": "sponsor-category"
  }
}

Illustrative, with no additional response fields selected.

Errors: 400 for invalid parameter shapes; 403 for a missing/expired token or disallowed operation; 404 when the URL context, record or a referenced record is inaccessible; 422 for validation or business rules; 429 for rate limits. Troubleshooting and retry guidance.

PATCHUpdate a record

/api/core/organizations/123/events/456/sponsor-categories/601

Permission: Write access with the update action. Every request key must map to an allowed writable field; unconfigured inputs are ignored.

curl --fail-with-body --silent --show-error --globoff --max-time 30 --request PATCH \
  --url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/sponsor-categories/601' \
  --header "Accept: application/vnd.brella.v4+json" \
  --header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-raw '{
  "name": "Gold partners"
}'

Response: 200 OK. Attributes come from Write-response fields; these can differ from readable fields.

View response structure
{
  "data": {
    "id": "1201",
    "type": "sponsor-category"
  }
}

Illustrative, with no additional response fields selected.

Errors: 400 for invalid parameter shapes; 403 for a missing/expired token or disallowed operation; 404 when the URL context, record or a referenced record is inaccessible; 422 for validation or business rules; 429 for rate limits. Troubleshooting and retry guidance.

PATCH changes supplied fields. Collection inputs can replace existing values; read the input notes before sending arrays.

DELETEDelete a record

/api/core/organizations/123/events/456/sponsor-categories/1201

Permission: Write access with the delete action.

curl --fail-with-body --silent --show-error --globoff --max-time 30 --request DELETE \
  --url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/sponsor-categories/1201' \
  --header "Accept: application/vnd.brella.v4+json" \
  --header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}"

Response: 204 No Content, with an empty response body.

Errors: 400 for invalid parameter shapes; 403 for a missing/expired token or disallowed operation; 404 when the URL context, record or a referenced record is inaccessible; 422 for validation or business rules; 429 for rate limits. Troubleshooting and retry guidance.

Deletion can remove related data or be refused by resource constraints. Read the resource notes and confirm the target before using this operation.

Path: events/{event_id}/sponsor-categories

Methods: GET collection/record, POST, PATCH, DELETE. Response type: sponsor-category.

Fields and filters

Browse 9 response fields

The scope chooses these response fields. id is always returned. Configuration names and response names can differ.

event-id
Scope field: event_id
external-id
Scope field: external_id
name
Scope field: name
level
Scope field: level
position
Scope field: position
allows-meet-at-booth
Scope field: allows_meet_at_booth
sponsors-count
Scope field: sponsors_count
created-at
Scope field: created_at
updated-at
Scope field: updated_at

Optional filters: external_id, name, level. There are no included associations. Enable the relevant query fields before relying on a filter.

GET .../sponsor-categories?external_id=CATEGORY-GOLD

Writing and side effects

Create requires name and level; level is large, medium or small. Names and external IDs have a 255-character limit. A non-blank external ID must be unique within the event; blank becomes null. POST is not an upsert. New categories are assigned to the event’s built-in sponsors page when that page exists.

position must be an integer within the signed 32-bit range. Values are normalized to the valid list insertion range starting at 1. Omit it to use normal placement on create or preserve position on update. Null is allowed on create and rejected with 422 on PATCH.

A change to allows_meet_at_booth cascades to every sponsor in the category, setting both its booth permission and use setting. Review that effect before updating it.

DELETE removes the category and its sponsors, using the normal sponsor deletion flow. Confirm the category ID and affected sponsors before granting or using the delete action. A failed deletion returns a validation error rather than a successful 204.

See complete category write inputs and examples.

5 inputs. Expand a field for its request type and update behavior. These are the example request keys; your administrator can configure aliases.

external_idScalar string or `null`
POST
Optional
PATCH
Optional

At most 255 characters; unique within the event when present. Blank becomes null; POST is not an upsert.

nameScalar string
POST
Required
PATCH
Optional

Non-empty category name, at most 255 characters.

levelScalar string
POST
Required
PATCH
Optional

One of large, medium or small. Configure the level mapping for create.

positionScalar number or `null`
POST
Optional; null uses normal list placement
PATCH
Optional; null rejected

Integer within the signed 32-bit range. Supplied values are clamped to the valid list insertion range, starting at 1. Omit on PATCH to keep the current position; null on PATCH returns 422.

allows_meet_at_boothScalar boolean
POST
Optional
PATCH
Optional

A change cascades to all sponsors in the category, setting both their booth permission and use setting.

Last updated on October 9, 2026