Logo
Search
Docs

Get phone number

GET https://app.sulus.ai/api/phone-numbers/{id}

Open a number for editing (materialises its configuration on first touch)

Authentication

Send a bearer token created on your dashboard's Developer page:

Authorization: Bearer <YOUR_API_KEY>

Path parameters

id string Required

The phone number to configure.

Validation: the number's digits (E.164 without the leading +), full E.164 (with +), or the numeric configuration id once one exists
Stored in assistant_phone_number_configurations.phone_number

Errors

StatusMeaningBody
404 Number not found, or outside your account scope {"success":false,"message":"Phone number configuration not found."}
401 Missing or invalid bearer token
403 Feature phone_numbers not enabled for the account

Notes

  • On first retrieval for a number with no configuration row, the row is created by reading the number's current configuration from the live voice platform, matched by its assistant's stored phone_number_id, or failing that by scanning the platform's number list for a matching E.164 number.
  • assistant is resolved by vapi_assistant_id (the upstream routing target), not by the local assistant_id foreign key — the two can briefly disagree, and vapi_assistant_id is authoritative.
  • sms_available reflects whether the SMS toggle applies to this number's provider; it is only present on this endpoint.
curl --request GET \
  --url https://app.sulus.ai/api/phone-numbers/{id} \
  --header 'Authorization: Bearer <YOUR_API_KEY>'
import requests

url = "https://app.sulus.ai/api/phone-numbers/{id}"
headers = {"Authorization": "Bearer <YOUR_API_KEY>"}

response = requests.get(url, headers=headers)
print(response.json())
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://app.sulus.ai/api/phone-numbers/{id}"
	req, _ := http.NewRequest("GET", url, nil)
	req.Header.Add("Authorization", "Bearer <YOUR_API_KEY>")
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
Response 200
{
    "success": true,
    "data": {
        "id": 7,
        "phone_number": "+14155551234",
        "vapi_phone_number_id": "c3d4e5f6-1a2b-4c3d-9e0f-1a2b3c4d5e6f",
        "assistant_id": 12,
        "vapi_assistant_id": "a1b2c3d4-1e2f-4a3b-8c9d-0e1f2a3b4c5d",
        "vapi_squad_id": null,
        "vapi_workflow_id": null,
        "name": "Front Desk Line",
        "provider": "twilio",
        "fallback_destination": {
            "type": "number",
            "number": "+14155559876",
            "message": "Please hold while we connect you.",
            "description": "Used when the assistant is unavailable",
            "callerId": "+14155551234"
        },
        "server": {
            "url": "https://api.example-business.com/webhooks/calls",
            "timeoutSeconds": 20,
            "headers": {
                "X-Source": "sulus"
            },
            "staticIpAddressesEnabled": false
        },
        "hooks": [],
        "sms_enabled": true,
        "static_ip_enabled": false,
        "metadata": null,
        "last_synced_at": "2026-07-30T14:22:03.000000Z",
        "user_id": 42,
        "created_by": 42,
        "reseller_id": "f1e2d3c4-b5a6-4978-8901-234567890abc",
        "workspace_id": "9a8b7c6d-5e4f-4a3b-9c8d-7e6f5a4b3c2d",
        "created_at": "2026-06-01T14:22:03.000000Z",
        "updated_at": "2026-07-15T09:10:44.000000Z",
        "assistant": {
            "id": 12,
            "name": "Front Desk",
            "vapi_assistant_id": "a1b2c3d4-1e2f-4a3b-8c9d-0e1f2a3b4c5d"
        },
        "user": {
            "id": 42,
            "name": "Jane Cooper",
            "email": "[email protected]"
        },
        "sms_available": true
    }
}