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

# Quickstart

> Send a safe test batch to POST /v1/scrub and interpret the result.

This guide uses synthetic numbers and placeholder credentials. Replace them
only inside your own controlled backend or terminal.

## Prerequisites

* An active DNC LATAM organization.
* A country entitlement for `mx` or `ar`.
* A live API key created in the [DNC LATAM dashboard](https://app.dnclatam.com).
* A secure server-side environment. Do not call the API from browser code.

<Steps>
  <Step title="Store the API key securely">
    Keep the key in your secret manager or a local environment variable. Never
    commit it, paste it into AI chat, or expose it to a browser.

    ```bash theme={null}
    export DNC_LATAM_API_KEY="dnc_live_YOUR_KEY"
    ```
  </Step>

  <Step title="Generate an idempotency key">
    Create one random UUID for this logical request. Reuse it only if you retry
    the exact same country and phone array.

    ```bash theme={null}
    export DNC_LATAM_IDEMPOTENCY_KEY="$(uuidgen)"
    ```
  </Step>

  <Step title="Submit a synthetic batch">
    The example deliberately contains one invalid value so the complete
    response shape is visible.

    ```bash theme={null}
    curl https://api.dnclatam.com/v1/scrub \
      -X POST \
      -H "Authorization: Bearer ${DNC_LATAM_API_KEY}" \
      -H "Idempotency-Key: ${DNC_LATAM_IDEMPOTENCY_KEY}" \
      -H "Content-Type: application/json" \
      -d '{
        "country": "mx",
        "phones": ["+52 55 1234 5678", "55 8765 4321", "abc"]
      }'
    ```
  </Step>

  <Step title="Interpret the response">
    A successful request returns HTTP `200`:

    ```json theme={null}
    {
      "prohibited_numbers_to_call": ["+52 55 1234 5678"],
      "safe_numbers_to_call": ["55 8765 4321"],
      "invalid_numbers": [
        {
          "input": "abc",
          "reason": "unparseable"
        }
      ],
      "summary": {
        "total_checked": 3,
        "prohibited_numbers": 1,
        "safe_numbers": 1,
        "invalid_numbers": 1
      }
    }
    ```

    `summary.total_checked` includes every submitted input, including
    duplicates and invalid values.

    <Warning>
      `safe_numbers_to_call` means that the number was not found in the
      selected DNC registry at the time of this check. It does not prove
      consent or compliance with every other calling rule.
    </Warning>
  </Step>
</Steps>

<Note>
  Example phone numbers are illustrative. Their sample classification explains
  the response format and is not a statement about the live registry.
</Note>

## Verify zero data retention

Every API response includes:

```http theme={null}
x-retention: zero
```

Customer phone numbers exist only in request memory. DNC LATAM persists
aggregate usage counts, not the request body, phone numbers, or response.

## Next steps

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/guides/authentication">
    Store and send Bearer API keys safely.
  </Card>

  <Card title="Idempotency" icon="rotate" href="/guides/idempotency">
    Implement exact retries without double-counting usage.
  </Card>

  <Card title="Error handling" icon="triangle-exclamation" href="/guides/errors">
    Handle quotas, rate limits, conflicts, and temporary capacity.
  </Card>

  <Card title="Response dictionary" icon="list-tree" href="/guides/responses">
    Review field-by-field semantics and invariants.
  </Card>
</CardGroup>
