엔드포인트
스캔
토큰 스캔을 시작하거나 오래된 리포트를 갱신해요.
POST
/api/v1/scans토큰의 전체 분석을 대기열에 넣고 현재 상태를 반환해요. 여러 번 호출해도 안전해요. 스캔이 진행 중이면 두 번째 스캔을 시작하지 않아요.
파라미터#
chainbody체인 ID. 현재는 solana만 지원해요."solana"기본값: "solana"
addressbody필수스캔할 토큰의 민트 주소.string
요청#
curl -s -X POST "https://app.xca.fun/api/v1/scans" \
-H "Authorization: Bearer $XCA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"chain":"solana","address":"DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263"}'직접 실행
실제 요청을 보내려면 API 키를 붙여넣으세요.
응답#
status스캔 상태."NONE" | "QUEUED" | "RUNNING" | "DONE" | "ERROR"
depth스캔이 생성하거나 갱신하는 리포트의 분석 깊이."LIGHT" | "FULL" | null
step현재 스캔 단계.string | null
progress0~100 사이의 진행률.number
stale기존 리포트가 캐시 유효 기간보다 오래됐어요.boolean
upgradingLIGHT 리포트를 FULL로 업그레이드하는 중이에요.boolean
limitReached일일 스캔 한도를 모두 사용해서 이전 리포트의 상태를 반환했어요.boolean
응답 예시#
{
"status": "QUEUED",
"depth": null,
"step": "queued",
"progress": 0,
"stale": false,
"upgrading": false,
"limitReached": false
}상태 코드#
200성공
400validation — 파라미터나 요청 본문이 유효하지 않아요.
error.issues 값을 확인하세요.401unauthorized — API 키가 없거나, 형식이 잘못됐거나, 폐기됐어요.
402
planRequired — 플랜에 API 접근 권한이나 이 기능이 포함되어 있지 않아요.429
rateLimited — 분당 요청이 너무 많거나 월간 할당량을 모두 사용했어요.503unavailable — 점검 중이거나 데이터 제공업체의 처리 용량이 부족해요.
동작 방식#
- 최신 리포트가 있을 때: 바로
DONE상태를 반환하고 스캔 한도를 차감하지 않아요. - 스캔이 진행 중일 때: step, progress 값과 함께
QUEUED또는RUNNING상태를 반환해요. - 그 밖의 경우: 새 스캔을 대기열에 넣고 일일 한도에서 스캔 1회를 차감해요.
- 일일 한도에 도달했지만 이전 리포트가 있을 때:
limitReached값을 true로 설정해 그 리포트의 상태를 반환해요.
결과 기다리기#
상태가 DONE 또는 ERROR가 될 때까지 GET /tokens/{chain}/{address} 엔드포인트를 3~5초마다 폴링하세요. 대부분의 스캔은 1분 안에 끝나요.
스캔 단계#
queued | 대기열에서 기다리는 중이에요. |
market | 가격, 유동성, 민트 데이터를 가져오는 중이에요. |
holders | 홀더 목록을 읽는 중이에요. |
trades | 스나이퍼를 찾기 위해 초기 거래를 읽는 중이에요. |
profiles | 상위 홀더의 자금 출처, 지갑 나이, 손익을 분석하는 중이에요. |
classify | 유형을 분류하고 클러스터를 구성하는 중이에요. |
dev | 생성자의 이전 발행 이력을 확인하는 중이에요. |
save | Holder Score를 계산하고 저장하는 중이에요. |
done | 완료됐어요. |
error | 실패했어요. |
XCA가 점검 중이거나 데이터 제공업체의 처리 용량이 부족하면 스캔 요청에 503 unavailable 오류가 반환돼요. 잠시 후 다시 시도하세요.