> For the complete documentation index, see [llms.txt](https://docs.vomevolunteer.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vomevolunteer.com/resources/database.md).

# Database

The people in your organization, and how they are labelled. This mirrors the Database page in Vome.

* **Profiles** are the user records themselves, including every custom field your organization has added.
* **Profile Tags** are the labels profiles are grouped and filtered by.

A typical integration looks a profile up before writing anything, because most syncs are an update rather than a create.

```plaintext
GET  api/profiles/fields/          see what fields exist, including custom ones
GET  api/profiles/search/          find the profile you are about to write to
POST api/profiles/bulk-upsert/     create or update in one call
GET  api/profile-tags/             the tags available to apply
```

Upsert is usually the right write. It matches on email, so a nightly sync that sends the same people twice updates them rather than creating duplicates.
