> ## Documentation Index
> Fetch the complete documentation index at: https://docs.daily.co/llms.txt
> Use this file to discover all available pages before exploring further.

# PSTN dial-in with a PIN code

> Let participants join a Daily room by dialing a phone number and entering a room-specific PIN code.

With PIN dial-in, phone participants dial a shared phone number and enter a room-specific PIN code to join. The PIN is unique to each room and generated automatically at room creation.

## Create a room with PIN dial-in

Add the `dialin` property when [creating](/reference/rest-api/rooms/create-room) or [updating](/reference/rest-api/rooms/update-room) a room:

```bash theme={null}
curl --request POST \
  --url https://api.daily.co/v1/rooms/your-room-name \
  --header 'Authorization: Bearer $DAILY_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "properties": {
      "dialin": {
        "display_name": "Phone Caller",
        "wait_for_meeting_start": true
      },
      "exp": 1700016686
    }
  }'
```

**`dialin` properties:**

* `display_name` — name shown for the PSTN participant in the call.
* `wait_for_meeting_start` — if `true`, the caller hears hold music until a meeting participant joins; if `false`, the call disconnects if no one is present.
* `room_numbers` — optional array of purchased phone numbers to use for this room (e.g., `[{"phone_number": "+12095038039"}]`). Defaults to the earliest purchased number on your account. [See below](#assign-a-purchased-number-to-pin-dial-in) for details on assigning purchased numbers to PIN dial-in.

<Warning>
  All PSTN-enabled rooms must have an [expiry (`exp`)](/reference/rest-api/rooms/create-room#body-properties-exp) of less than 365 days. If using an owner token, we also recommend setting [`eject_at_room_exp`](/reference/rest-api/meeting-tokens/create-meeting-token#body-properties-eject-at-token-exp).
</Warning>

The API response includes a `dialin_code` — the room's unique PIN:

```json theme={null}
{
  "config": {
    "dialin": {
      "display_name": "Phone Caller"
    },
    "dialin_code": "12345678987"
  }
}
```

## How callers join

Share the phone number and PIN with participants. For a frictionless experience, provide the full dial string with pauses (`,,`) so the phone automatically enters the PIN after connecting:

```
+12095038039,,12345678987
```

The `,,` instructs the dialer to pause before sending the PIN digits, so callers don't have to manually type the PIN.

## Assign a purchased number to PIN dial-in

If you've purchased a phone number and want to use it for the PIN flow, configure it at the domain level:

```bash theme={null}
curl --request POST \
  --url https://api.daily.co/v1/ \
  --header 'Authorization: Bearer $DAILY_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "properties": {
      "pin_dialin": [{
        "phone_number": "+12095038039",
        "name_prefix": "pin-dialin",
        "ivr_greeting": {
          "message": "Welcome to the Daily meeting room. Please enter your dial-in PIN."
        }
      }]
    }
  }'
```

See the [`pin_dialin` domain configuration reference](/reference/rest-api/domain/set-domain-config#body-properties-pinless-dialin) for full details.

## Global dial-in numbers

If you don't purchase a phone number, Daily provides global dial-in numbers in 27 countries. Free tier includes US and Canada. See the [overview](/docs/guides/features/dial-in-dial-out/index#global-dial-in-numbers) for more information.
