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

# Overview

> Define your own record types and store rows against them.

Custom objects let you model data ConveYour has no built-in type for — a vehicle, a certification, a job site — where the object defines the schema and records are the rows stored against it. This exists so your account can hold the things your process depends on without forcing them into contact fields.

## Custom Objects

A custom object is the schema blueprint for a record type you define — its fields, its relations to contacts and to other custom objects, and what a contact may do with its records in the learner portal. Fields can be Text, TextArea, Number, Checkbox, Date, DateTime, Select, Liquid, Image, List, ListSelect or Relation. It exists so you can model data ConveYour has no built-in type for: the object is the class definition, and records are the instances.

| Method | Endpoint | What it does |
| - | - | - |
| `GET` | [`/api/custom/objects`](/api-reference/custom-objects/list-custom-objects) | List custom objects |
| `GET` | [`/api/custom/objects/{id}`](/api-reference/custom-objects/get-a-custom-object) | Get a custom object |
| `POST` | [`/api/custom/objects`](/api-reference/custom-objects/create-a-custom-object) | Create a custom object |
| `PUT` | [`/api/custom/objects/{id}`](/api-reference/custom-objects/update-a-custom-object) | Update a custom object |
| `DELETE` | [`/api/custom/objects/{id}`](/api-reference/custom-objects/delete-a-custom-object) | Delete a custom object |
| `GET` | [`/api/custom/objects/schema`](/api-reference/custom-objects/get-custom-object-schema) | Get custom object schema |

## Custom Object Records

A record is a single row of a custom object, validated against that object's own schema layered over the shared defaults — which is why the field set varies from one organization and object to the next. They exist to hold the actual data the object describes: the object is the shape, records are the rows. Records can be upserted by `external_id`, so an outside system can keep them in sync without tracking ConveYour's own IDs, and changing one can sync values back onto related contact fields.

| Method | Endpoint | What it does |
| - | - | - |
| `GET` | [`/api/custom/records`](/api-reference/custom-object-records/list-records) | List records |
| `GET` | [`/api/custom/records/{id}`](/api-reference/custom-object-records/get-a-record) | Get a record |
| `POST` | [`/api/custom/records`](/api-reference/custom-object-records/create-a-record) | Create a record |
| `PUT` | [`/api/custom/records/{id}`](/api-reference/custom-object-records/update-a-record) | Update a record |
| `DELETE` | [`/api/custom/records/{id}`](/api-reference/custom-object-records/delete-a-record) | Delete a record |
| `POST` | [`/api/custom/records/add`](/api-reference/custom-object-records/bulk-create-records) | Bulk create records |


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