Endpoint
Laporan token
Data pasar, keamanan, Holder Score, metrik holder, klaster, riwayat dev, dan aktivitas trading sebuah token.
GET
/api/v1/tokens/{chain}/{address}Mengembalikan laporan terbaru yang dimiliki XCA untuk sebuah token. Membaca laporan tidak pernah memulai pemindaian: jika statusnya NONE, token itu belum pernah dipindai, jadi panggil POST /scans terlebih dahulu.
Parameter#
chainpathwajibID chain. Untuk saat ini hanya solana."solana"
addresspathwajibAlamat mint token.string
Permintaan#
curl -s "https://app.xca.fun/api/v1/tokens/solana/DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263" \
-H "Authorization: Bearer $XCA_API_KEY"Coba langsung
Tempel kunci API-mu untuk mengirim permintaan sungguhan.
Respons#
chainID chain.string
addressAlamat mint token.string
statusStatus laporan. NONE berarti token belum pernah dipindai."NONE" | "QUEUED" | "RUNNING" | "DONE" | "ERROR"
depthLIGHT untuk pemindaian otomatis pair baru, FULL untuk analisis lengkap."LIGHT" | "FULL" | null
upgradingLaporan LIGHT sedang di-upgrade menjadi FULL.boolean
stepTahap pemindaian saat ini selama pemindaian berjalan.string | null
progressProgres pemindaian dari 0 sampai 100.number
errorMessageAlasan pemindaian terakhir gagal, jika status bernilai ERROR.string | null
symbolTicker token.string | null
nameNama token.string | null
imageUrlURL logo token.string | null
marketPair trading utama dari DexScreener.object | null
marketPair trading utama dari DexScreener.object | null
pairAddressAlamat pair yang paling likuid.string | null
dexIdDEX tempat pair tersebut berada.string | null
urlHalaman DexScreener untuk pair tersebut.string | null
nameNama token menurut pair.string | null
symbolTicker token menurut pair.string | null
quoteSymbolAset quote pair, misalnya SOL.string | null
imageUrlLogo token dari DexScreener.string | null
priceUsdHarga dalam USD.number | null
liquidityUsdLikuiditas semua pool, dalam USD.number | null
fdvUsdValuasi terdilusi penuh (FDV), dalam USD.number | null
marketCapUsdMarket cap, dalam USD.number | null
volume24hUsdVolume trading 24 jam, dalam USD.number | null
txns24hTransaksi beli dan jual dalam 24 jam.{ buys, sells } | null
changePerubahan harga dalam persen selama 5 menit, 1 jam, 6 jam, dan 24 jam.{ m5, h1, h6, h24 }
pairCreatedAtWaktu pair dibuat.string | null
poolAddressesAlamat semua pool token yang diketahui.string[]
websitesSitus web proyek.{ url, label }[]
socialsTautan media sosial proyek.{ type, url }[]
fetchedAtWaktu data pasar diambil.string
securityFakta on-chain tentang mint.object | null
securityFakta on-chain tentang mint.object | null
mintAuthorityPihak yang bisa mencetak token baru; null jika sudah dicabut.string | null
freezeAuthorityPihak yang bisa membekukan akun holder; null jika sudah dicabut.string | null
programProgram token yang dipakai mint."spl-token" | "spl-token-2022" | "unknown"
supplyTotal suplai dalam satuan token utuh.number
decimalsJumlah desimal token.number
creatorDompet yang membuat token, jika diketahui.string | null
createdAtWaktu mint dibuat.string | null
computedAtWaktu laporan dihitung.string | null
staleUmur laporan sudah melewati masa berlaku cache.boolean
holderScoreHolder Score dari 0 (berbahaya) sampai 100 (bersih).number | null
riskLevelTingkat risiko yang diturunkan dari skor."low" | "medium" | "high" | null
metricsMetrik distribusi; key yang tersedia bergantung pada paketmu.object | null
metricsMetrik distribusi; key yang tersedia bergantung pada paketmu.object | null
limitedData holder tidak lengkap (karena batasan penyedia data).boolean
holdersTotalJumlah total holder.number
holdersAnalyzedJumlah holder yang disertakan dalam analisis.number
profiledJumlah holder yang memiliki profil dompet lengkap.number
top10PctPorsi yang dipegang 10 holder riil terbesar (di luar pool, alamat burn, dan exchange).number
topHolderPctPorsi yang dipegang holder riil terbesar.number
floatPctSuplai beredar: porsi di luar pool dan alamat burn.number
devPctPorsi yang dipegang pembuat token.number
devBundlePctPorsi yang dipegang dompet dalam bundle pembuat token.number
sniperCountJumlah dompet sniper.number
sniperPctPorsi yang dipegang sniper.number
freshCountJumlah dompet baru.number
freshPctPorsi yang dipegang dompet baru.number
clusterPctPorsi yang dipegang klaster dompet dengan pendana yang sama.number
smartCountJumlah holder smart money.number
smartPctPorsi yang dipegang smart money.number
poolPctPorsi yang berada di pool likuiditas.number
burnPctPorsi yang dikirim ke alamat burn.number
avgPnlUsdRata-rata PnL 30 hari dari holder yang sudah punya profil, dalam USD.number | null
launchAtWaktu trading dimulai.string | null
launchSlotSlot Solana untuk trade pertama.number | null
scoreVersionVersi model Holder Score yang dipakai untuk menilai laporan.number
breakdownSetiap faktor Holder Score beserta poin dan nilai terukurnya.{ key, points, value, total?, cap? }[]
mainReasonFaktor yang paling banyak mengurangi poin.{ key, points, value, total?, cap? } | null
clustersKelompok holder yang didanai oleh dompet yang sama.object[] | null
clustersKelompok holder yang didanai oleh dompet yang sama.object[] | null
idID klaster, dirujuk oleh clusterId pada holder.string
funderDompet yang mendanai para anggota.string
funderLabelLabel pendana yang dikenal, misalnya sebuah exchange.string | null
membersDompet anggota.string[]
sharePctPorsi yang dipegang klaster.number
clustersCountJumlah klaster, tetap tersedia meskipun daftar klaster terkunci.number
devHistoryPeluncuran sebelumnya dari pembuat token.object | null
devHistoryPeluncuran sebelumnya dari pembuat token.object | null
creatorDompet pembuat token.string | null
launchesJumlah token yang pernah diluncurkan pembuatnya.number
rugsJumlah peluncuran yang kehilangan likuiditasnya.number
avgLifespanSecRata-rata umur token milik pembuatnya, jika diketahui.number | null
tokensDaftar peluncuran, dari yang terbaru.{ address, symbol, name, createdAt, liquidityUsd, fdvUsd, rugged }[]
approximateDisimpulkan dari pembelian paling awal oleh pembuat token, jadi anggap sebagai perkiraan.true
devTeaserJumlah peluncuran dan rug, tetap tersedia meskipun riwayat dev terkunci.{ launches, rugs } | null
activityAktivitas trading terbaru di pair utama.object | null
activityAktivitas trading terbaru di pair utama.object | null
recentSwap terbaru; time adalah Unix timestamp dalam milidetik.{ signature, time, wallet, side, amount, valueUsd }[]
topTradersTrader dengan profit terbesar di token ini.{ wallet, boughtUsd, soldUsd, pnlUsd, trades }[]
lockedFitur yang tidak termasuk dalam paketmu; field-nya bernilai null atau tidak disertakan.string[]
Contoh respons#
{
"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": 84,
"riskLevel": "low",
"metrics": {
"limited": false,
"holdersTotal": 912345,
"holdersAnalyzed": 4000,
"profiled": 100,
"top10Pct": 64.2,
"topHolderPct": 31.7,
"floatPct": 96.6,
"devPct": 0,
"devBundlePct": 0.3,
"sniperCount": 2,
"sniperPct": 6.6,
"freshCount": 41,
"freshPct": 17.6,
"clusterPct": 8.8,
"smartCount": 7,
"smartPct": 2.1,
"poolPct": 3.4,
"burnPct": 0,
"avgPnlUsd": 1840.5,
"launchAt": "2022-12-25T11:04:12.000Z",
"launchSlot": 168410720,
"scoreVersion": 2,
"breakdown": [
{
"key": "top10",
"points": -17.2,
"value": 66.5
},
{
"key": "topHolder",
"points": -5.9,
"value": 32.8
},
{
"key": "devBundle",
"points": 0,
"value": 0.3
},
{
"key": "snipers",
"points": -0.6,
"value": 6.8
},
{
"key": "clusters",
"points": -1.8,
"value": 9.1
},
{
"key": "fresh",
"points": -0.6,
"value": 18.2
},
{
"key": "holders",
"points": 0,
"value": 912345
},
{
"key": "authorities",
"points": 0,
"value": 0
},
{
"key": "devRugs",
"points": 0,
"value": 0,
"total": 1
},
{
"key": "liquidity",
"points": 0,
"value": 2864210.4
},
{
"key": "smartMoneyBonus",
"points": 10,
"value": 7
}
],
"mainReason": {
"key": "top10",
"points": -17.2,
"value": 66.5
}
},
"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": []
}Kode status#
200Berhasil
400validation — Ada parameter atau body yang tidak valid; lihat
error.issues.401unauthorized — Kunci API tidak disertakan, salah format, atau sudah dicabut.
402
planRequired — Paketmu tidak menyertakan akses API atau fitur ini.429
rateLimited — Terlalu banyak permintaan per menit, atau kuota bulanan sudah habis.Status laporan#
NONE | Belum pernah dipindai. Mulai pemindaian dengan POST /scans. |
QUEUED | Menunggu worker. |
RUNNING | Sedang dianalisis; lihat step dan progress. |
DONE | Selesai; laporan sudah lengkap. |
ERROR | Pemindaian terakhir gagal; lihat errorMessage lalu coba lagi. |
Perlu diketahui#
- Field dari fitur yang tidak termasuk dalam paketmu bernilai null atau tidak disertakan, dan key fitur tersebut tercantum di locked.
- stale bernilai true jika umur laporan sudah melewati masa berlaku cache;
POST /scansberikutnya akan memperbaruinya. - Laporan
LIGHTberasal dari pemindaian otomatis pair baru dan belum memuat PnL dompet sampai ada yang membukanya; selama proses upgrade itu berlangsung, upgrading bernilai true. - Porsi dinyatakan dalam persen dari total suplai, termasuk token yang dipegang pool.