> ## 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 components

> Define custom components, then create and manage their objects, notes, activities, linked records and workflow status.

A custom component is a record type you define, such as a service contract, whose objects belong to accounts and carry their own attributes, notes, activity log and workflow. This area has 39 endpoints covering component definitions, their instances (called objects on the `/components/{component_uuid}/objects` routes) and everything attached to an instance, and all seven SDKs call every one.

> [!WARNING]
>
> **Replacing an object's linked accounts or orders unlinks every record you leave out, and changing its workflow status runs the transition and its actions at once.**

## At a glance

| Endpoint | Method | Path | What it does |
| - | - | - | - |
| [List component definitions](https://exsited.mintlify.site/api-reference/custom-components/list-component-definitions.md) | GET | `/component` | Returns one page of the custom component definitions. |
| [Retrieve a component definition](https://exsited.mintlify.site/api-reference/custom-components/retrieve-a-component-definition.md) | GET | `/component/{component_uuid}` | Returns one component definition, under `component`. |
| [Create a component instance](https://exsited.mintlify.site/api-reference/custom-components/create-a-component-instance.md) | POST | `/component/{component_uuid}` | Creates an instance of a component and returns it under the component's name. |
| [Delete a component instance](https://exsited.mintlify.site/api-reference/custom-components/delete-a-component-instance.md) | DELETE | `/component/{component_uuid}/{component_object_id}` | Deletes a component instance and returns no body. |
| [Update a component instance](https://exsited.mintlify.site/api-reference/custom-components/update-a-component-instance.md) | PATCH | `/component/{component_uuid}/{component_object_id}` | Changes a component instance and returns it under the component's name. |
| [List component objects](https://exsited.mintlify.site/api-reference/custom-components/list-component-objects.md) | GET | `/components/{component_uuid}/objects` | Returns one page of a component's objects. |
| [Retrieve a component object](https://exsited.mintlify.site/api-reference/custom-components/retrieve-a-component-object.md) | GET | `/components/{component_uuid}/objects/{component_object_id}` | Returns one component object, under `custom_component_object`. |
| [List a component object's activity](https://exsited.mintlify.site/api-reference/custom-components/list-a-component-objects-activity.md) | GET | `/components/{component_uuid}/objects/{component_object_id}/activity` | Returns the activity log of a component object. |
| [List a component object's custom objects](https://exsited.mintlify.site/api-reference/custom-components/list-a-component-objects-custom-objects.md) | GET | `/components/{component_uuid}/objects/{component_object_id}/custom_objects` | Returns one page of the custom objects linked to a component object. |
| [Retrieve a component object's PDF](https://exsited.mintlify.site/api-reference/custom-components/retrieve-a-component-objects-pdf.md) | GET | `/components/{component_uuid}/objects/{component_object_id}/pdf` | Returns the PDF details of a component object. |
| [Create a component definition](https://exsited.mintlify.site/api-reference/custom-components/create-a-component-definition.md) | POST | `/component` | Creates a component definition and returns it, under `component`. |
| [Update a component definition](https://exsited.mintlify.site/api-reference/custom-components/update-a-component-definition.md) | PATCH | `/component/{component_uuid}` | Changes a component definition and returns it, under `component`. |
| [Create a component object](https://exsited.mintlify.site/api-reference/custom-components/create-a-component-object.md) | POST | `/components/{component_uuid}/objects` | Creates an object in a component and returns it, under `custom_component_object`. |
| [Update a component object](https://exsited.mintlify.site/api-reference/custom-components/update-a-component-object.md) | PATCH | `/components/{component_uuid}/objects/{component_object_id}` | Changes a component object and returns it, under `custom_component_object`. |
| [Delete a component object](https://exsited.mintlify.site/api-reference/custom-components/delete-a-component-object.md) | DELETE | `/components/{component_uuid}/objects/{component_object_id}` | Deletes a component object and returns no body. |
| [Log an activity on a component object](https://exsited.mintlify.site/api-reference/custom-components/log-an-activity-on-a-component-object.md) | POST | `/components/{component_uuid}/objects/{component_object_id}/activity` | Logs an activity on a component object and returns it, under `custom_component_object_activity`. |
| [Retrieve a component object's activity](https://exsited.mintlify.site/api-reference/custom-components/retrieve-a-component-objects-activity.md) | GET | `/components/{component_uuid}/objects/{component_object_id}/activity/{activity_id}` | Returns one activity of a component object, under `custom_component_object_activity`. |
| [List a component object's workflow milestones](https://exsited.mintlify.site/api-reference/custom-components/list-a-component-objects-workflow-milestones.md) | GET | `/components/{component_uuid}/objects/{component_object_id}/milestones` | Returns one page of a component object's workflow milestones. |
| [Retrieve a component object's workflow milestone](https://exsited.mintlify.site/api-reference/custom-components/retrieve-a-component-objects-workflow-milestone.md) | GET | `/components/{component_uuid}/objects/{component_object_id}/milestones/{milestone_id}` | Returns one workflow milestone of a component object. |
| [List a component object's workflow history](https://exsited.mintlify.site/api-reference/custom-components/list-a-component-objects-workflow-history.md) | GET | `/components/{component_uuid}/objects/{component_object_id}/history` | Returns one page of a component object's workflow history. |
| [Retrieve a component object's workflow history entry](https://exsited.mintlify.site/api-reference/custom-components/retrieve-a-component-objects-workflow-history-entry.md) | GET | `/components/{component_uuid}/objects/{component_object_id}/history/{history_id}` | Returns one workflow history entry of a component object. |
| [List a component object's notes](https://exsited.mintlify.site/api-reference/custom-components/list-a-component-objects-notes.md) | GET | `/components/{component_uuid}/objects/{component_object_id}/notes` | Returns one page of the notes on a component object. |
| [Retrieve a component object's note](https://exsited.mintlify.site/api-reference/custom-components/retrieve-a-component-objects-note.md) | GET | `/components/{component_uuid}/objects/{component_object_id}/notes/{note_id}` | Returns one note on a component object, under `note`. |
| [List the files of a component object's note](https://exsited.mintlify.site/api-reference/custom-components/list-the-files-of-a-component-objects-note.md) | GET | `/components/{component_uuid}/objects/{component_object_id}/notes/{note_id}/files` | Returns the files attached to a note on a component object. |
| [Retrieve a file of a component object's note](https://exsited.mintlify.site/api-reference/custom-components/retrieve-a-file-of-a-component-objects-note.md) | GET | `/components/{component_uuid}/objects/{component_object_id}/notes/{note_id}/files/{file_id}` | Returns the details of one file attached to a note, under `file`. |
| [Create a component object note](https://exsited.mintlify.site/api-reference/custom-components/create-a-component-object-note.md) | POST | `/components/{component_uuid}/objects/{component_object_id}/notes` | Adds a note, with optional files, to a component object and returns it, under `note`. |
| [Update a component object note](https://exsited.mintlify.site/api-reference/custom-components/update-a-component-object-note.md) | PATCH | `/components/{component_uuid}/objects/{component_object_id}/notes/{note_id}` | Changes a note's text, with optional files, and returns the note, under `note`. |
| [Delete a component object note](https://exsited.mintlify.site/api-reference/custom-components/delete-a-component-object-note.md) | DELETE | `/components/{component_uuid}/objects/{component_object_id}/notes/{note_id}` | Deletes a note from a component object and returns no body. |
| [Delete a file from a component object's note](https://exsited.mintlify.site/api-reference/custom-components/delete-a-file-from-a-component-objects-note.md) | DELETE | `/components/{component_uuid}/objects/{component_object_id}/notes/{note_id}/files/{file_id}` | Deletes one file from a note and returns no body. |
| [Retrieve a component object's custom object](https://exsited.mintlify.site/api-reference/custom-components/retrieve-a-component-objects-custom-object.md) | GET | `/components/{component_uuid}/objects/{component_object_id}/custom_objects/{custom_object_id}` | Returns one custom object schema of a component object, with its instances. |
| [Create a custom object instance on a component object](https://exsited.mintlify.site/api-reference/custom-components/create-a-custom-object-instance-on-a-component-object.md) | POST | `/components/{component_uuid}/objects/{component_object_id}/custom_objects/{custom_object_id}` | Creates an instance of a custom object on a component object. |
| [Retrieve a custom object instance on a component object](https://exsited.mintlify.site/api-reference/custom-components/retrieve-a-custom-object-instance-on-a-component-object.md) | GET | `/components/{component_uuid}/objects/{component_object_id}/custom_objects/{custom_object_id}/instances/{instance_id}` | Returns one custom object instance on a component object. |
| [Update a custom object instance on a component object](https://exsited.mintlify.site/api-reference/custom-components/update-a-custom-object-instance-on-a-component-object.md) | PATCH | `/components/{component_uuid}/objects/{component_object_id}/custom_objects/{custom_object_id}/instances/{instance_id}` | Changes a custom object instance on a component object. |
| [Delete a custom object instance on a component object](https://exsited.mintlify.site/api-reference/custom-components/delete-a-custom-object-instance-on-a-component-object.md) | DELETE | `/components/{component_uuid}/objects/{component_object_id}/custom_objects/{custom_object_id}/instances/{instance_id}` | Deletes a custom object instance on a component object and returns no body. |
| [Link accounts or orders to a component object](https://exsited.mintlify.site/api-reference/custom-components/link-accounts-or-orders-to-a-component-object.md) | POST | `/components/{component_uuid}/objects/{component_object_id}/link_domains` | Links accounts or orders to a component object and returns the object. |
| [Replace the accounts or orders linked to a component object](https://exsited.mintlify.site/api-reference/custom-components/replace-the-accounts-or-orders-linked-to-a-component-object.md) | PATCH | `/components/{component_uuid}/objects/{component_object_id}/link_domains` | Replaces the set of accounts or orders linked to a component object and returns the object. |
| [Unlink accounts or orders from a component object](https://exsited.mintlify.site/api-reference/custom-components/unlink-accounts-or-orders-from-a-component-object.md) | POST | `/components/{component_uuid}/objects/{component_object_id}/unlink_domains` | Unlinks accounts or orders from a component object and returns the object. |
| [Change a component object's workflow status](https://exsited.mintlify.site/api-reference/custom-components/change-a-component-objects-workflow-status.md) | POST | `/components/{component_uuid}/objects/{component_object_id}/change_status` | Moves a component object to another workflow status and returns the object. |
| [Delete a component definition](https://exsited.mintlify.site/api-reference/custom-components/delete-a-component-definition.md) | DELETE | `/component/{component_uuid}` | Deletes a component definition and returns no body. |

## 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

* **`component_uuid` takes two kinds of value.** Three instance calls take the component's dashed uuid: `POST /component/{component_uuid}`, and `PATCH` and `DELETE` on `/component/{component_uuid}/{component_object_id}`. Every other call, including reading, updating and deleting a definition on `/component/{component_uuid}`, takes the definition's `cmp_` id.
* **Instances have two sets of routes.** `/component/{component_uuid}/...` takes the dashed uuid and sends and returns the instance under the component's `name`, such as `service_contract`. `/components/{component_uuid}/objects/...` takes the `cmp_` id and uses `custom_component_object`, where `parents` names the record that owns the instance.
* **Notes are sent as multipart forms, not JSON.** Put the text in the `note` field and any files beside it; a file's `uuid` in `attachments` is the `file_id` for the file calls.
* **A custom object instance is created on the custom object's own path.** The create has no `instances` segment and sends `custom_object_instances`; the read, update and delete use `instances/{instance_id}`, and the update sends `custom_object_instance`.
* **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`.


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