Skip to main content
A SIP client is an ordinary SIP user agent — a softphone such as Linphone or baresip, a programmatic client such as baresip-python (handy for running a client in the cloud or in tests), or your own SIP stack — that registers with your Daily domain over UDP or TLS. Once registered it can place and receive calls: to another of your registered clients, or out to an external SIP address. You provision a client with a single REST call, which returns a SIP username, a password (shown once), and a ready-to-use sip_uri. Point your softphone at those credentials and it registers.
Each domain can register up to 2000 SIP clients by default. Beyond that, POST /sip-clients returns 403 with SIP client limit reached for this domain. Delete unused clients (or let short-lived ones expire) to free capacity, or contact support to raise the limit.
This is different from a SIP trunk, where you bring your own carrier and Daily auto-provisions a room per inbound call. A SIP client is a credential you register a softphone with — there is no carrier and no per-call room.

How it works

  1. You call POST /sip-clients with a username.
  2. Daily returns the sip_uri and a password (this is the only time the password is shown).
  3. You configure a softphone with that username, password, and SIP domain, over UDP or TLS.
  4. The softphone REGISTERs with your domain.
  5. The client places and receives calls — to another registered client, or to an external SIP address.

Create a client

  • username is a room-style name (letters, digits, -, _), optionally suffixed with .<number> (for example alice.0), and must be unique within your domain.
  • password is generated for you and returned once. You may instead supply your own (12–64 characters, at least one letter and one digit). Store it — it is never returned again.
  • expires_at is null unless you set a TTL (see below).

Configure the softphone

Use the values from the response: The client registers to your domain and is then reachable at its sip_uri.

Expiry and cleanup

A client lives until you delete it, unless you give it a TTL at create time:
With expires_in_seconds set, the client is removed automatically after it elapses — useful for on-demand credentials created for a single session. You can also delete a client explicitly at any time, or rotate its password without changing its sip_uri.
Set a TTL for short-lived clients. If you provision a client for a single call or session, pass expires_in_seconds. The credential is then cleaned up automatically even if your explicit delete never runs (a crash, a lost retry), so a forgotten credential can’t linger or keep counting against your per-domain limit. Reserve no-expiry clients for softphones you intend to keep registered long-term.
Expiring or deleting unused clients frees capacity under your domain’s client limit (see the note at the top of this page).

Reference