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

# Place a click-to-call

> Trigger an outbound call to a number of your choosing and have it bridge to your own softphone, from your own signed-in session.

Place an ad-hoc outbound call — not tied to a campaign or lead — and have it bridge to
whichever agent is signed in and made the request.

<Note>
  This endpoint identifies the caller as a specific signed-in agent, so it only works with a
  **user session token** (from `POST /auth/login`), not a workspace API key — see
  [Authentication](/developers/authentication). A workspace API key has no agent identity
  behind it and gets `403 Forbidden`.
</Note>

## Before you start

* The signed-in user needs their own SIP extension — every invited user gets one
  automatically, see [Invite users](/account/invite-users).

## Steps

<Steps>
  <Step title="Send the request">
    ```bash theme={null}
    curl -X POST https://api.get2dial.com/api/v1/cti/click-to-call \
      -H "Authorization: Bearer <user-session-token>" \
      -H "Content-Type: application/json" \
      -d '{"destination": "+14155550100"}'
    ```

    `destination` is required, in E.164 format. `caller_id` is optional — omit it to use your
    workspace's default active outbound number.
  </Step>

  <Step title="Read the response">
    ```json theme={null}
    { "status": "success", "message": "call queued" }
    ```

    A `202 Accepted` means the call was queued for origination — not that it has connected
    yet.
  </Step>
</Steps>

## Verify

<Check>
  The requesting agent's phone rings first; once they answer, Get2Dial dials the destination
  and bridges the two legs. Track the call's progress with the `call.originated`,
  `call.answered`, and `call.bridged` [webhook events](/developers/webhooks/event-catalog).
</Check>

## Common problems

* **403 with "no agent identity for this session."** You authenticated with a workspace API
  key. Use a user session token instead — see the note above.
* **400 "your account has no SIP extension provisioned."** The signed-in user has no SIP
  extension. See [Invite users](/account/invite-users).
* **503 "no edge currently available."** No infrastructure is currently able to place the
  call. Retry, or [contact support](/troubleshooting/contact-support) if it persists.

## Next steps

<CardGroup cols={2}>
  <Card title="Event catalog" href="/developers/webhooks/event-catalog" />

  <Card title="CRM integration" href="/agent/crm-integration" />
</CardGroup>
