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.

GET /api/stats

Global index stats — total tokens, images stored, hashes computed, duplicate count, platform breakdown, and last scrape metadata.

Request
GET /api/stats
Response
{
  "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
  }
}


GET /api/tokens

Paginated list of all tokens, ordered by scrape time descending. Use for bulk browsing or syncing.

Query Parameters
ParamTypeDefaultDescription
limitinteger50Results per page. Hard cap at 200.
offsetinteger0Pagination offset.
platformstringFilter by platform slug: bonkfun or anoncoin.
Request
GET /api/tokens?limit=2&offset=0&platform=bonkfun
Response
{
  "tokens": [ /* token objects */ ],
  "total": 50300,
  "limit": 2,
  "offset": 0
}

GET /api/token/:mint

Fetch a single token by its mint address, including perceptual hashes and any known duplicates (tokens sharing the same image hash).

Request
GET /api/token/CbHhc7M7CzNnbf4mQ8FNnz3NN4KCtGVdeQQZa2Rvbonk
Response
{
  "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"
    }
  ]
}

GET /api/intel

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.

Request
GET /api/intel
Response
{
  "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"
    }
  ]
}

POST /api/check

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.

Body (JSON — URL mode)
FieldTypeDefaultDescription
image_urlstringPublic URL of the image to check.
thresholdfloat0.85Minimum similarity score (0–1). Lower = more results.
Body (multipart/form-data — upload mode)
FieldTypeDescription
imagefileImage file. Max 10MB. Replaces image_url.
thresholdfloatSame as JSON mode.
Request (URL)
POST /api/check
Content-Type: application/json

{
  "image_url": "https://metadata.example.com/images/token.png",
  "threshold": 0.85
}
Request (curl — file upload)
curl -X POST https://api.SolIndexer.io/api/check \
  -F "image=@/path/to/image.png" \
  -F "threshold=0.85"
Response
{
  "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"
    }
  ]
}