Chapter 15 · Account
API keys and secrets
Let your own systems place calls and read history through the HelloCall API, and keep the credentials your workflows use in an encrypted secret store.
API keys
An API key lets another system — your website, your CRM, a script — use HelloCall without a person signing in: place calls, read call history, manage workflows, campaigns and parties.
- Open Settings → API keys and press New key (admins only).
- Say What is it for? — for example “Website booking form” — and add notes if useful.
- Choose the Access: Full access — read and write, or Read only — GET requests.
- Choose Expires after (days) — 0 means never.
- Press create. The key is shown once: Copy it and store it somewhere safe.
The list shows each key’s name and first characters, its access, when it was Last used and its status. Revoke stops a key immediately and keeps a record of it; Delete removes it from the list. Access and expiry cannot be changed after creation — make a new key instead.
Using the API (for developers)
The API lives under /api/v1 on the address you use for the console. Send the key in a header, either Authorization: Bearer hck_… or X-API-Key: hck_…. Requests and replies are JSON; a reply carries data and a readable message, and list endpoints take offset, limit and search.
-
GET /api/v1/phone-numbers— your numbers and their ids. -
POST /api/v1/callswithphoneNumberId,toand optionallyworkflowId— place a call from a Plivo number (withoutworkflowId, the number’s outgoing workflow runs). A402means the wallet is too low. -
GET /api/v1/calls?phoneNumberId=…andGET /api/v1/calls/{id}— history and a call’s full record. -
/api/v1/campaigns,/api/v1/scheduled-calls,/api/v1/parties,/api/v1/workflows— the same things the console manages.
A read-only key gets 403 on anything but GET; a revoked, expired or unknown key gets 401. Keys can never manage users, billing, other API keys or secrets.
The secret store
The secret store keeps other systems’ API keys and tokens, encrypted, so a Call an API step can use a credential by name without it ever sitting in a workflow, a transcript or a log.
- Open Settings → Secret store and press Store a secret (admins only).
- Give it a Name — letters, digits and underscores, for example
crm_api_key. - Paste the Value, add notes if you like, and save.
- In a Call an API step, write
{{crm_api_key}}where the credential goes — for example the headerAuthorization: Bearer {{crm_api_key}}.
The value is added only at the moment the request is sent and is never shown again. Edit replaces it (leave the value blank to keep the current one) from the next call on; Copy reference copies {{name}}; Last used tells you whether a workflow is using it.
Questions about api keys and secrets
Every question from every chapter is also on the FAQ page.
I lost my API key. Can I see it again?
No — only a fingerprint is stored. Revoke the lost key and create a new one.
How do I send the key?
In a header: Authorization: Bearer hck_… or X-API-Key: hck_….
Can an API key place calls from a local modem?
Calls placed through the API go out from Plivo numbers. Local numbers dial through the desktop app on their own computer.
Who can see a secret’s value?
Nobody, once it is saved — not admins, not the workflow, not the logs. It is only added to the request as it leaves.
Can a standard user use secrets?
Yes. Only admins can create, edit or delete them, but anyone building a workflow can reference one by name.
Can a key be limited to reading data?
Yes — choose Read only — GET requests when creating it. Access cannot be changed afterwards.