xcaDocs
Ендпоінти

Звіт по токену

Ринкові дані, безпека, Holder Score, метрики холдерів, кластери, історія дева й торгова активність токена.

GET/api/v1/tokens/{chain}/{address}

Повертає останній звіт XCA по токену. Читання звіту ніколи не запускає скан: якщо статус NONE, токен ще не сканували — спершу виклич POST /scans.

Параметри#

chainpathобов'язково
Ідентифікатор мережі. Поки що лише solana."solana"
addresspathобов'язково
Адреса токена (mint).string

Запит#

curl -s "https://app.xca.fun/api/v1/tokens/solana/DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263" \
  -H "Authorization: Bearer $XCA_API_KEY"
Спробувати
Встав свій API-ключ, щоб надіслати справжній запит.

Відповідь#

chain
Ідентифікатор мережі.string
address
Адреса токена (mint).string
status
Стан звіту. NONE означає, що токен ще не сканували."NONE" | "QUEUED" | "RUNNING" | "DONE" | "ERROR"
depth
LIGHT для автоматичних сканів нових пар, FULL для повного аналізу."LIGHT" | "FULL" | null
upgrading
LIGHT-звіт доповнюється до FULL.boolean
step
Поточний крок, поки йде скан.string | null
progress
Прогрес скану від 0 до 100.number
errorMessage
Причина невдачі останнього скану, коли статус ERROR.string | null
symbol
Тікер токена.string | null
name
Назва токена.string | null
imageUrl
Адреса логотипа токена.string | null
market
Основна торгова пара з DexScreener.object | null
pairAddress
Адреса найліквіднішої пари.string | null
dexId
DEX цієї пари.string | null
url
Сторінка пари на DexScreener.string | null
name
Назва токена з пари.string | null
symbol
Тікер токена з пари.string | null
quoteSymbol
Котирувальний актив пари, наприклад SOL.string | null
imageUrl
Логотип токена з DexScreener.string | null
priceUsd
Ціна в USD.number | null
liquidityUsd
Ліквідність усіх пулів, USD.number | null
fdvUsd
Повністю розбавлена оцінка (FDV), USD.number | null
marketCapUsd
Капіталізація, USD.number | null
volume24hUsd
Обсяг торгів за 24 години, USD.number | null
txns24h
Транзакції купівлі й продажу за 24 години.{ buys, sells } | null
change
Зміна ціни у відсотках за 5 хвилин, 1, 6 і 24 години.{ m5, h1, h6, h24 }
pairCreatedAt
Коли створено пару.string | null
poolAddresses
Адреси всіх відомих пулів токена.string[]
websites
Сайти проєкту.{ url, label }[]
socials
Соцмережі проєкту.{ type, url }[]
fetchedAt
Коли отримано ринкові дані.string
security
Он-чейн факти про mint.object | null
mintAuthority
Хто може випускати нові токени; null, якщо право відкликано.string | null
freezeAuthority
Хто може заморожувати рахунки холдерів; null, якщо право відкликано.string | null
program
Програма токена, якою створено mint."spl-token" | "spl-token-2022" | "unknown"
supply
Загальна пропозиція в цілих токенах.number
decimals
Кількість знаків після коми.number
creator
Гаманець, що створив токен, якщо відомо.string | null
createdAt
Коли створено mint.string | null
computedAt
Коли розраховано звіт.string | null
stale
Звіт старший за час життя кешу.boolean
holderScore
Holder Score від 0 (небезпечно) до 100 (чисто).number | null
riskLevel
Рівень ризику, виведений з оцінки."low" | "medium" | "high" | null
metrics
Метрики розподілу; набір ключів залежить від тарифу.object | null
limited
Дані про холдерів неповні (обмеження постачальника).boolean
holdersTotal
Загальна кількість холдерів.number
holdersAnalyzed
Холдерів, включених в аналіз.number
profiled
Холдерів із повним профілем гаманця.number
top10Pct
Частка 10 найбільших реальних холдерів (без пулів, спалених токенів і бірж).number
devPct
Частка творця.number
devBundlePct
Частка гаманців із бандла творця.number
sniperCount
Кількість гаманців-снайперів.number
sniperPct
Частка снайперів.number
freshCount
Кількість свіжих гаманців.number
freshPct
Частка свіжих гаманців.number
clusterPct
Частка кластерів гаманців зі спільним джерелом фінансування.number
smartCount
Кількість холдерів-smart money.number
smartPct
Частка smart money.number
poolPct
Частка пулів ліквідності.number
burnPct
Частка, відправлена на адреси спалення.number
avgPnlUsd
Середній PnL профільованих холдерів за 30 днів, USD.number | null
launchAt
Коли почалися торги.string | null
launchSlot
Слот Solana першої угоди.number | null
breakdown
Кожен фактор Holder Score з балами й виміряним значенням.{ key, points, value }[]
mainReason
Фактор, що забрав найбільше балів.{ key, points, value } | null
clusters
Групи холдерів, профінансовані одним гаманцем.object[] | null
id
Ідентифікатор кластера, на нього посилається clusterId холдерів.string
funder
Гаманець, що профінансував учасників.string
funderLabel
Відома мітка джерела, наприклад біржа.string | null
members
Гаманці-учасники.string[]
sharePct
Частка кластера.number
clustersCount
Кількість кластерів — навіть коли список кластерів закритий.number
devHistory
Попередні запуски творця.object | null
creator
Гаманець творця.string | null
launches
Токени, запущені творцем.number
rugs
Запуски, що втратили ліквідність.number
avgLifespanSec
Середній час життя токенів творця, якщо відомо.number | null
tokens
Запуски, від найновіших.{ address, symbol, name, createdAt, liquidityUsd, fdvUsd, rugged }[]
approximate
Визначено за найпершими покупками творця, тож це оцінка.true
devTeaser
Кількість запусків і рагів — навіть коли історія дева закрита.{ launches, rugs } | null
activity
Остання торгівля в основній парі.object | null
recent
Останні свопи; time — Unix-час у мілісекундах.{ signature, time, wallet, side, amount, valueUsd }[]
topTraders
Найприбутковіші трейдери токена.{ wallet, boughtUsd, soldUsd, pnlUsd, trades }[]
locked
Функції, яких немає у твоєму тарифі; їхні поля дорівнюють null або відсутні.string[]

Приклад відповіді#

{
  "chain": "solana",
  "address": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
  "status": "DONE",
  "depth": "FULL",
  "upgrading": false,
  "step": "done",
  "progress": 100,
  "errorMessage": null,
  "symbol": "Bonk",
  "name": "Bonk",
  "imageUrl": "https://arweave.net/hQiPZOsRZXGXBJd_82PhVdlM_hACsT_q6wqwf5cSY7I",
  "market": {
    "pairAddress": "6oFWm7KPLfxnwMb3z5xwBoXNSPP3JJyirAPqPSiVcnsp",
    "dexId": "raydium",
    "url": "https://dexscreener.com/solana/6ofwm7kplfxnwmb3z5xwboxnspp3jjyirapqpsivcnsp",
    "name": "Bonk",
    "symbol": "Bonk",
    "quoteSymbol": "SOL",
    "imageUrl": "https://arweave.net/hQiPZOsRZXGXBJd_82PhVdlM_hACsT_q6wqwf5cSY7I",
    "priceUsd": 0.00002134,
    "liquidityUsd": 2864210.4,
    "fdvUsd": 1897000000,
    "marketCapUsd": 1652000000,
    "volume24hUsd": 18450000,
    "txns24h": {
      "buys": 18210,
      "sells": 16930
    },
    "change": {
      "m5": 0.4,
      "h1": -1.2,
      "h6": 3.8,
      "h24": 5.1
    },
    "pairCreatedAt": "2022-12-25T11:04:12.000Z",
    "poolAddresses": [
      "6oFWm7KPLfxnwMb3z5xwBoXNSPP3JJyirAPqPSiVcnsp"
    ],
    "websites": [
      {
        "url": "https://bonkcoin.com",
        "label": "Website"
      }
    ],
    "socials": [
      {
        "type": "twitter",
        "url": "https://x.com/bonk_inu"
      }
    ],
    "fetchedAt": "2026-10-02T09:12:40.000Z"
  },
  "security": {
    "mintAuthority": null,
    "freezeAuthority": null,
    "program": "spl-token",
    "supply": 88870000000000,
    "decimals": 5,
    "creator": "9AhKqLR67hwapvG8SA2JFXaCshXc9nALJjpKaHZrsbkw",
    "createdAt": "2022-12-25T10:52:01.000Z"
  },
  "computedAt": "2026-10-02T09:12:44.000Z",
  "stale": false,
  "holderScore": 78,
  "riskLevel": "low",
  "metrics": {
    "limited": false,
    "holdersTotal": 912345,
    "holdersAnalyzed": 4000,
    "profiled": 100,
    "top10Pct": 21.4,
    "devPct": 0,
    "devBundlePct": 0.3,
    "sniperCount": 2,
    "sniperPct": 0.6,
    "freshCount": 41,
    "freshPct": 3.9,
    "clusterPct": 4.2,
    "smartCount": 7,
    "smartPct": 2.1,
    "poolPct": 3.4,
    "burnPct": 0,
    "avgPnlUsd": 1840.5,
    "launchAt": "2022-12-25T11:04:12.000Z",
    "launchSlot": 168410720,
    "breakdown": [
      {
        "key": "top10",
        "points": -0.7,
        "value": 21.4
      },
      {
        "key": "devBundle",
        "points": -0.5,
        "value": 0.3
      },
      {
        "key": "snipers",
        "points": -0.5,
        "value": 0.6
      },
      {
        "key": "clusters",
        "points": -2.5,
        "value": 4.2
      },
      {
        "key": "fresh",
        "points": -1.3,
        "value": 3.9
      },
      {
        "key": "authorities",
        "points": 0,
        "value": 0
      },
      {
        "key": "devRugs",
        "points": 0,
        "value": 0
      },
      {
        "key": "smartMoneyBonus",
        "points": 10,
        "value": 7
      }
    ],
    "mainReason": {
      "key": "clusters",
      "points": -2.5,
      "value": 4.2
    }
  },
  "clusters": [
    {
      "id": "c1",
      "funder": "5tzFkiKscXHK5ZXCGbXZxdw7gTjjD1mBwuoFbhUvuAi9",
      "funderLabel": null,
      "members": [
        "3Kv1…",
        "8Zq4…",
        "Fh2T…"
      ],
      "sharePct": 1.8
    }
  ],
  "clustersCount": 3,
  "devHistory": {
    "creator": "9AhKqLR67hwapvG8SA2JFXaCshXc9nALJjpKaHZrsbkw",
    "launches": 1,
    "rugs": 0,
    "avgLifespanSec": null,
    "tokens": [],
    "approximate": true
  },
  "devTeaser": {
    "launches": 1,
    "rugs": 0
  },
  "activity": {
    "recent": [
      {
        "signature": "4Vt2…",
        "time": 1790932360000,
        "wallet": "7xKX…",
        "side": "buy",
        "amount": 152000000,
        "valueUsd": 3244.1
      }
    ],
    "topTraders": [
      {
        "wallet": "2bQm…",
        "boughtUsd": 41200,
        "soldUsd": 78900,
        "pnlUsd": 37700,
        "trades": 18
      }
    ]
  },
  "locked": []
}

Коди статусів#

200Успіх
400validation — Некоректний параметр або тіло запиту; дивись error.issues.
401unauthorized — API-ключ відсутній, некоректний або відкликаний.
402planRequired — Тариф не включає доступ до API або цю функцію.
429rateLimited — Забагато запитів на хвилину або вичерпано місячну квоту.

Статус звіту#

NONEЩе не сканували. Запусти скан через POST /scans.
QUEUEDЧекає на вільний воркер.
RUNNINGАналізується; дивись step і progress.
DONEГотово, звіт повний.
ERRORОстанній скан не вдався; дивись errorMessage і спробуй ще раз.

Варто знати#

  • Поля функцій, яких немає у твоєму тарифі, дорівнюють null або відсутні, а їхні ключі перелічені в locked.
  • stale дорівнює true, коли звіт старший за час життя кешу; новий POST /scans оновить його.
  • LIGHT-звіти — це автоматичні скани нових пар, у них немає PnL гаманців, доки хтось не відкриє токен; поки йде доповнення, upgrading = true.
  • Частки рахуються від усієї пропозиції, включно з токенами в пулах.