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

# Quickstart

> Launch your first smatvirtual game session in minutes.

## Get integrated in three steps

This guide will walk you through authenticating your requests, syncing our casino catalog, and generating your first game launch URL.

### Step 1: Prepare your Authentication

To communicate with our gateway, you need to construct your `sv-api-key`. This header tells our system who you are and which operator environment to load.

<AccordionGroup>
  <Accordion icon="key" title="Construct your API Key">
    Your key is a concatenation of three values provided by your account manager:
    `PUBLIC_KEY` . `OPERATOR_SLUG`

    **Example:** `SV.pk_live_12345.smatvirtual-us`
  </Accordion>

  <Accordion icon="rectangle-terminal" title="Test your Connection">
    Try a simple `GET` request to our staging environment to verify your key:

    ```bash cURL theme={null}
    curl --request GET \
      --url https://api-staging.smatvirtual.com/api/v1.1/operator-api/games \
      --header 'sv-api-key: YOUR_CONCATENATED_KEY'
    ```
  </Accordion>
</AccordionGroup>

### Step 2: Sync the Casino Portfolio

Before you can launch a game, you need its unique `gameId`. Use the Games endpoint to pull the latest list of available Instant and Tournament titles.

<AccordionGroup>
  <Accordion icon="list-check" title="Fetch Game IDs">
    Call the `/games` endpoint. You will receive a JSON array of available
    titles. 1. Identify the `gameId` (e.g., `spin-win`, `tournament`). 2. Store
    these in your database to populate your game lobby.
  </Accordion>

  <Accordion icon="filter" title="Filter by Category">
    Our API allows you to distinguish between **Instant Games** (Single Player)
    and our **Flagship Tournament** engine. Use these categories to organize
    your UI.
  </Accordion>
</AccordionGroup>

### Step 3: Launch your first Game

The final step is to request a signed URL. This URL is what you will use to redirect your player into the game.

<AccordionGroup>
  <Accordion icon="rocket" title="Request a Launch URL">
    Send a `GET` request to the `/games/generate-launch-url` endpoint with the following required parameters:

    1. **gameId**: The slug you retrieved in Step 2.
    2. **playerId**: Your internal unique ID for the user.
    3. **sessionId**: A unique token for this specific session.

    **The Response:**

    ```json Response.json theme={null}
    {
      "url": "https://instant.smatvirtual.com/play?token=abc..."
    }
    ```
  </Accordion>
</AccordionGroup>

## Next steps

Now that you have mastered the basics, dive deeper into our advanced features:

<CardGroup cols={2}>
  <Card title="Demo Mode" icon="flask" href="/guides/demo-mode">
    Learn how to trigger free-play sessions with a single query parameter.
  </Card>

  <Card title="Authentication Deep Dive" icon="shield-check" href="/authentication">
    Detailed breakdown of security and key management.
  </Card>

  <Card title="Tournament Engine" icon="trophy" href="/guides/tournaments">
    Explore the unique logic behind our flagship competitive games.
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/introduction">
    Browse the full specification for every smatvirtual endpoint.
  </Card>
</CardGroup>

<Note>
  **Pro-Tip:** Always perform your initial integration against our [Staging
  Environment](https://api-staging.smatvirtual.com) before moving to Production.
</Note>
