Skip to content
Linq Copy agent prompt

Create a SIP profile

POST/v3/sip-profiles

SIP configuration

Your Linq representative provides the signaling and media IP ranges and ports to allow through your firewall during onboarding.

Set primary_uri to your endpoint as scheme + host — sips: for TLS or sip: for UDP, with no user part (we add it). Each call arrives at your endpoint as:

sip:<called-number>@<your-host>

so you can route on the dialed number. The caller’s number is in the From header in E.164.


Create a SIP routing profile for your inbound calls, then assign it to a phone number to start routing calls to its SIP URI.

Body ParametersJSONExpand Collapse
name: string
maxLength64
primary_uri: string

Your SIP endpoint as scheme + host, e.g. sips:sip.partner.example. Must start with sip: (UDP) or sips: (TLS) — the scheme sets the transport. Do not include a user part: we set it to the called number on each call (sip:<called-number>@<your-host>). A bare host with no scheme is rejected.

maxLength512
backup_uri: optional string

Optional failover SIP URI

maxLength512
ReturnsExpand Collapse
SipProfile object { id, assigned_number_count, created_at, 5 more }
id: string

Unique identifier for the SIP profile

assigned_number_count: number

How many phone numbers reference this profile

created_at: string
formatdate-time
name: string

Human-readable name

primary_uri: string

Your SIP endpoint as scheme + host (sip: UDP / sips: TLS); no user part — we set it to the called number on each call.

updated_at: string
formatdate-time
version: number

Monotonic version, incremented on each update

backup_uri: optional string

Optional failover SIP URI. Null when unset.

Create a SIP profile

curl https://api.linqapp.com/api/partner/v3/sip-profiles \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $LINQ_API_V3_API_KEY" \
    -d '{
          "name": "byoc-primary",
          "primary_uri": "sips:sip.partner.example",
          "backup_uri": "sips:[email protected]"
        }'
{
  "id": "sip_8a3f9c2b1d4e4f5a9b8c7d6e5f4a3b2c",
  "assigned_number_count": 0,
  "created_at": "2026-10-29T10:30:00Z",
  "name": "byoc-primary",
  "primary_uri": "sips:sip.partner.example",
  "updated_at": "2026-10-29T10:30:00Z",
  "version": 1,
  "backup_uri": null
}
{
  "error": {
    "status": 400,
    "code": 1002,
    "message": "Phone number must be in E.164 format",
    "doc_url": "https://docs.linqapp.com/channel/imessage/error/codes/1xxx/1002/"
  },
  "success": false
}
{
  "error": {
    "status": 401,
    "code": 2004,
    "message": "Unauthorized - missing or invalid authentication token",
    "doc_url": "https://docs.linqapp.com/channel/imessage/error/codes/2xxx/2004/"
  },
  "success": false
}
{
  "error": {
    "status": 409,
    "code": 2013,
    "message": "This chat is unavailable",
    "doc_url": "https://docs.linqapp.com/channel/imessage/error/codes/2xxx/2013/"
  },
  "success": false
}
{
  "error": {
    "status": 500,
    "code": 3006,
    "message": "Internal server error",
    "doc_url": "https://docs.linqapp.com/channel/imessage/error/codes/3xxx/3006/"
  },
  "success": false
}
Returns Examples
{
  "id": "sip_8a3f9c2b1d4e4f5a9b8c7d6e5f4a3b2c",
  "assigned_number_count": 0,
  "created_at": "2026-10-29T10:30:00Z",
  "name": "byoc-primary",
  "primary_uri": "sips:sip.partner.example",
  "updated_at": "2026-10-29T10:30:00Z",
  "version": 1,
  "backup_uri": null
}
{
  "error": {
    "status": 400,
    "code": 1002,
    "message": "Phone number must be in E.164 format",
    "doc_url": "https://docs.linqapp.com/channel/imessage/error/codes/1xxx/1002/"
  },
  "success": false
}
{
  "error": {
    "status": 401,
    "code": 2004,
    "message": "Unauthorized - missing or invalid authentication token",
    "doc_url": "https://docs.linqapp.com/channel/imessage/error/codes/2xxx/2004/"
  },
  "success": false
}
{
  "error": {
    "status": 409,
    "code": 2013,
    "message": "This chat is unavailable",
    "doc_url": "https://docs.linqapp.com/channel/imessage/error/codes/2xxx/2013/"
  },
  "success": false
}
{
  "error": {
    "status": 500,
    "code": 3006,
    "message": "Internal server error",
    "doc_url": "https://docs.linqapp.com/channel/imessage/error/codes/3xxx/3006/"
  },
  "success": false
}