# Bodhveda ## Docs - [Introduction](https://docs.bodhveda.com/docs/introduction.md): Bodhveda helps you add in-app notifications to your product in minutes, not weeks. - [Quickstart](https://docs.bodhveda.com/docs/quickstart.md): Send your first notification in minutes using Bodhveda API or Console. - [SDKs](https://docs.bodhveda.com/docs/sdks.md): Explore the available Bodhveda SDKs for different langauges and frameworks. - [Recipients](https://docs.bodhveda.com/docs/concepts/recipients.md): Understand recipients in Bodhveda - [Targets](https://docs.bodhveda.com/docs/concepts/targets.md): Learn about notification targets in Bodhveda - [Preferences](https://docs.bodhveda.com/docs/concepts/preferences.md): How notification preferences work - [Notifications](https://docs.bodhveda.com/docs/concepts/notifications.md): What are notifications in Bodhveda? - [Mediums](https://docs.bodhveda.com/docs/concepts/mediums.md): In-app and email delivery in Bodhveda - [Unsubscribe](https://docs.bodhveda.com/docs/concepts/unsubscribe.md): How recipients opt out of email, and what you have to build - [Introduction](https://docs.bodhveda.com/api-reference/introduction.md): Send notifications, manage recipients, their notifications and preferences. - [Send notification](https://docs.bodhveda.com/api-reference/endpoint/notifications/send-notification.md): Start sending notifications through Bodhveda API. - [Retrieve notification](https://docs.bodhveda.com/api-reference/endpoint/notifications/get-notification.md): Retrieve a single notification by its id. - [Create recipient](https://docs.bodhveda.com/api-reference/endpoint/recipients/create-recipient.md): Create a new recipient. - [Batch create recipients](https://docs.bodhveda.com/api-reference/endpoint/recipients/batch-create-recipients.md): Create up to 100 recipients at once. - [Retrieve recipient](https://docs.bodhveda.com/api-reference/endpoint/recipients/retrieve-recipient.md): Retrieve a recipient. - [Update recipient](https://docs.bodhveda.com/api-reference/endpoint/recipients/update-recipient.md): Update the name of a recipient. - [Delete recipient](https://docs.bodhveda.com/api-reference/endpoint/recipients/delete-recipient.md): Remove an existing recipient. - [List notifications](https://docs.bodhveda.com/api-reference/endpoint/recipients/notifications/list-notifications.md): Retrieve a paginated list of notifications for a recipient, ordered by most recent first. - [Unread count](https://docs.bodhveda.com/api-reference/endpoint/recipients/notifications/unread-count.md): Returns the number of unread notifications for a recipient. - [Update notifications state](https://docs.bodhveda.com/api-reference/endpoint/recipients/notifications/update-state.md): Updates the state of one or more notifications for the specified recipient. - [Delete notifications](https://docs.bodhveda.com/api-reference/endpoint/recipients/notifications/delete.md): Deletes one or more notifications for the specified recipient. - [List preferences](https://docs.bodhveda.com/api-reference/endpoint/recipients/preferences/list-preferences.md): Every `(target, medium)` known for this recipient, each with the state a send would **actually** act on. - [Set preference](https://docs.bodhveda.com/api-reference/endpoint/recipients/preferences/set-preference.md): Set a recipient's subscription state for a specific target. - [Check preference](https://docs.bodhveda.com/api-reference/endpoint/recipients/preferences/check-preference.md): Resolve a single `(target, medium)` for a recipient: whether a send would **actually** deliver. - [List contacts](https://docs.bodhveda.com/api-reference/endpoint/recipients/contacts/list-contacts.md): List all of a recipient's per-medium contact addresses. - [Add contact](https://docs.bodhveda.com/api-reference/endpoint/recipients/contacts/create-contact.md): Register a per-medium contact address for a recipient. Email needs a **primary** email contact to receive email. A duplicate `(medium, address)`, or a second primary for the same `(recipient, medium)`, returns `409`. - [Set the primary contact](https://docs.bodhveda.com/api-reference/endpoint/recipients/contacts/set-primary-contact.md): Idempotently ensure an address is the recipient's **primary** contact for a medium — create it if absent, update the existing primary in place if the address differs (which resets `verified_at`), or no-op if it already matches. Returns the resulting primary contact (`200`) either way, so a "keep the… - [Update contact](https://docs.bodhveda.com/api-reference/endpoint/recipients/contacts/update-contact.md): Update a contact's address and/or primary flag. Provide at least one field. Changing the address resets the contact's verification. - [Delete contact](https://docs.bodhveda.com/api-reference/endpoint/recipients/contacts/delete-contact.md): Delete a recipient's contact. Requires an API key with **Full access** scope. - [List the catalog](https://docs.bodhveda.com/api-reference/endpoint/preferences/list-project-preferences.md): List every entry in the project's preference **catalog**. The project is taken from the API key. Requires a `Full access` key. - [Create a catalog entry](https://docs.bodhveda.com/api-reference/endpoint/preferences/create-project-preference.md): Create a single catalog entry. **Strict**: an entry for the same `(channel, topic, event, medium)` returns `409`. Use `PATCH /preferences/{preference_id}` to change an existing entry, or `PUT /preferences` to set a whole catalog. - [Set up the catalog (bulk)](https://docs.bodhveda.com/api-reference/endpoint/preferences/upsert-project-preferences.md): Declaratively merge a whole catalog in one call — the primitive for a one-off "set up my project's preferences" script. Each item is upserted by its natural key (`channel, topic, event, medium`): new entries are inserted, existing ones have their label and default updated. Entries **not** in the arr… - [Get a catalog entry](https://docs.bodhveda.com/api-reference/endpoint/preferences/get-project-preference.md): Retrieve a single catalog entry by ID. - [Update a catalog entry](https://docs.bodhveda.com/api-reference/endpoint/preferences/update-project-preference.md): Update a catalog entry's label and default. The natural key (`channel`/`topic`/`event`/`medium`) is immutable. - [Delete a catalog entry](https://docs.bodhveda.com/api-reference/endpoint/preferences/delete-project-preference.md): Delete a catalog entry, un-cataloging the `(target, medium)`. ## OpenAPI Specs - [openapi](https://docs.bodhveda.com/api-reference/openapi.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.