> ## Documentation Index
> Fetch the complete documentation index at: https://exsited.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom attributes

> List, create, read, update and delete the custom attributes that add your own fields to Exsited records.

Custom attributes are fields you define yourself, such as a text, number or dropdown value, and attach to records like accounts. This area has 5 endpoints to list, create, read, update and delete them, and all seven SDKs call every one.

## At a glance

| Endpoint | Method | Path | What it does |
| - | - | - | - |
| [List custom attributes](https://exsited.mintlify.site/api-reference/custom-attributes/list-custom-attributes.md) | GET | `/custom_attributes` | Returns one page of the custom attributes you have defined. |
| [Create a custom attribute](https://exsited.mintlify.site/api-reference/custom-attributes/create-a-custom-attribute.md) | POST | `/custom_attributes` | Creates a custom attribute and returns it, under `custom_attribute`. |
| [Delete a custom attribute](https://exsited.mintlify.site/api-reference/custom-attributes/delete-a-custom-attribute.md) | DELETE | `/custom_attributes/{custom_attribute_id}` | Deletes a custom attribute and returns no body. |
| [Retrieve a custom attribute](https://exsited.mintlify.site/api-reference/custom-attributes/retrieve-a-custom-attribute.md) | GET | `/custom_attributes/{custom_attribute_id}` | Returns one custom attribute, under `custom_attribute`. |
| [Update a custom attribute](https://exsited.mintlify.site/api-reference/custom-attributes/update-a-custom-attribute.md) | PATCH | `/custom_attributes/{custom_attribute_id}` | Changes a custom attribute's fields and returns the updated attribute. |

## Before you call

Register your API credentials once when your app starts, as shown in
[Authentication](https://exsited.mintlify.site/authentication.md). Every SDK sample on these pages then gets its client in one line.
With cURL, send the access token in an `Authorization` header: `Authorization: Bearer $ACCESS_TOKEN`.

## Things to know

* **Every write sends its fields under `custom_attribute`.** The create and update bodies wrap the fields in `custom_attribute`, and one attribute comes back under the same key.
* **A create sends `name`, `display_name` and `type`.** `type` takes values such as `STRING`, `NUMBER` and `DROPDOWN`.
* **Dropdown options go in as strings and come back as objects.** Send `options` as a list of strings; the response lists each option as an object with `name` and `display_order`.
* **A create returns `201` with two extra fields.** The created attribute also carries `uuid` and `activity_logs`.
* **Listings page by cursor.** Records sit under `data`; pass `pagination.next_cursor` as `cursor` to read the next page, and stop when `pagination.has_more` is `false`.
* **A delete returns `204` with no body.** Reading the attribute afterwards returns `404`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.