Back to Help Home
Last updated: 2026-09-17

Public API Custom Fields Endpoint

This endpoint returns the custom fields configured on a brayv.ai account, so an external system can discover the exact keys, types, and options to send inside custom_fields on the Lead Submission API and the Contact Update API.

Endpoint

GET https://api.brayv.ai/v1/accounts/{account_id}/custom-fields
Authorization: Bearer {api_key}

Replace {account_id} with the brayv.ai account ID whose custom fields you need.

Authentication

Send the API key in the Authorization header:

Authorization: Bearer brayv_live_...

The same keys used for lead submission work here. A key is scoped to either one account or an organization that has access to the target account. Rate limits are shared with the other public endpoints, per key and per account.

Query Parameters

ParameterTypeDefaultNotes
include_inactivebooleanfalseAlso return custom fields that have been deactivated in brayv.ai. Deactivated fields are not accepted by the lead or contact endpoints.

Response

An array of custom fields, sorted by name.

[
  {
    "id": "lead_priority",
    "name": "Lead Priority",
    "field_type": "select",
    "options": ["Low", "Medium", "High"],
    "is_active": true
  },
  {
    "id": "preferred_service_date",
    "name": "Preferred Service Date",
    "field_type": "date",
    "options": null,
    "is_active": true
  },
  {
    "id": "service_type",
    "name": "Service Type",
    "field_type": "multiselect",
    "options": ["HVAC", "Plumbing", "Electrical"],
    "is_active": true
  }
]
FieldMeaning
idThe key to use inside custom_fields. Generated from the field's name when it was created and does not change if the field is renamed.
nameThe label shown in brayv.ai.
field_typeOne of text, number, date, select, radio, multiselect, checkbox.
optionsThe configured choices for select, radio, and multiselect fields. null for other types.
is_activeWhether the field is currently in use.

Using the Result

Send values keyed by id:

{
  "custom_fields": {
    "lead_priority": "High",
    "preferred_service_date": "2026-10-02",
    "service_type": ["HVAC", "Plumbing"]
  }
}

Expected values by field_type:

field_typeExpected valueBehavior
textstringSaved as submitted.
numbernumber or numeric stringSaved if numeric, otherwise ignored.
dateparseable date stringSaved as YYYY-MM-DD, otherwise ignored.
selectstring matching one of optionsCase-insensitive match. Non-matching values ignored.
radiostring matching one of optionsCase-insensitive match. Non-matching values ignored.
multiselectstring or string[] matching optionsMatching options are saved. Non-matching options ignored.
checkboxboolean-like valueAccepts true, false, 1, 0, yes, no, y, n, on, off, t, f.

A custom field value that does not validate never fails the request. It is dropped and reported in that request's ignored_fields.

Custom field IDs are stable, so it is safe to fetch this list once during setup and cache it. Fetch it again when the account adds a field or changes a field's options.

Errors

StatusWhen
401Missing or invalid API key.
403Key is not authorized for this account.
404Account not found.
429Rate limit exceeded for this key and account.

This endpoint is read-only and is available while an account is paused for a payment issue or inactive, so an integration can still look up field IDs while billing is being sorted out.

Example cURL

curl "https://api.brayv.ai/v1/accounts/ACCOUNT_ID/custom-fields" \
  -H "Authorization: Bearer brayv_live_YOUR_API_KEY"

With deactivated fields included:

curl "https://api.brayv.ai/v1/accounts/ACCOUNT_ID/custom-fields?include_inactive=true" \
  -H "Authorization: Bearer brayv_live_YOUR_API_KEY"