For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
AcademyContact SalesHelp CenterDashboard
DocumentationAPI ReferenceIntegrationsAdministrationChangelog
DocumentationAPI ReferenceIntegrationsAdministrationChangelog
  • Get Started
    • Introduction
    • Authentication
  • Resources
    • Dynamic Prompt Injection
    • Outbound Number Pooling
    • Timezones
  • Platform API
LogoLogo
AcademyContact SalesHelp CenterDashboard
On this page
  • Inspect attached phone numbers on an agent
  • Attach multiple numbers to an outbound agent
  • Attach using phone numbers
  • Attach using phone number slugs
  • Detach one attached number
  • Select the outbound caller ID when creating a call
  • FAQ
Resources

Outbound number pooling

||View as Markdown|
Was this page helpful?
Previous

Timezones

Next
Built with

Outbound number pooling lets you assign multiple phone numbers to a single outbound agent, then choose which number to use when creating each call. This is useful when you route traffic by campaign, region, or brand while keeping one shared agent configuration.

Use this guide together with the agent endpoints in the API reference and make a call endpoint.

Inspect attached phone numbers on an agent

GET /v2/assistants/{model_id} now returns attached_phone_numbers in the assistant object:

1{
2 "attached_phone_numbers": [
3 {
4 "number": "+16286666348",
5 "sid": "PN9c8dba0c87f9173af8054d3ccedb8afd",
6 "slug": "16286666348"
7 }
8 ]
9}

Use slug when you need to detach one number, and use number when you want to set a specific caller ID in POST /v2/calls.

Attach multiple numbers to an outbound agent

Use PUT /v2/assistants/{model_id}/phone_numbers.

You can pass either:

  • phone_numbers (phone number values, for example +16286666348)
  • phone_number_slugs (internal slugs, for example 16286666348)

Attach using phone numbers

$curl --request PUT \
> --url https://api.synthflow.ai/v2/assistants/{model_id}/phone_numbers \
> --header 'Authorization: Bearer YOUR_API_KEY' \
> --header 'Content-Type: application/json' \
> --data '{
> "phone_numbers": ["+16286666348", "+12131231214"]
> }'

Attach using phone number slugs

$curl --request PUT \
> --url https://api.synthflow.ai/v2/assistants/{model_id}/phone_numbers \
> --header 'Authorization: Bearer YOUR_API_KEY' \
> --header 'Content-Type: application/json' \
> --data '{
> "phone_number_slugs": ["16286666348", "1231242151"]
> }'

Successful response:

1{
2 "status": "ok"
3}

Detach one attached number

Use DELETE /v2/assistants/{model_id}/phone_numbers/{phone_number_slug} to remove a single attached number:

$curl --request DELETE \
> --url https://api.synthflow.ai/v2/assistants/{model_id}/phone_numbers/{phone_number_slug} \
> --header 'Authorization: Bearer YOUR_API_KEY'

Successful response:

1{
2 "status": "ok"
3}

Select the outbound caller ID when creating a call

POST /v2/calls now accepts optional from_phone_number. Pass a phone number in the API body:

1{
2 "model_id": "0ae2859d-c25c-4d56-a9f3-809387b725ce",
3 "phone": "+14155550123",
4 "name": "John Doe",
5 "from_phone_number": "+16286666348"
6}

If omitted, Synthflow uses the agent’s default outbound number selection behavior. In the UI logs and call records, the original phone number that was used for each call is still shown so you can verify caller ID selection.

FAQ

Can I send both phone_numbers and phone_number_slugs in the same attach request?

No. Choose either one or the other.

Does this apply to inbound agents?

No. These attach and detach endpoints are intended for outbound number pooling on outbound agents.

What kind of phone numbers are accepted?

You can use any kind of phone number that you own like a custom phone number, phone numbers purchased inside Synthflow or phone numbers from your imported Twilio.