---
title: "Create SIP credential"
method: POST
path: "/api/fabric/resources/sip_endpoints"
tags: ["SIP Credentials"]
---

# Create SIP credential

`POST /api/fabric/resources/sip_endpoints`

Creates a SIP Credential

#### Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Voice_, _Messaging_, _Fax_, or _Video_.

[Learn more about API scopes](/docs/platform/your-signalwire-api-space).

## Request body

- SipEndpointCreateRequest
  - `id` string, uuid, required — Universal Unique Identifier.
  - `username` string, required — The username of the Sip Endpoint
  - `caller_id` string, required — The caller ID that will showup when dialing from this Sip Endpoint
  - `send_as` string, required — The Sip username that will show up on the calle's side. Overrides the username.
  - `ciphers` Ciphers[], required — Ciphers that can be enabled for calls on this Sip Endpoint.
  - `codecs` Codecs[], required — Codecs that can be enabled for calls on this Sip Endpoint.
  - `encryption` 'required' | 'optional' | 'default', required
  - `call_handler` 'default' | 'passthrough' | 'block-pstn' | 'resource', required
  - `calling_handler_resource_id` string, uuid, required — Universal Unique Identifier.

## Response `200`

The request has succeeded.

- SipEndpointResponse — Response containing a single SIP endpoint.
  - `type` string, required — A string representation of the type of object this record is.
  - `id` string, uuid, required — Universal Unique Identifier.
  - `username` string, required — The username for the SIP endpoint.
  - `caller_id` string, nullable, required — Friendly Caller ID used as the CNAM when dialing a phone number or the From when dialing another SIP Endpoint.
  - `send_as` string, required — When dialing a PSTN phone number, you must send it From a number you have purchased or verified. send_as indicates which number this endpoint has set as its origination. random indicates it will randomly choose a purchased or verified number from within the project.
  - `ciphers` string[], required — A list of encryption ciphers this endpoint will support.
  - `codecs` string[], required — A list of codecs this endpoint will support.
  - `encryption` 'default' | 'required' | 'optional', required — Whether connections to this endpoint require encryption or if encryption is optional.
  - `call_handler` 'relay_context' | 'relay_topic' | 'relay_application' | 'relay_connector' | 'relay_script' | 'laml_webhooks' | 'laml_application' | 'dialogflow' | 'video_room' | 'call_flow' | 'ai_agent', required — Call handler type for SIP endpoints.
  - `calling_handler_resource_id` string, uuid, required — Universal Unique Identifier.
  - `call_request_url` string, nullable, required — A string representing the LaML URL to access when a call is received. This is only used (and required) when call_handler is set to laml_webhooks.
  - `call_request_method` 'GET' | 'POST', nullable, required — A string representing the HTTP method to use with call_request_url. Valid values are GET and POST.
  - `call_fallback_url` string, nullable, required — A string representing the LaML URL to access when the call to call_request_url fails. This is only used (and required) when call_handler is set to laml_webhooks.
  - `call_fallback_method` 'GET' | 'POST', nullable, required — A string representing the HTTP method to use with call_fallback_url. Valid values are GET and POST.
  - `call_status_callback_url` string, nullable, required — A string representing a URL to send status change messages to. This is only used (and required) when call_handler is set to laml_webhooks.
  - `call_status_callback_method` 'GET' | 'POST', nullable, required — A string representing the HTTP method to use with call_status_callback_url. Valid values are GET and POST.
  - `call_laml_application_id` string, nullable, required — A string representing the ID of the LaML application to forward incoming calls to. This is only used (and required) when call_handler is set to laml_application.
  - `call_dialogflow_agent_id` string, nullable, required — A string representing the ID of the Dialogflow agent to forward incoming calls to. This is only used (and required) when call_handler is set to dialogflow.
  - `call_relay_topic` string, nullable, required — A string representing the Relay topic to forward incoming calls to. This is only used (and required) when call_handler is set to relay_topic.
  - `call_relay_topic_status_callback_url` string, nullable, required — A string representing a URL to send status change messages to. This is only used (and required) when call_handler is set to relay_topic.
  - `call_relay_context` string, nullable, required — A string representing the Relay context to forward incoming calls to. This is only used (and required) when call_handler is set to relay_context.
  - `call_relay_context_status_callback_url` string, nullable, required — A string representing a URL to send status change messages to. This is only used (and required) when call_handler is set to relay_context.
  - `call_relay_application` string, nullable, required — A string representing the Relay application to forward incoming calls to. This is only used (and required) when call_handler is set to relay_application.
  - `call_video_room_id` string, uuid, required — Universal Unique Identifier.
  - `call_relay_script_url` string, nullable, required — A string representing a URL of a SWML script to respond to incoming calls. This is only used (and required) when call_handler is set to relay_script.

## Other responses

- `401` — Access is unauthorized.
- `404` — The server cannot find the requested resource.
- `422` — The request contains invalid parameters. See errors for details.
- `500` — An internal server error occurred.

---

[API](https://skmtc.net/signalwire/apis/signalwire-rest-api.md) · [All operations](https://skmtc.net/signalwire/apis/signalwire-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/signalwire/signalwire-rest-api/versions/05c5164b85c7/schema)
