Sales Engine
API documentation
Provider keysOperation providerKeys.upsert

Store a provider key

Add a key to a provider's pool (tried after the keys already there), or replace one key's secret with id. Sealed at rest and verified.

POST/api/v1/api-keys
Scope admin: Provider keys, developer keys, mailboxes, domains, settings, fixed costs.

Parameters

Body

A JSON object. Fields not listed are ignored.

NameInDescription
providerrequiredbodyapollo, apify, reoon, perplexity, mistral, firecrawl, anthropic, openrouter, moltsets, typesafe, leadocean, calcom or fathom.
keyrequiredbodyThe secret.
namebodyA name to tell the keys apart, such as the account it belongs to. Defaults to Key N.
idbodyA key id: replaces that key's secret instead of adding one.

Example

curl
curl -X POST "https://crm.ashwanth.dev/api/v1/api-keys" \
  -H "Authorization: Bearer $SALES_ENGINE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "provider": "",
  "key": "",
  "name": "",
  "id": ""
}'
CLI
sales-engine provider-keys upsert --provider "..." --key "..."

The JSON above lists every documented field with a typed placeholder; send only the ones you mean.

Response

A 200 with the result under data, on creation too. Errors come back as an error object with a stable code; see Errors.

Shape
{
  "data": { ... }
}

Run it below to see the live shape for your workspace.

Try it

Runs against this server, as the workspace behind the key.
Kept in this page while you browse the docs, gone on reload, never stored. Signed in to the app? Leave it blank and the call runs as you.
Every documented field is listed above; leave out the ones you do not need.
Request
POST /api/v1/api-keys

Also in Provider keys