API Reference
All endpoints are public and require no authentication. Base URL:
https://api.SolIndexer.io (coming soon — domain pending).
Responses are JSON. Rate limits are not enforced but play nice.
Global index stats — total tokens, images stored, hashes computed, duplicate count, platform breakdown, and last scrape metadata.
GET /api/stats
{
"total_tokens": 52400,
"total_images": 51200,
"total_hashes": 102400,
"duplicates_detected": 12800,
"platforms": [
{ "name": "BONKfun", "slug": "bonkfun", "token_count": 50300 },
{ "name": "Anoncoin", "slug": "anoncoin", "token_count": 2100 }
],
"last_scrape": {
"timestamp": "2026-03-24T18:23:39.347Z",
"new_tokens": 12,
"bonkfun_new": 11,
"anoncoin_new": 1,
"hashed": 12,
"errors": 0
}
}
Search the token index by ticker symbol, name, or description. Returns matching tokens ordered by the chosen sort, plus usage count and OG token for the queried ticker.
| Param | Type | Default | Description |
|---|---|---|---|
| q | string | — | Search query. Required. Empty returns no results. |
| field | string | ticker | ticker searches symbol, name searches name, description searches description. |
| exact | boolean | false | If true, uses exact case-insensitive match instead of LIKE. Does not apply to description field. |
| sort | string | mcap | mcap = market cap desc, newest = created_at desc, oldest = created_at asc. |
| platform | string | all | Filter by platform slug: bonkfun or anoncoin. Omit for all platforms. |
| limit | integer | 20 | Max results to return. Hard cap at 100. |
GET /api/search?q=BONKERS&field=ticker&exact=true&sort=newest&platform=bonkfun&limit=5
{
"tokens": [
{
"id": 1042,
"mint": "CbHhc7M7CzNnbf4mQ8FNnz3NN4KCtGVdeQQZa2Rvbonk",
"name": "The Bonk Cult",
"symbol": "BONKERS",
"image_url": "https://...",
"market_cap": 64182.04,
"created_at": "2026-03-24T17:59:31.000Z",
"platform_name": "BONKfun",
"platform_slug": "bonkfun"
}
],
"total": 1,
"ticker_count": 34, // exact matches across all platforms
"og_mint": "CbHhc7M7CzNnbf4mQ8FNnz3NN4KCtGVdeQQZa2Rvbonk" // oldest by created_at
}
Paginated list of all tokens, ordered by scrape time descending. Use for bulk browsing or syncing.
| Param | Type | Default | Description |
|---|---|---|---|
| limit | integer | 50 | Results per page. Hard cap at 200. |
| offset | integer | 0 | Pagination offset. |
| platform | string | — | Filter by platform slug: bonkfun or anoncoin. |
GET /api/tokens?limit=2&offset=0&platform=bonkfun
{
"tokens": [ /* token objects */ ],
"total": 50300,
"limit": 2,
"offset": 0
}
Fetch a single token by its mint address, including perceptual hashes and any known duplicates (tokens sharing the same image hash).
GET /api/token/CbHhc7M7CzNnbf4mQ8FNnz3NN4KCtGVdeQQZa2Rvbonk
{
"token": {
"mint": "CbHhc7M7CzNnbf4mQ8FNnz3NN4KCtGVdeQQZa2Rvbonk",
"name": "The Bonk Cult",
"symbol": "BONKERS",
"market_cap": 64182.04,
"platform_name": "BONKfun"
},
"hashes": [
{ "hash_type": "phash", "hash_value": "f7e3913d79190347" },
{ "hash_type": "dhash", "hash_value": "3c3c3c7e7e3c1800" }
],
"duplicates": [
{
"mint": "7xK...9fQ",
"name": "Bonk Cult II",
"symbol": "BONKERS",
"platform_name": "BONKfun"
}
]
}
All computed dashboard intelligence in a single call. Covers search activity, token stats, most copied tickers, reused image hashes, serial deployer wallets, platform breakdown, and live feeds. Recommended polling interval: 60s.
GET /api/intel
{
"searches": {
"total": 1423,
"today": 87,
"most_searched": { "query": "bonkers", "count": 45 }
},
"tokens": {
"total": 52400,
"today": 340,
"duplicates": 12800
},
"top_copied_tickers": [
{ "name": "hodl", "count": 202 }
],
"top_reused_images": [
{
"hash_value": "f7e3913d79190347",
"count": 165,
"sample_image_url": "https://...",
"sample_name": "BONDS FIRST ITL"
}
],
"top_serial_wallets": [
{
"wallet": "bwamJz...fSXa",
"token_count": 919,
"latest_name": "OFFICIAL TRUMP 2"
}
],
"platform_breakdown": [
{ "name": "BONKfun", "count": 50300 },
{ "name": "Anoncoin", "count": 2100 }
],
"recent_tokens": [
{
"name": "MemeCoinX",
"symbol": "MCX",
"image_url": "https://...",
"platform": "BONKfun",
"created_at": "2026-03-24T19:00:00.000Z"
}
],
"recent_duplicates": [
{
"name": "FakeDoge",
"symbol": "DOGE2",
"image_url": "https://...",
"duplicate_of": "OriginalDoge",
"scraped_at": "2026-03-24T19:01:00.000Z",
"platform": "BONKfun"
}
]
}
Check an image against the full index using perceptual hashing. Returns all tokens whose image hash matches above the similarity threshold. Accepts a URL or a file upload.
| Field | Type | Default | Description |
|---|---|---|---|
| image_url | string | — | Public URL of the image to check. |
| threshold | float | 0.85 | Minimum similarity score (0–1). Lower = more results. |
| Field | Type | Description |
|---|---|---|
| image | file | Image file. Max 10MB. Replaces image_url. |
| threshold | float | Same as JSON mode. |
POST /api/check Content-Type: application/json { "image_url": "https://metadata.example.com/images/token.png", "threshold": 0.85 }
curl -X POST https://api.SolIndexer.io/api/check \ -F "image=@/path/to/image.png" \ -F "threshold=0.85"
{
"query_hashes": {
"phash": "f7e3913d79190347",
"dhash": "3c3c3c7e7e3c1800"
},
"matches": 4,
"is_recycled": true,
"results": [
{
"token": {
"name": "FakeDogeAI",
"symbol": "FDOGE",
"mint": "7xK...9fQ",
"image_url": "https://...",
"market_cap": 4200.0,
"platform": "BONKfun",
"created_at": "2026-01-15T10:22:00.000Z"
},
"similarity": 0.982,
"hash_type": "phash"
}
]
}