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

# Onboarding

> From contract signing to live API calls

## Onboarding flow

<Steps>
  <Step title="Receive invite">
    Ticktock sends an email invite. Set your password, then log in to the [Client Portal](/getting-started/client-portal) at `ticktock.bet/client/login`.
  </Step>

  <Step title="Generate an API key">
    In the portal: **API Access** → **New API Key**. Pick a bundle that matches your contract and optionally add extra granular scopes. Copy the key immediately — it is shown once.
  </Step>

  <Step title="Verify with /v1/whoami">
    First request you should make:

    ```bash theme={null}
    curl -H "X-API-Key: <key>" https://ticktock.bet/v1/whoami
    ```

    Returns the tenant identity, granted scopes, sport allowlist, and rate limit.
  </Step>

  <Step title="Optional — request AMQP delivery">
    Email [b2b@ticktock.bet](mailto:b2b@ticktock.bet) to provision a dedicated RabbitMQ vhost + user for push delivery. Skip this if you only need REST + WebSocket.
  </Step>

  <Step title="Optional — IP allowlist">
    Attach an IP allowlist to your API key in the portal for additional security.
  </Step>

  <Step title="Integrate against staging or production">
    Same URL surface, same key shape. Talk to your account manager about which environment to point at first.
  </Step>
</Steps>

## What your account manager needs

To issue your key, the account manager needs:

| Field                  | Example                                              |
| ---------------------- | ---------------------------------------------------- |
| **Company name**       | Acme Sportsbook                                      |
| **Contract bundle(s)** | `cs2.odds.basic` + `cs2.odds.scoreboard-addon`       |
| **Owner email**        | `integrations@acme.com` (receives the portal invite) |
| **Production website** | `https://acme.example.com`                           |
| **Rate limit**         | Default `600 req/min`; adjust per contract           |
| **IP allowlist**       | Optional — restrict the key to specific IPs          |

<Note>
  All credentials are self-service after the first invite — rotate keys, manage IP allowlists, and toggle market access from the [Client Portal](/getting-started/client-portal).
</Note>
