# Earn Game Room

{% hint style="info" %}
Distributes tokens from a game room to one or more players.
{% endhint %}

**Endpoint:** `/game/earn`\
**Method:** POST

{% tabs %}
{% tab title="Request Parameters" %}

```typescript
{
    roomId: string; // The ID of the room to distribute from
    plyrIds: string[]; // Array of player IDs to receive tokens
    tokens: string[]; // Array of token names/symbols
    amounts: number[]; // Array of amounts to distribute (corresponding to tokens array)
    sync?: boolean; // When true, returns direct response. When false/undefined, returns a task ID for polling status
}
```

{% endtab %}

{% tab title="Success Response (200)" %}
When sync=false (default):

```typescript
{
    task: {
        id: string; // Task ID for checking status
    }
}
```

When sync=true:

```typescript
{
    roomId: string;
    distributions: {
        plyrId: string;
        token: string;
        amount: number;
    }
    [];
}
```

{% endtab %}

{% tab title="Error Response (400)" %}

```typescript
{
    error: string;
}
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
The arrays \`plyrIds\`, \`tokens\`, and \`amounts\` must have corresponding lengths.
{% endhint %}

## Example Usage

```javascript
// Sync=true usage
const timestamp = Date.now().toString();
const body = {
    roomId: 'room123',
    plyrIds: ['player1', 'player2'], // Multiple players can receive tokens
    tokens: ['TOKEN1', 'TOKEN2'], // Different tokens can be distributed
    amounts: [100, 200], // Corresponding amounts for each token
    sync: true // or omit for task-based response
};

const hmac = generateHmacSignature(timestamp, body, secretKey);

const response = await axios.post(apiEndpoint + '/game/earn', body, {
    headers: {
        apikey: apiKey,
        signature: hmac,
        timestamp: timestamp
    }
});
```

{% hint style="info" %}
The arrays \`plyrIds\`, \`tokens\`, and \`amounts\` must have corresponding lengths. For example, if distributing multiple tokens to a single player, repeat the plyrId in the array.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dev.plyr.network/api-reference/game-room/earn-game-room.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
