# Airdrops

## Launch Airdrop

You can quickly distribute tokens from collections you've launched with Comet by using the `POST /airdrop` API endpoint. You'll need to specify a list of recipients (either their Comet User IDs or Solana addresses), and for each recipient indicate which collection you want them to receive. An example request is below.

After you've launched your airdrop, Comet will return an `id` that you can use to monitor the status of the airdrop.

{% hint style="warning" %}
Keep in mind that you cannot mint any collection past its `maxSupply`, when applicable. If you try to airdrop more NFTs from a collection than there are available tokens, some recipients won't receive the airdrop.
{% endhint %}

{% hint style="warning" %}
Even if your NFT collection requires payment, recipients will receive your airdropped NFTs for free.
{% endhint %}

<details>

<summary>Example Request Body</summary>

```
{
  "airdrops": [
    { "collectionId": "9f46cddbd46f", "address": "AXkcPCWrWYGuayYgKp7y6LhugKzq5f3pqeKnrSod9ufy" },
    { "collectionId": "9f46cddbd46f", "userId": "c4367732ab0c" }
  ] 
}
```

</details>

## Send tokens to many users.

<mark style="color:green;">`POST`</mark> `https://api.withcomet.com/v1/airdrop`

#### Headers

| Name                                            | Type   | Description  |
| ----------------------------------------------- | ------ | ------------ |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer token |

#### Request Body

| Name                                       | Type   | Description                                                        |
| ------------------------------------------ | ------ | ------------------------------------------------------------------ |
| airdrops<mark style="color:red;">\*</mark> | String | List of recipients, specifying which collection each will receive. |

{% tabs %}
{% tab title="200: OK Successful operation" %}

```javascript
{
    "id": "I4WTgq6ZHb2ncugUWBz1oSPDld5eJi5U",
    "count": 2
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

## Check Airdrop Status

## Get the status of a previously launched airdrop.

<mark style="color:blue;">`GET`</mark> `https://api.withcomet.com/v1/airdrop/:id`

#### Headers

| Name                                            | Type   | Description  |
| ----------------------------------------------- | ------ | ------------ |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer token |

{% tabs %}
{% tab title="200: OK Successful operation" %}

```javascript
{
    "id": "I4WTgq6ZHb2ncugUWBz1oSPDld5eJi5U",
    "statuses": {
        "SUCCEEDED": [
            {
                "taskId": "a64445c3866c7080549051276f289937",
                "CometUserId": "c4367732ab0c",
                "address": "2yAEzsC4GPCT3kGq39K5KLAqPFo4xzvNShDZHqCWo4Gx"
            },
            {
                "taskId": "37e44b47a52368a95bc7a0b2170e2e5f",
                "CometUserId": null,
                "address": "AXkcPCWrWYGuayYgKp7y6LhugKzq5f3pqeKnrSod9ufy"
            }
        ]
    },
    "count": 2
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}


---

# 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://comet-3.gitbook.io/comet-sdk/reference/comet-sdk-reference/comet-rest-api/airdrops.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.
