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

# Quickstart

> Send your first notification in minutes using Bodhveda API or Console.

## Prerequisites

To follow this guide with the API, you’ll need to:

* Go to [Bodhveda Console](https://console.bodhveda.com).
* Create a **new project**.
* Click on **API Keys** in the sidebar.
* Click on **Create API Key** and generate an API key with `Full access` scope.

## Send direct notification with API

Use the [send notification](/api-reference/endpoint/notifications/send-notification) API to send a direct notification to a [recipient](/docs/concepts/recipients). If the recipient doesn't exist, Bodhveda creates it automatically when sending a direct notification.

```bash theme={null}
curl -X POST https://api.bodhveda.com/notifications/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "recipient_id": "recipient_123",
    "payload": { "title": "Welcome!", "message": "Thanks for joining." }
  }'
```

Then you can use the [list recipient's notifications](/api-reference/endpoint/recipients/notifications/list-notifications) API and you will see the notification you just sent earlier.

<Note>
  This send carries no `target`, and adding one needs no setup either — targets work
  out of the box. Targets are how you get per-notification
  [preferences](/docs/concepts/preferences) and analytics, so they are the next thing
  to reach for.

  Cataloging a target — creating a project preference for it — is what puts it on
  your recipients' settings screen so they can mute it. Until you do, the
  notification still sends, but nobody can switch it off. Once your catalog is
  stable you can turn on **strict targets** in your project settings, and an
  uncataloged target becomes a `400` instead of a silent gap.

  A `topic: any` entry covers every concrete topic beneath it, so one row like
  `post/any/comment` is enough for `post/123/comment`, `post/456/comment`, and the
  rest — no catalog write per post.
</Note>

```bash theme={null}
curl -X GET "https://api.bodhveda.com/recipients/recipient_123/notifications" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json theme={null}
[
    {
        "id": 42069,
        "recipient_id": "recipient_123",
        "payload": {
            "title": "Welcome!",
            "message": "Thanks for joining."
        }
        // ... other fields.
    }
]
```

## Send broadcast notification with API

Broadcast to multiple recipients. This requires some setup:

* At least one [recipient](/docs/concepts/recipients) must exist.
* At least one project [preference](/docs/concepts/preferences) must exist.

##### **Create a recipient**

Use [create recipient](/api-reference/endpoint/recipients/create-recipient) API to create a recipient in your project.

```bash theme={null}
curl -X POST https://api.bodhveda.com/recipients \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"recipient_id": "user@example.com", "name": "Jane Doe"}'
```

##### **Create a project preference**

Before broadcasting, you must add at least one project preference to define a target (channel, topic, event):

1. Go to [Bodhveda Console](https://console.bodhveda.com).
2. Click on **Preferences** in the sidebar.
3. Click on **Create Preference**.
4. Define a target by mentioning the channel, topic, and event, give it a name (and an optional description), and set default to enabled.
5. Save the preference.

This way all recipients are by default subscribed to this target in your project.

##### **Send broadcast notification**

Use the [send notification](/api-reference/endpoint/notifications/send-notification) API to send a broadcast notification to a [target](/docs/concepts/targets) that was used to create the project preference.

```bash theme={null}
curl -X POST https://api.bodhveda.com/notifications/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "target": { "channel": "announcements", "topic": "product", "event": "new_feature" },
    "payload": { "title": "Big News!", "message": "We just launched a new feature." }
  }'
```

<Note>
  No <code>recipient\_id</code> makes this notification turn into a broadcast.
  All recipients subscribed to this target will receive this notification.
</Note>

## Send notification from Console

You can also send notifications from the [Bodhveda Console](https://console.bodhveda.com):

1. Go to **Notifications** tab.
2. Click on **Send Notification** to send a direct notification to a recipient or a broadcast to subscribed recipients.

##### **Next Steps**

<Columns cols={2}>
  <Card title="API Reference" icon="terminal" href="/api-reference/introduction">
    Explore the API in depth.
  </Card>

  <Card title="Concepts" icon="book" href="/docs/concepts/recipients">
    Explore concepts that make up Bodhveda.
  </Card>
</Columns>


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