Skip to main content
This guide takes your existing users and their wallets, from Privy, Dynamic or your own database, to a profile page, a leaderboard and a running trading competition. All calls go from your backend to the Data API with your API key.
1

Get an API key for your instance

Create a CabalSpy ID instance in the API Dashboard and switch on CabalSpy ID for your API key on the API keys page, see Authentication. Check the key with GET /v1/me.A sandbox or development instance holds up to 25 platform users, enough to build and test. A live instance uses your plan’s user limit.
2

Import your users

Send your users with your own user id as external_id and their existing wallets. Up to 1,000 users per call. Each user is handled on its own, so one bad entry never undoes the others.
For users who sign up later, call Create or update a user from your sign-up flow, or let Privy, Dynamic or your backend post sign-ups to your inbound URL.
3

Show a profile

One call returns everything for a profile page: the user, their wallets, trading stats per chain for a period, the 20 most recent trades, theses and the KOL status.
For charts and detail pages, every other Data API endpoint accepts external_id in place of csid_id, for example tracker, holdings, history and the PnL calendar. The profile’s links field has the ready-made paths for each wallet. See Platform user profile.
4

Rank your users

The platform leaderboard ranks the wallets of your users and tells you whose wallet each entry is, by external_id.
To rank only payment-verified wallets, add trust=verified or set leaderboard_trust to verified_only in the settings. See Platform leaderboard.
5

Start a competition

Create a 48-hour PnL competition on Solana that enters every user automatically.
Once it runs, read the standings, recomputed every 5 minutes, or subscribe to the competition.standings and competition.ended webhooks. See Competitions.

Next steps