Skip to main content
For AI agents: a documentation index is available at https://docs.coverbase.com/llms.txt. This page is also available in markdown by appending .md to the URL.
A custom field (cbcfc_...) is a field your organization defines on top of Coverbase’s built-in ones: a risk exception owner, an internal tier, a review date. This API lets an integration discover which fields exist and read the values set on your records. Values are returned on vendors, services, and assessments. Use GET /v1/custom-fields first to learn the config_id, type, and allowed options behind each value. All endpoints are org-scoped to the API key. See API conventions for shared behavior. Definitions themselves are managed in the Coverbase dashboard. This API reads them, and reads or writes the values set against your records.

List custom field definitions

GET
GET /v1/custom-fields

Query parameters

string
Only return fields that apply to this object type. One of vendor, service, assessment, control, eval, contract, task, review, engagement. An unrecognized value returns 422.
boolean
Include fields your organization has disabled. Default false.

Example request

cURL

Example response

Response fields

string
The field’s config_id (cbcfc_...). This is the value that appears as config_id on each custom field value.
string
The display name your organization gave the field. Names can be renamed at any time, so match on id rather than field_name.
string
One of string, number, boolean, date, user, select, multiselect. Determines the shape of value wherever this field appears.
boolean
Whether the field is currently in use. Disabled fields are excluded unless you pass include_disabled=true, and their values never appear on records.
string[]
The object types this field can be set on.
object[]
For select and multiselect, the allowed label values (each with an optional color). Empty for every other type.

Where values appear

Set values are returned as a custom_fields array on these endpoints: Listing vendors leaves values out by default so paging stays cheap; pass include_custom_fields=true when you need them.
Create responses return an empty custom_fields array, since a record has no values at the moment it is created.

Example

cURL

Value types

value is typed by field_type: Resolve user IDs to names and emails through the Users API.

Set custom field values

POST
POST /v1/custom-fields/values
Sets one or more values on a single record. Only the fields you name change; anything already set and not listed is left alone. Writes are supported on the same records that return values: vendor, service, and assessment. A value can never be written somewhere it cannot be read back.

Body

string
required
vendor, service, or assessment.
string
required
The record to set values on. Must exist and belong to your organization, or the call returns 404.
object[]
required
One or more { "config_id": "cbcfc_...", "value": ... } entries. At least one is required, and a config_id may appear only once per request.
Note that you do not send field_type. The field’s own definition is authoritative, which is what stops a value being written into the wrong typed column.

Example request

cURL

Example response

The record’s full custom_fields array after the write:

Clearing a value

Send null to empty a field. The field then drops out of custom_fields entirely, since only set values are returned.

Validation

Every assignment in the request is checked before any of them is written, so a request naming one bad field changes nothing at all.
A write through this API behaves like a person editing the record in the dashboard: it takes precedence over values previously filled in by Coverbase’s automated extraction.

Behavior worth knowing

  • Only set values are returned. A record with nothing filled in returns an empty custom_fields array, and a field left blank on a record is omitted rather than returned with a null value.
  • Disabled and archived fields are hidden. Their values stay in Coverbase but never appear on API responses, so retiring a field cleanly removes it from your integration.
  • Match on config_id, not field_name. Display names are editable in the dashboard and change with no deploy.

Reading custom fields from an AI assistant

The Coverbase MCP server exposes the same data to AI assistants. Custom field values are already included in vendor, service, assessment, control, and engagement reads, and query_platform(kind="custom_fields") lists the definitions.