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

# Solana Token API

> Jupiter's Solana Token API: search any Solana token by name, symbol or mint and get its metadata, verification status, Organic Score and trading stats in one request.

The Token API is Jupiter's REST API for Solana token data, served at `https://api.jup.ag/tokens/v2`. One `GET /search` request for a token name, symbol or mint address returns what an application needs to display and vet that token:

* **Metadata**: name, symbol, icon, decimals, mint address, token program and project links.
* **Trust signals**: Jupiter verification status, [Organic Score](#organic-score) and audit flags such as mint authority, freeze authority and top-holder concentration.
* **Market data**: USD price, market cap, fully diluted valuation, liquidity, holder count and buy and sell statistics over 5 minutes, 1 hour, 6 hours and 24 hours.

It is the token data behind Jupiter's own search and token pages, and it answers without an API key for testing. Wallets, trading terminals, launchpads and analytics tools use it to build token lists, show token pages and filter out tokens their users should not see.

## Quick start

Search for JUP by symbol. No API key is needed:

```bash Request theme={null}
curl "https://api.jup.ag/tokens/v2/search?query=JUP"
```

```json Response (trimmed) theme={null}
[
  {
    "id": "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN",
    "name": "Jupiter",
    "symbol": "JUP",
    "icon": "https://static.jup.ag/jup/icon.png",
    "decimals": 6,
    "isVerified": true,
    "organicScore": 98.46,
    "organicScoreLabel": "high",
    "usdPrice": 0.3259,
    "mcap": 1082025274.94,
    "liquidity": 5789723.04,
    "holderCount": 838275,
    "audit": {
      "mintAuthorityDisabled": true,
      "freezeAuthorityDisabled": true,
      "topHoldersPercentage": 15.46
    },
    "tags": ["verified", "community", "strict"],
    "stats24h": { "priceChange": -2.1, "numBuys": 10234, "numSells": 9876 }
  }
]
```

The same endpoint resolves a batch of known mints: comma-separate up to 100 mint addresses in `query`. The full response schema is on [Token Information](https://developers.jup.ag/docs/tokens/token-information.md) and the step-by-step tutorial is [How to Get Token Information on Solana](https://developers.jup.ag/docs/guides/how-to-get-token-information.md).

> [!TIP]
>
> Keyless requests are limited to 0.5 requests per second. For production, pass an API key in the `x-api-key` header. See [Rate Limits](https://developers.jup.ag/docs/portal/rate-limits.md).

## Supported tokens and lookups

Token objects carry `tokenProgram`, so both SPL Token and Token-2022 mints are returned, and the `/recent` endpoint lists tokens by the time their first pool was created. Four endpoints cover the ways an application looks tokens up:

| Lookup | Endpoint | Returns |
| - | - | - |
| By name, symbol or mint | [`GET /search`](https://developers.jup.ag/docs/api-reference/tokens/search) | Closest matches for a name or symbol (20 by default), or the exact tokens for up to 100 comma-separated mints |
| By tag | [`GET /tag`](https://developers.jup.ag/docs/api-reference/tokens/tag) | Every token carrying a tag: `verified`, `lst` (liquid staking tokens) or `stocks` (tokenised equities) |
| By category | [`GET /{category}/{interval}`](https://developers.jup.ag/docs/api-reference/tokens/category) | Top tokens by `toporganicscore`, `toptraded` or `toptrending` over `5m`, `1h`, `6h` or `24h`. `toptraded` and `toptrending` leave out majors such as SOL and USDC; `toporganicscore` includes them |
| By recency | [`GET /recent`](https://developers.jup.ag/docs/api-reference/tokens/recent) | Tokens ordered by the time their first pool was created |

Every endpoint returns the same token object, so one display component works for search results, tag lists and category rankings.

## Metadata and market data

| Field | Description |
| - | - |
| **Metadata** | Name, symbol, icon, decimals, mint address, token program, project links (website, X, Telegram, Discord) |
| **Verification** | Verification level (verified, unverified, banned) |
| **Organic Score** | 0-100 score measuring genuine trading activity |
| **Trading Stats** | Volume, price change, buy/sell counts across intervals (5m, 1h, 6h, 24h) |
| **Market Data** | Holder count, market cap, fully diluted valuation, liquidity |
| **Audit** | Mint and freeze authority status, top-holder percentage, `isSus` when a token has been flagged |
| **Content** | Community-submitted text posts, tweets, summaries *(deprecated)* |

## Verification

Jupiter categorises tokens into trust levels based on trading activity, social presence, and community review:

| Level | Meaning | When to use |
| - | - | - |
| **Verified** | Passed Jupiter's verification process. Legitimate project with real activity. | Safe to display prominently. |
| **Unverified** | Not yet reviewed or doesn't meet criteria. May still be legitimate. | Display with caution indicators. |
| **Banned** | Flagged as malicious, scam, or misleading. | Do not display or warn users. |

Check the `isVerified` field in the API response. Use `audit.isSus` as an additional signal for suspicious tokens. `audit.isSus` is only present when a token has been flagged, so check for the field's presence rather than its value.

Projects submit tokens for verification on [Jupiter VRFD](https://verified.jup.ag) for free, or programmatically through the [Express Verification API](https://developers.jup.ag/docs/tokens/verification.md), which costs 1000 JUP per submission and suits launchpads and agents.

## Organic Score

Organic Score (0-100) measures how genuine a token's trading activity is, filtering out bots, snipers, and copy-trading tools so you can find the signal within the noise. The system identifies non-organic wallets (those trading through known bot and automation channels) and treats the remaining activity as organic.

The score combines four organic signals:

* Organic volume
* Organic holders
* Organic traders
* Organic buyers

A few things to keep in mind when using it:

* **It is relative, not absolute.** Scores are normalised against the rest of the ecosystem. The score says a token is more organic than another, not that it has a specific amount of organic activity. High-volume tokens like SOL and USDC sit near 100 because differences flatten out at that scale.
* **Early growth counts most.** Going from 10 organic buyers to 100 moves the score far more than going from 10,000 to 10,100.
* **Prefer the raw score over the label.** Each token also has an `organicScoreLabel` of `high`, `medium`, or `low`, but these buckets are wide: two tokens can both be `medium` and behave very differently. For filtering, use the raw `organicScore`.

For more detail, see [How does Jupiter decide if a token is real?](https://developers.jup.ag/blog/what-is-organic-score).

## Prices

Every token object carries `usdPrice`, `mcap`, `fdv` and `liquidity`, plus price, volume, holder and liquidity changes in each `stats` interval, so a token page needs no second call. For pricing alone, such as valuing a wallet's holdings across up to 50 mints, use the [Price API](https://developers.jup.ag/docs/price.md): it also returns a `usdPrice`, with the `blockId` it was computed at, and nothing else.

## Token Tags

Token tags are labels applied to tokens for categorisation and discoverability (e.g. `verified`, `lst`, `stocks`, `community`). Tags appear in the Jupiter UI and are available via the [GET /tag](https://developers.jup.ag/docs/api-reference/tokens/tag.md) endpoint.

To get your tokens tagged:

1. Host a public CSV endpoint with mint addresses (one per row)
2. Provide a preferred tag name (short, mobile-friendly)
3. Set a polling interval
4. Reach out via [Discord](https://discord.gg/jup) to begin ingestion

## Typical integrations

> [card] [Wallets and token selectors](https://developers.jup.ag/docs/guides/how-to-get-token-information.md)
>
> `/search` for the token picker, `isVerified` and `audit` to warn users, and one batched `/search` call to resolve the mints in a wallet.

> [card] [Trading terminals and discovery](https://developers.jup.ag/docs/api-reference/tokens/category.md)
>
> `/{category}/{interval}` for trending and top-traded lists, `/recent` for new launches, and the `stats` intervals for movers.

> [card] [Launchpads and token projects](https://developers.jup.ag/docs/tokens/verification.md)
>
> Submit new tokens for verification and metadata updates through the Express Verification API.

> [card] [Analytics and AI agents](https://developers.jup.ag/docs/ai/cli.md)
>
> Organic Score, holder and volume statistics for screening, keyless calls for prototyping, and a Markdown version of this page at `.md`.

## API Reference

> [card] [Search](https://developers.jup.ag/docs/api-reference/tokens/search.md)
>
> Search by name, symbol, or mint address

> [card] [Tag](https://developers.jup.ag/docs/api-reference/tokens/tag.md)
>
> Get tokens by tag (verified, lst, stocks)

> [card] [Category](https://developers.jup.ag/docs/api-reference/tokens/category.md)
>
> Top tokens by organic score, volume, or trending

> [card] [Recent](https://developers.jup.ag/docs/api-reference/tokens/recent.md)
>
> Recently created tokens with first pool

> [card] [Check Eligibility](https://developers.jup.ag/docs/api-reference/tokens/verify-check-eligibility.md)
>
> Check if a token can be verified

> [card] [Craft Transaction](https://developers.jup.ag/docs/api-reference/tokens/verify-craft-txn.md)
>
> Get an unsigned 1000 JUP payment transaction

## FAQ

> [accordion] How do I fetch token metadata using the Solana Token API?
>
> Call `GET https://api.jup.ag/tokens/v2/search?query=<name, symbol or mint>`. The response is an array of token objects with `name`, `symbol`, `icon`, `decimals`, `id` (the mint address) and the project's links, alongside verification, Organic Score and market data. To resolve several known tokens at once, comma-separate up to 100 mint addresses in `query`. See [Token Information](https://developers.jup.ag/docs/tokens/token-information.md) for every field.

> [accordion] What is the Organic Score in the Token API response?
>
> `organicScore` is a 0-100 measure of how genuine a token's trading activity is, computed from organic volume, holders, traders and buyers after wallets that trade through known bots and automation tools are removed. It is relative to the rest of the ecosystem, moves most in a token's early growth, and comes with an `organicScoreLabel` (`high`, `medium`, `low`) that is too coarse for filtering: use the raw score. Details in [Organic Score](#organic-score).

> [accordion] How do I know whether a token is safe to show?
>
> Combine three fields. `isVerified` tells you the token passed Jupiter's verification. `audit` reports whether the mint and freeze authorities are disabled and what share of supply the top holders own, and carries `isSus` only when the token has been flagged. `organicScore` separates real trading from bot activity. Tokens tagged `verified` can also be listed directly with `GET /tag?query=verified`.

> [accordion] How do I distinguish tokens that share the same symbol?
>
> Use the mint address (`id`), which is unique; a symbol such as `USDC` or `JUP` can be claimed by any mint. When a `/search` by symbol returns several results, `isVerified`, `organicScore`, `holderCount`, `liquidity` and the `audit` flags separate the real token from imitations. In your own application, store and look tokens up by mint, never by symbol.

> [accordion] How do I discover trending or recently listed Solana tokens?
>
> `GET /{category}/{interval}` with `toptrending`, `toptraded` or `toporganicscore` and an interval of `5m`, `1h`, `6h` or `24h` returns the current leaders, excluding majors such as SOL and USDC. `GET /recent` returns tokens ordered by the time their first pool was created. Both return the same token object as `/search`. See [Supported tokens and lookups](#supported-tokens-and-lookups).

> [accordion] How do I get a token verified?
>
> Submit it on [Jupiter VRFD](https://verified.jup.ag), which is free, or use the [Express Verification API](https://developers.jup.ag/docs/tokens/verification.md): check eligibility, craft a 1000 JUP payment transaction (payable in JUP, SOL, USDC or JUPUSD), sign it and execute. Verification and metadata updates are reviewed independently.

> [accordion] Should I use the Token API or the Price API for prices?
>
> Both return a `usdPrice`. Use the Token API when you also need metadata, verification or trading stats, for example on a token page. Use the [Price API](https://developers.jup.ag/docs/price.md) when you only need prices, for example to value a wallet, since it prices up to 50 mints per request and returns the `blockId` each price was computed at.

> [accordion] Do I need an API key?
>
> Not to try it: keyless requests work at 0.5 requests per second. For production, pass an API key in the `x-api-key` header; the free plan starts at 1 request per second and paid plans go higher. One key covers every Jupiter API. See [Rate Limits](https://developers.jup.ag/docs/portal/rate-limits.md).

> [accordion] How do I get my tokens tagged?
>
> Host a public CSV of mint addresses, choose a short tag name and a polling interval, then ask in [Discord](https://discord.gg/jup) to start ingestion. Tags then appear in the Jupiter UI and through `GET /tag`. See [Token Tags](#token-tags).

> [accordion] Is the Content API still available?
>
> The Content API (token posts, tweets and summaries from Jupiter VRFD) is deprecated and will be replaced as part of an upcoming Token API update. Existing integrators should reach out as described on the [Content API](https://developers.jup.ag/docs/tokens/content) page. Token metadata, verification and market data are not affected.

## History

Token verification on Solana has evolved through several iterations: from the original Solana Token Registry (deprecated 2022), to Jupiter's community-maintained token lists (V1 via GitHub, V2 via Catdet List), to the current system powered by trading metrics, social signals, and Organic Score. Today, [Jupiter VRFD](https://verified.jup.ag) is the latest evolution, expanding beyond verification into token metadata, community content, and insights.

## Learn More

* [Token Information](https://developers.jup.ag/docs/tokens/token-information.md) for the full response schema and field reference
* [Express Verification](https://developers.jup.ag/docs/tokens/verification.md) to submit tokens for verification via API
* [Get Token Information guide](https://developers.jup.ag/docs/guides/how-to-get-token-information.md) for a step-by-step integration tutorial


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.