Skip to content

Custom Field API - Read

Use the read endpoints to retrieve custom field definitions for your account. You can retrieve all fields at once or look up a single field by its ID.


Method URL Description
GET https://e1.envoke.com/v2/customfields Return a list of custom fields.
GET https://e1.envoke.com/v2/customfields/{ID} Return a single custom field.

Authentication is via HTTP Basic Auth using your API ID and API Key.


GET https://e1.envoke.com/v2/customfields

Returns a JSON array of all contact-scoped custom fields for your account, sorted alphabetically by name by default. Supports filtering, sorting, pagination, and field selection.

Parameter Type Default Description
limit integer 10 Maximum number of results to return. Hard cap is 100 unless ?fields= or ?result_type=kvp is also set (see note below).
skip integer 0 Number of records to skip. Use with limit to paginate through results.
fields string (all) Comma-separated list of fields to include in each result object. See note below about limit behaviour.
result_type string (array) Set to kvp to receive results as a key-value object ({ "id": "name" }) instead of an array. See note below about limit behaviour.
filter[id] string — Filter by custom field ID (exact match).
filter[name] string — Filter by field name (exact match).
filter[field_type] string — Filter by field type (exact match). Values: text, note, date, url.
filter[description] string — Filter by description (exact match).
sort[name] string — Sort by field name. Value: asc or desc.
sort[field_type] string — Sort by field type. Value: asc or desc.

Note — limit behaviour with ?fields= and ?result_type=kvp: When either of these parameters is present, the request is treated as a “shaped” response. In this mode the default limit increases to 10,000 (returning all records if no limit is specified) and an explicit ?limit= value above 100 is honoured as-is. This is intentional so that callers building dropdowns or full exports do not need to paginate.

A JSON array of custom field objects. Returns an empty array ([]) if no custom fields have been created.

[
{
"id": "1",
"name": "phone_number",
"description": "Customer's mobile phone number",
"field_type": "text"
},
{
"id": "2",
"name": "birthday",
"description": "",
"field_type": "date"
}
]

GET https://e1.envoke.com/v2/customfields/{ID}

Returns a single custom field object. Replace {ID} with the Envoke custom field ID.

{
"id": "1",
"name": "phone_number",
"description": "Customer's mobile phone number",
"field_type": "text"
}

If the ID is not found, the API returns an empty array ([]) rather than an error object.


Terminal window
curl -gs -u "$API_ID:$API_KEY" \
"https://e1.envoke.com/v2/customfields"

Return the second page of results (10 per page)

Section titled “Return the second page of results (10 per page)”
Terminal window
curl -gs -u "$API_ID:$API_KEY" \
"https://e1.envoke.com/v2/customfields?limit=10&skip=10"
Terminal window
curl -gs -u "$API_ID:$API_KEY" \
"https://e1.envoke.com/v2/customfields?filter%5Bfield_type%5D=text"
Terminal window
curl -gs -u "$API_ID:$API_KEY" \
"https://e1.envoke.com/v2/customfields?sort%5Bname%5D=asc"
Terminal window
curl -gs -u "$API_ID:$API_KEY" \
"https://e1.envoke.com/v2/customfields?sort%5Bname%5D=desc"
Terminal window
curl -gs -u "$API_ID:$API_KEY" \
"https://e1.envoke.com/v2/customfields?sort%5Bfield_type%5D=asc"
Terminal window
curl -gs -u "$API_ID:$API_KEY" \
"https://e1.envoke.com/v2/customfields?fields=id,name,field_type"

Response:

[
{ "id": "1", "name": "phone_number", "field_type": "text" },
{ "id": "2", "name": "birthday", "field_type": "date" }
]

Use result_type=kvp to get a flat object mapping each field’s ID to its name. This is useful for populating UI dropdowns.

Terminal window
curl -gs -u "$API_ID:$API_KEY" \
"https://e1.envoke.com/v2/customfields?result_type=kvp"

Response:

{
"1": "phone_number",
"2": "birthday"
}
Terminal window
curl -gs -u "$API_ID:$API_KEY" \
"https://e1.envoke.com/v2/customfields/1"

Note: The curl examples above are formatted for readability. All requests must use properly encoded URLs.

Full reference, OpenAPI description, and Postman collection: developers.envoke.com.