Bland + Custom API

Bland voice agents respond in 200ms and call any HTTP endpoint mid-call to look up orders or write records, with secrets and response routing built in.

Custom API

What Bland does inside Custom API.

A 200ms agent that takes action.

Bland runs speech recognition, the language model, and voice on its own stack, so agents respond in 200 milliseconds and call data never passes through a third-party AI provider on its way to your API.

Any endpoint, any method.

Create an API connection once with a base URL and auth, then build GET, POST, PUT, PATCH, or DELETE tools on it for each action the agent needs.

Credentials stay in Secrets.

Bearer, API key, and basic auth reference a stored secret instead of a pasted key. Refresh secrets fetch a new token on a schedule so a call never runs on an expired one.

The conversation fills the request.

Body fields and URL variables come from what the caller said, from pathway variables, or from system values like the caller's number and the call ID.

Responses become variables.

Map JSON paths in the response to variables the agent can speak, like an order status or a reference ID, and use them in later nodes.

Routes on the result.

Branch on ok, the HTTP status, or any extracted field, so a 401 or an empty lookup goes to a recovery path instead of dead air.

How it deploys.

  1. Define your API endpoint URL and authentication method.

  2. Configure the HTTP method and request headers.

  3. Map call variables to request body parameters.

  4. Set up response handling to extract data for the conversation.

Our FDE team scopes the integration, maps Bland to your stack, and stays on through go-live. Enterprise deployments go live in 30 days.

Drop Bland into your editor.

MCP server runs in Claude Code, Cursor, and any MCP-aware editor. Or hit the REST API directly.

curl -X POST https://api.bland.ai/v1/calls \
-H "Authorization: $BLAND_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone_number": "+14155552120",
"task": "Qualify refi lead",
"voice": "june"
}'

Frequently asked questions.

How does a Bland voice agent call my API during a call?

You create a tool on an API connection with your base URL and authentication. When the conversation reaches the moment described in the tool's prompt, or a Custom Tool node in a pathway, Bland sends the request and hands the response back to the agent.

Can I build the tool from a cURL command?

Yes. Choose Import from cURL when you create a webhook tool, paste the command, and the builder opens with the URL, method, headers, and body filled in. Swap any hardcoded key for a secret reference before you save.

How do I keep API keys out of the tool configuration?

Store the key in Secrets and reference it from the tool's authorization, headers, or body. Secrets are organization-wide and never shown again after saving, and rotating one updates every tool that references it.

What does the caller hear while the API responds?

Whatever you set as the tool's agent speech, such as "One moment while I look that up." Timeouts are configurable from 1 to 60 seconds, and response routing sends failures to a fallback path instead of leaving silence.

When should I use a custom API instead of a built-in integration?

Use the built-in integrations for Salesforce, HubSpot, Cal.com, Calendly, Slack, and Notion. Use a custom API tool for your own backend, internal services, or any third-party API that is not in the built-in list.

Related integrations.

See every integration on the integrations hub.

With our team

Our FDE team scopes the integration with you.

They map Bland to your stack, design the rollout, and stay on through go-live. Enterprise deployments go live in 30 days.

On your own

Or drop Bland into your editor.

The Bland MCP server runs in Claude Code, Cursor, and any MCP-aware editor. Or hit the REST API directly. Free sandbox, no credit card.