API Reference

Most tasks are easier through the CLI or an SDK — start with Core Concepts for the common flows. This page is the complete endpoint listing for when you need the raw API.

Authenticate every request with a bearer key:

Authorization: Bearer ravi_id_...     # identity-scoped, for agent runtime calls
Authorization: Bearer ravi_mgmt_...   # account-level, for setup and management

Create one from the dashboard, with ravi auth login, or via POST /api/auth/keys/. Agents can also read this page as plain text at https://docs.ravi.app/api/reference.txt, or start from https://docs.ravi.app/llms.txt.

Every endpoint below, grouped by resource, with a ready-to-run example in the Ravi CLI, Python, and TypeScript. For exact request and response fields, download the OpenAPI document.

Get an API key

Contacts

GET /api/contacts/
Parameters
  • identity query
  • source query
ravi contacts list
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
contacts = identity.contacts.list()
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const contacts = await identity.contacts.list();
POST /api/contacts/
ravi contacts create --email alice@example.com --display-name "Alice"
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
contact = identity.contacts.create(email="alice@example.com", display_name="Alice")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const contact = await identity.contacts.create({ email: "alice@example.com", display_name: "Alice" });
GET /api/contacts/find/
Parameters
  • email query
  • identity query
  • phone_number query
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
contact = identity.contacts.find(email="alice@example.com")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const contact = await identity.contacts.find({ email: "alice@example.com" });
GET /api/contacts/{uuid}/
Parameters
  • uuid path · required
ravi contacts get <contact-uuid>
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
contact = identity.contacts.get("<contact-uuid>")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const contact = await identity.contacts.get("<contact-uuid>");
PATCH /api/contacts/{uuid}/
Parameters
  • uuid path · required
ravi contacts update <contact-uuid> --nickname "Ally"
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
contact = identity.contacts.update("<contact-uuid>", nickname="Ally")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const contact = await identity.contacts.update("<contact-uuid>", { nickname: "Ally" });
DELETE /api/contacts/{uuid}/
Parameters
  • uuid path · required
ravi contacts delete <contact-uuid>
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
identity.contacts.delete("<contact-uuid>")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
await identity.contacts.delete("<contact-uuid>");

Email

GET /api/domains/

List all available email domains — platform domains and the authenticated user's custom (verified or pending) domains.

ravi domains list
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

domains = ravi.domains.list()
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const domains = await ravi.domains.list();
GET /api/email/

List all email inboxes for the authenticated user, newest first. Scoped to the current identity when an identity-scoped token is used.

POST /api/email/

Create a new email inbox. Optionally provide a desired email address; if omitted, one is generated automatically. Requires an active subscription (returns 402 otherwise). Returns 409 if the requested email address is already taken.

GET /api/email/check-availability/

Check whether a given email address is available for inbox creation. Pass the email as a query parameter. Returns {available: true/false, email: ...}.

GET /api/email/{id}/

Retrieve a single email inbox by ID, including its generated email address.

Parameters
  • id path · required

Identities

GET /api/identities/

Create, list, retrieve, and update identities for the authenticated user.

ravi identity list
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identities = ravi.identities.list()
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identities = await ravi.identities.list();
POST /api/identities/

Create, list, retrieve, and update identities for the authenticated user.

ravi identity create --name "shopping-agent" --email-identifier shopping --provision-phone
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.create(
    name="shopping-agent",
    email_identifier="shopping",  # inbox local part; omit to auto-generate
    provision_phone=True,         # also give it a phone number
)
print(identity.email.address, identity.phone.number)
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.create({
  name: "shopping-agent",
  email_identifier: "shopping", // inbox local part; omit to auto-generate
  provision_phone: true,        // also give it a phone number
});
console.log(identity.email.address, identity.phone?.number);
GET /api/identities/{uuid}/

Create, list, retrieve, and update identities for the authenticated user.

Parameters
  • uuid path · required
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
PUT /api/identities/{uuid}/

Create, list, retrieve, and update identities for the authenticated user.

Parameters
  • uuid path · required
PATCH /api/identities/{uuid}/

Create, list, retrieve, and update identities for the authenticated user.

Parameters
  • uuid path · required
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.update("<identity-uuid>", name="renamed-agent")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.update("<identity-uuid>", { name: "renamed-agent" });
POST /api/identities/{uuid}/provision-phone/

Provision a new phone number and link it to the identity. Optionally specify country_code (defaults to US). Returns 409 if the identity already has a phone number. Returns 503 if phone provisioning is temporarily unavailable.

Parameters
  • uuid path · required
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.provision_phone("<identity-uuid>")
print(identity.phone.number)
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.provisionPhone("<identity-uuid>");
console.log(identity.phone?.number);
GET /api/identities/{uuid}/voice-agent/

Create or update the response URL used for live voice-agent calls.

Parameters
  • uuid path · required
PUT /api/identities/{uuid}/voice-agent/

Create or update the response URL used for live voice-agent calls.

Parameters
  • uuid path · required
PATCH /api/identities/{uuid}/voice-agent/

Create or update the response URL used for live voice-agent calls.

Parameters
  • uuid path · required

Inbox

GET /api/email-inbox/

List email threads grouped by thread_id, newest first. Each thread includes message count, unread count, subject, preview, and attachment names. Filterable by has_unread and inbox.

ravi inbox email --unread
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
threads = identity.email.threads()
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const threads = await identity.email.threads();
GET /api/email-inbox/{id}/

Retrieve a single email thread by thread_id, returning all messages in chronological order. Returns 404 if the thread is not found.

Parameters
  • id path · required
GET /api/sms-inbox/

List SMS conversations grouped by sender, newest first. Each conversation includes message count, unread count, preview, and phone number. Filterable by has_unread, phone, and identity.

Parameters
  • identity query
ravi inbox sms --unread
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
conversations = identity.phone.conversations()
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const conversations = await identity.phone?.conversations();
GET /api/sms-inbox/{id}/

Retrieve a single SMS conversation by conversation_id ({phone_id}_{from_number}). Returns all messages in chronological order. Returns 400 for an invalid conversation ID format, 404 if not found.

Parameters
  • id path · required

Messages

GET /api/email-messages/

List email messages for the authenticated user, sorted oldest-first. Designed for cursor-based polling: pass created_after (ISO 8601 datetime) to fetch only messages newer than the cursor. Also filterable by direction (incoming/outgoing), is_read, thread_id, and from_email. Returns paginated results with limit/offset pagination (default limit: 50, max: 200).

Parameters
  • created_after query
  • direction query
  • from_email query
  • is_read query
  • limit query
  • offset query
  • thread_id query
ravi message email --unread
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
inbox = identity.email.inbox(unread=True)
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const inbox = await identity.email.inbox({ unread: true });
POST /api/email-messages/compose/

Compose and send a new email. Identity-scoped keys send from the bound identity's inbox. Management-scoped keys must pass either the 'identity' query parameter (identity UUID) or the 'inbox' query parameter (inbox ID). Supports to_email, subject, content, cc, bcc, and attachment_uuids. Returns 400 if a management-scoped request is missing the inbox parameter or validation fails, 404 if the inbox is not found.

Parameters
  • identity query
  • inbox query
ravi identity use <identity-uuid>
ravi email compose --to user@example.com --subject "Hello" --body "Hi from my agent"
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
msg = identity.email.send(
    to="user@example.com",
    subject="Hello",
    body="Hi from my agent",
)
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const msg = await identity.email.send(
  "user@example.com",
  "Hello",
  "Hi from my agent",
);
GET /api/email-messages/{id}/

Retrieve a single email message by ID. Returns full message details including content and attachments.

Parameters
  • id path · required
ravi message email <message-id>
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
msg = identity.email.get("<message-id>")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const msg = await identity.email.get("<message-id>");
PUT /api/email-messages/{id}/

Update a message's mutable fields (e.g. is_read). Replaces all mutable fields with the provided values.

Parameters
  • id path · required
PATCH /api/email-messages/{id}/

Partially update a message's mutable fields (e.g. mark as read). Only the provided fields are changed.

Parameters
  • id path · required
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
msg = identity.email.get("<message-id>")
msg.mark_read()
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const msg = await identity.email.get("<message-id>");
await msg.markRead();
POST /api/email-messages/{id}/forward/

Forward an email message to a new recipient. Requires to_email and content. Subject is always derived server-side from the original message. Supports optional cc, bcc, and attachment_uuids. Returns 400 if validation fails.

Parameters
  • id path · required
ravi email forward <message-id> --to ops@acme.com --body "FYI"
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
msg = identity.email.get("<message-id>")
msg.forward(to="ops@acme.com")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const msg = await identity.email.get("<message-id>");
await msg.forward("ops@acme.com");
POST /api/email-messages/{id}/reply-all/

Reply-all to an email message, sending to the original sender and all recipients. Subject is always derived server-side from the original message. Supports optional cc, bcc, and attachment_uuids. Returns 400 if validation fails.

Parameters
  • id path · required
ravi email reply-all <message-id> --body "Thanks, all!"
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
msg = identity.email.get("<message-id>")
msg.reply_all(body="Thanks, all!")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const msg = await identity.email.get("<message-id>");
await msg.replyAll("Thanks, all!");
POST /api/email-messages/{id}/reply/

Reply to a single email message. Sends the reply only to the original sender. Subject is always derived server-side from the original message. Supports optional cc, bcc, and attachment_uuids. Returns 400 if validation fails.

Parameters
  • id path · required
ravi email reply <message-id> --body "Thanks!"
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
msg = identity.email.get("<message-id>")
msg.reply(body="Thanks!")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const msg = await identity.email.get("<message-id>");
await msg.reply("Thanks!");
GET /api/messages/

List SMS messages for the authenticated user, newest first. Filterable by direction (incoming/outgoing), is_read, and identity.

Parameters
  • direction query
  • identity query
  • is_read query
ravi message sms --unread
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
inbox = identity.phone.inbox(unread=True)
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const inbox = await identity.phone?.inbox({ unread: true });
POST /api/messages/send/

Send an SMS from the identity's provisioned phone number. Identity-scoped keys send from the bound identity's phone number. Management-scoped keys must pass the 'identity' query parameter (identity UUID). Returns 400 if no identity is selected, 404 if the identity has no phone.

Parameters
  • identity query
ravi identity use <identity-uuid>
ravi sms send --to +15551234567 --body "Your code is 482910"
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
sms = identity.phone.send(to="+15551234567", body="Your code is 482910")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const sms = await identity.phone?.send("+15551234567", "Your code is 482910");
GET /api/messages/{id}/

Retrieve a single SMS message by ID, including body and metadata.

Parameters
  • id path · required
ravi message sms <message-id>
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
sms = identity.phone.get("<message-id>")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const sms = await identity.phone?.get("<message-id>");
PUT /api/messages/{id}/

Update a message's mutable fields (e.g. is_read). Replaces all mutable fields with the provided values.

Parameters
  • id path · required
PATCH /api/messages/{id}/

Partially update a message's mutable fields (e.g. mark as read). Only the provided fields are changed.

Parameters
  • id path · required
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
sms = identity.phone.get("<message-id>")
sms.mark_read()
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const sms = await identity.phone?.get("<message-id>");
await sms?.markRead();

Passwords

GET /api/passwords/

CRUD for password entries + password generator endpoint.

Parameters
  • identity query
ravi passwords list
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
entries = identity.vault.passwords.list()
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const entries = await identity.vault.passwords.list();
POST /api/passwords/

CRUD for password entries + password generator endpoint.

Parameters
  • identity query
ravi passwords create acme.com --username agent --generate
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
entry = identity.vault.passwords.create(domain="acme.com", username="agent", password="s3cret")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const entry = await identity.vault.passwords.create({ domain: "acme.com", username: "agent", password: "s3cret" });
GET /api/passwords/generate-password/

Generate a random password with configurable constraints.

Parameters
  • digits query
  • exclude_chars query
  • length query
  • lowercase query
  • special query
  • uppercase query
ravi passwords generate --length 24
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
generated = identity.vault.passwords.generate()
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const generated = await identity.vault.passwords.generate();
GET /api/passwords/{uuid}/

CRUD for password entries + password generator endpoint.

Parameters
  • uuid path · required
ravi passwords get <password-uuid>
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
entry = identity.vault.passwords.get("<password-uuid>")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const entry = await identity.vault.passwords.get("<password-uuid>");
PUT /api/passwords/{uuid}/

CRUD for password entries + password generator endpoint.

Parameters
  • uuid path · required
PATCH /api/passwords/{uuid}/

CRUD for password entries + password generator endpoint.

Parameters
  • uuid path · required
ravi passwords update <password-uuid> --password "new-secret"
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
entry = identity.vault.passwords.update("<password-uuid>", password="new-secret")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const entry = await identity.vault.passwords.update("<password-uuid>", { password: "new-secret" });
DELETE /api/passwords/{uuid}/

CRUD for password entries + password generator endpoint.

Parameters
  • uuid path · required
ravi passwords delete <password-uuid>
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
identity.vault.passwords.delete("<password-uuid>")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
await identity.vault.passwords.delete("<password-uuid>");

Phone

GET /api/phone/

List all phone numbers provisioned for the authenticated user.

GET /api/phone/{id}/

Retrieve a single provisioned phone number by ID.

Parameters
  • id path · required

Secrets

GET /api/secrets/

CRUD for key-value secret entries (API keys, env vars).

Parameters
  • identity query
  • key query
ravi secrets list
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
secrets = identity.vault.secrets.list()
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const secrets = await identity.vault.secrets.list();
POST /api/secrets/

CRUD for key-value secret entries (API keys, env vars).

Parameters
  • identity query
ravi secrets set OPENAI_API_KEY "sk-..."
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
secret = identity.vault.secrets.create(key="OPENAI_API_KEY", value="sk-...")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const secret = await identity.vault.secrets.create({ key: "OPENAI_API_KEY", value: "sk-..." });
GET /api/secrets/{uuid}/

CRUD for key-value secret entries (API keys, env vars).

Parameters
  • uuid path · required
ravi secrets get OPENAI_API_KEY
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
secret = identity.vault.secrets.get("<secret-uuid>")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const secret = await identity.vault.secrets.get("<secret-uuid>");
PUT /api/secrets/{uuid}/

CRUD for key-value secret entries (API keys, env vars).

Parameters
  • uuid path · required
PATCH /api/secrets/{uuid}/

CRUD for key-value secret entries (API keys, env vars).

Parameters
  • uuid path · required
ravi secrets set OPENAI_API_KEY "sk-new..."
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
secret = identity.vault.secrets.update("<secret-uuid>", value="sk-new...")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
const secret = await identity.vault.secrets.update("<secret-uuid>", { value: "sk-new..." });
DELETE /api/secrets/{uuid}/

CRUD for key-value secret entries (API keys, env vars).

Parameters
  • uuid path · required
ravi secrets delete <secret-uuid>
from ravi import Ravi

ravi = Ravi(api_key="ravi_mgmt_...")

identity = ravi.identities.get("<identity-uuid>")
identity.vault.secrets.delete("<secret-uuid>")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });

const identity = await ravi.identities.get("<identity-uuid>");
await identity.vault.secrets.delete("<secret-uuid>");