# Overview

Every Wallet Master Discord command as an HTTP endpoint: submit a request, poll, and download the same file the bot would send, from your own scripts.

The Bot API is the Discord bot over HTTP\. Every command that finds tokens or traders, analyses wallets or looks up addresses has an endpoint that takes the same inputs and returns the same file, for scripts, schedulers and dashboards\. Part of the Wallet Database \+ API plan\.

:::banner{type=info}
[Plans and what is included](/plans)
:::

## How it differs from the REST API

The REST API answers in the same response\. The Bot API works like the bot: the job goes into a queue, you poll until it is done, then you download the file\. Three calls instead of one, because these jobs can take from a second to several minutes\.

```mermaid
flowchart LR
  A[Submit the request] --> B[requestId] --> C[Poll /request/id every 5 s] --> D[url is set] --> E[Download the file]
```

The whole cycle, with the exact shapes, is on [The request queue](/bot-api-request-queue)\.

## Every endpoint and its command

Same base URL, same `api_key` header as the rest of the API: `https://botapi.walletmaster.tools`\. Every row below is a page of its own\.

### Find tokens

| Endpoint | Discord command | Returns |
| --- | --- | --- |
| `GET /trending` | /trendingtokens | The most swapped tokens over an interval, \.txt |
| `GET /migratedtokens` | /migratedtokens | Tokens that just migrated from a launchpad, \.csv or \.txt |
| `GET /mcaptokens` | /mcaptokens | Tokens that crossed a market cap in the last days, \.csv |
| `POST /athmcap` | /athmcap | All\-time\-high market cap per token, \.csv |

### Find traders

| Endpoint | Discord command | Returns |
| --- | --- | --- |
| `POST /toptraders` | /toptraders | The most profitable wallets per token, \.zip or one \.txt |
| `POST /earlybuyers` | /earlybuyers | The first buyers per token, \.zip of \.csv |
| `POST /alltraders` | /alltraders | Every wallet that traded a token, \.zip of \.csv |
| `GET /dexwallets` | /dexwallets | Every wallet active on a venue, \.txt |
| `GET /botwallets` | /botwallets | Users of a trading bot, \.txt |
| `GET /programstats` | /programstats | Custom swap programs in use, \.csv |
| `GET /programswaps` | /programswaps | Swaps through a program, \.csv or \.txt |
| `GET /lookuptablestats` | /lookuptablestats | Lookup tables in use, \.csv |
| `GET /lookuptableswaps` | /lookuptableswaps | Swaps through a lookup table, \.csv or \.txt |

### Analyze

| Endpoint | Discord command | Returns |
| --- | --- | --- |
| `POST /pnl` | /pnlplus | Every metric for every wallet on a list, \.csv |
| `GET /firstbuysanalyze` | none, API only | A wallet's first buy of every token it bought, \.csv |
| `GET /mcap` | /mcapanalyze | Wallets that first bought a token inside a market cap range, \.csv |
| `GET /timestamp` | /timestampanalyze | Wallets that first bought a token inside a time window, \.csv |
| `GET /buysellfilter` | /buysellfilter | Wallets that traded a token for a SOL amount in a range, \.csv |
| `POST /tokensoverlap` | /tokensoverlap | Wallets that bought every token on a list inside its window, \.txt |

### Utility

| Endpoint | Discord command | Returns |
| --- | --- | --- |
| `GET /findaddress` | /findaddress | Full addresses matching a fragment, \.txt |

### Your account

| Endpoint | What it does |
| --- | --- |
| `GET /request/{requestId}` | The status of one request, and its file when done |
| `GET /requests` | Your past requests, with their files |
| `GET /credits` | Your remaining credits |
| `POST /reset_ip` | Resets the IP address saved for your key |

`/metatraders` has no endpoint; it is bot\-only\.

## When a request is charged

The same quota as the REST API: 1,000,000,000 credits \(1000M\) every 30 days, one balance for both\. A Bot API request is charged when it is accepted, at the price on [Credit costs](/bot-api-credit-costs); a request that is refused at submit costs nothing\.

> [!TIP]
> Inputs that are heavy for the bot are heavy for the API\. Start with a short interval, a specific token or a small list; a request the server cannot acknowledge within 100 seconds is refused with a timeout, nothing queued, nothing charged\.

> [!NOTE]
> The API is for personal use\. If you want to power a product or a service of your own with Wallet Master data, ask in the Discord server about a custom plan\.
