# Boom API > Public API for the Boom Customer Data Platform ## Docs - [List custom object types](https://docs.useboom.ai/api-reference/custom-objects/list-custom-object-types.md): List the custom object types (the kinds of objects, not the instances) defined for your organization. - [Upsert a custom object](https://docs.useboom.ai/api-reference/custom-objects/upsert-a-custom-object.md): Create or update a custom object by `(type, externalId)`. The `type` must already exist for your organization — an unknown type returns 404. Upsert is full-replace on `attributes`. - [Upsert a person](https://docs.useboom.ai/api-reference/people/upsert-a-person.md): Create or update a person by `externalId`. Only `externalId` is required; everything else is stored in the free-form `attributes` object. Upsert is full-replace on `attributes`. - [Link a person to a custom object](https://docs.useboom.ai/api-reference/relationships/link-a-person-to-a-custom-object.md): Create a relationship between a person and a custom object. Both must already exist — unknown type, missing person, or missing custom object each return 404. `role` is optional and defaults to `related`. - [Authentication](https://docs.useboom.ai/authentication.md): Authenticate with an organization API key. - [Introduction](https://docs.useboom.ai/introduction.md): Push customer data into the Boom CDP over a simple REST API. - [Quickstart](https://docs.useboom.ai/quickstart.md): Create a person, an object, and a relationship in four calls. - [Rate limits & errors](https://docs.useboom.ai/rate-limits-and-errors.md): Limits, headers, and the error shape used across all endpoints. ## OpenAPI Specs - [openapi](https://docs.useboom.ai/api-reference/openapi.json)