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

# Quickstart

> Place your first call with the RevDesk API in about five minutes.

This walks you from zero to a live, connected call. You'll authenticate, place a call between two
numbers, and check its outcome.

<Note>
  **Prefer TypeScript?** The official [`@revdesk/sdk`](/api-reference/sdks) wraps every endpoint below
  with typed methods, so `revdesk.calls.dial({ … })` replaces the raw `curl` calls. See
  [Official SDKs](/api-reference/sdks).
</Note>

<Steps>
  <Step title="Get an API key">
    Create a key in **Settings → API Keys** (or ask your RevDesk contact). Keys are prefixed with
    `rv_` and are shown once. Store it as an environment variable:

    ```bash theme={null}
    export REVDESK_API_KEY="rv_your_key_here"
    ```

    Every request authenticates with a Bearer token. See [Authentication](/api-reference/authentication)
    for scopes.
  </Step>

  <Step title="Confirm a number you own">
    Calls go out *as* a number on your account. List yours:

    ```bash theme={null}
    curl https://api.revdesk.com/v1/phone-numbers \
      -H "Authorization: Bearer $REVDESK_API_KEY"
    ```

    Note one active number to use as your caller ID (`from_number`). Don't have one yet? See
    [Phone Numbers](/api-reference/phone-numbers) to provision one.
  </Step>

  <Step title="Place your first call">
    Bridge your number to a destination. The called party sees your `from_number`:

    ```bash theme={null}
    curl -X POST https://api.revdesk.com/v1/calls/dial \
      -H "Authorization: Bearer $REVDESK_API_KEY" \
      -H "Content-Type: application/json" \
      -H "Idempotency-Key: $(uuidgen)" \
      -d '{
        "from_number": "+14155550123",
        "to_number": "+14155559876"
      }'
    ```

    The response returns immediately with a `call_id` and `status: "QUEUED"`. The call is placed
    asynchronously.
  </Step>

  <Step title="Track the outcome">
    Poll the call to watch it progress (`QUEUED → RINGING → IN_PROGRESS → COMPLETED`) and get the
    duration and recording when it ends:

    ```bash theme={null}
    curl https://api.revdesk.com/v1/calls/CALL_ID \
      -H "Authorization: Bearer $REVDESK_API_KEY"
    ```
  </Step>
</Steps>

## Where to go next

<CardGroup cols={2}>
  <Card title="Choosing a calling path" icon="route" href="/api-reference/calling-paths">
    Browser calling vs. connecting on a phone, and which fits your use case.
  </Card>

  <Card title="Send an SMS" icon="message" href="/api-reference/sms/stream">
    Text from your numbers and stream inbound replies.
  </Card>

  <Card title="Caller ID & brand" icon="user-check" href="/api-reference/enterprise-registration">
    Verify caller IDs, set CNAM, and register your brand.
  </Card>

  <Card title="Conventions" icon="book" href="/api-reference/conventions">
    Errors, idempotency, and pagination shared by every endpoint.
  </Card>
</CardGroup>
