Create a custom ticket field with POST /api/v2/ticket_fields, specifying 'type' (e.g., text, dropdown, checkbox, integer), 'title', and for dropdowns a 'custom_field_options' array with 'name' and 'value' pairs.
Note the 'id' returned in the response — you will need it to add the field to a form and to set values on tickets.
List existing ticket forms with GET /api/v2/ticket_forms to find the form you want to update.
Update a ticket form's field list with PUT /api/v2/ticket_forms/{ticket_form_id}, supplying the complete 'ticket_field_ids' array (existing fields plus your new field ID) — omitting existing IDs removes them from the form.
Set a value for a custom field on a ticket with PUT /api/v2/tickets/{ticket_id} using the 'custom_fields' array in the ticket body: [{"id": field_id, "value": "..."}].
Verify the field appears correctly by retrieving the ticket with GET /api/v2/tickets/{ticket_id}?include=custom_fields.
Known gotchas
Dropdown field option 'value' must be unique within the field and cannot be changed after creation — plan your option values carefully before deploying to production.
Ticket forms are only available on Zendesk Suite and Suite Team and above — on Support-only plans the ticket_forms endpoint is unavailable.
When updating a ticket form's field list, you must supply ALL desired field IDs in the array; partial updates are not supported and omissions will remove those fields from the form.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp