cURL
curl -X POST https://api.bodhveda.com/recipients/recipient_123/contacts \
-H "Authorization: Bearer bv_xxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"medium": "email",
"address": "alice@example.com",
"is_primary": true
}'import { Bodhveda } from "@bodhveda/js";
const bodhveda = new Bodhveda("bv_xxxxxxxxx");
const contact = await bodhveda.recipients.contacts.create("recipient_123", {
medium: "email",
address: "alice@example.com",
is_primary: true,
});import (
"context"
bodhveda "github.com/MudgalLabs/bodhveda/sdk/go"
)
ctx := context.Background()
client := bodhveda.NewClient("bv_xxxxxxxxx", nil)
contact, _ := client.Recipients.Contacts.Create(ctx, "recipient_123", &bodhveda.CreateRecipientContactRequest{
Medium: bodhveda.MediumEmail,
Address: "alice@example.com",
IsPrimary: true,
}){
"message": "Contact created",
"data": {
"id": 1,
"medium": "email",
"address": "alice@example.com",
"is_primary": true,
"verified_at": null,
"created_at": "2025-11-07T05:31:56Z",
"updated_at": "2025-11-07T05:31:56Z"
}
}{
"message": "Contact already exists"
}Contacts
Add contact
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.
POST
/
recipients
/
{recipient_id}
/
contacts
cURL
curl -X POST https://api.bodhveda.com/recipients/recipient_123/contacts \
-H "Authorization: Bearer bv_xxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"medium": "email",
"address": "alice@example.com",
"is_primary": true
}'import { Bodhveda } from "@bodhveda/js";
const bodhveda = new Bodhveda("bv_xxxxxxxxx");
const contact = await bodhveda.recipients.contacts.create("recipient_123", {
medium: "email",
address: "alice@example.com",
is_primary: true,
});import (
"context"
bodhveda "github.com/MudgalLabs/bodhveda/sdk/go"
)
ctx := context.Background()
client := bodhveda.NewClient("bv_xxxxxxxxx", nil)
contact, _ := client.Recipients.Contacts.Create(ctx, "recipient_123", &bodhveda.CreateRecipientContactRequest{
Medium: bodhveda.MediumEmail,
Address: "alice@example.com",
IsPrimary: true,
}){
"message": "Contact created",
"data": {
"id": 1,
"medium": "email",
"address": "alice@example.com",
"is_primary": true,
"verified_at": null,
"created_at": "2025-11-07T05:31:56Z",
"updated_at": "2025-11-07T05:31:56Z"
}
}{
"message": "Contact already exists"
}Register a contact address for a recipient. To send email to a recipient, add an
email contact and mark it is_primary.
💡 Sync this server-side (e.g. on your /me endpoint) so the address never rides a browser request.Authorizations
Bearer authentication header of the form Bearer bv_xxxxxxxxx, where bv_xxxxxxxxx is your API Key with Full access or Recipient acess scope.
Path Parameters
The unique identifier of the recipient.
Body
application/json
The delivery transport. Only email is exercised today.
Available options:
email, sms, web_push, mobile_push The contact address. For email it must contain @ and is stored lowercased.
Mark this as the primary contact for its medium. Only one primary is allowed per (recipient, medium).
Response
Contact created