You can trigger a Speed To Lead™ call from your own system with an account API key instead of the widget's API key. The request is the same as in Making a call through an API request — only the key changes.
Why use an account key
One key for all your widgets. You still choose the widget with
widget_key, but you no longer copy each widget's own API key.Only what it needs. The key can be limited to starting calls and nothing else.
Easy to replace. Give it an expiry date or revoke it at any time — the widget and its own key stay as they are.
1. Create the key
Open General settings → Api Key in the dashboard. You can also get there from the widget: Integrations → Connect via API → Create an account API key.
Create a key and tick Write for Speed To Lead calls and leads. Copy the key when it appears: it starts with bc_live_ and is shown only once.
Only the account owner can create keys.
2. Send the request
Put the key in the api-key header and leave api_key out.
👇 Example: POST method and minimum required fields
POST https://app.brightcall.ai/rest/v1/ext/add_call_api/
api-key: %ACCOUNT_API_KEY%
Content-Type: application/json
{
"widget_key": "%WIDGET_KEY%",
"lc_number": "+1234567890"
}
👇 Example: GET method — the key still goes in the header
GET https://app.brightcall.ai/rest/v1/ext/add_call_api/?widget_key={WIDGET_KEY}&lc_number={number}
api-key: %ACCOUNT_API_KEY%If your tool cannot set headers, send a POST request with the account key in api_key of the JSON body, where the widget's API key would go.
⚠️ Never put an account key in the URL. Links end up in logs and browser history. A request with an account key in the URL is refused with 401, and no call is made.
Every optional field — custom parameters, lc_number_2, country, agents, future_unixstamp — works exactly as described in the main article.
3. If a call is refused
Code | Message | What to do |
401 |
| Check that you copied the whole key, or create a new one |
401 |
| Move the key to the |
403 |
| Tick Write for Speed To Lead calls and leads on this key, or use a key that has it |
403 |
| The widget belongs to another account: use a key of the account that owns the widget |
400 |
| The request carried no key at all |
The widget's API key keeps working
Requests with widget_key and the widget's own api_key work exactly as before — you do not have to change an existing integration.
The old account key — the one under Legacy user api key on the same Api Key tab, without bc_live_ — does not start calls. Use the widget's API key or a new account key.
If you have any questions, please email us at [email protected]
