Skip to content

0.6.0: white-label platform users and trading competitions - #3

Merged
TokioGaijin merged 3 commits into
mainfrom
white-label
Oct 31, 2026
Merged

TokioGaijin merged 3 commits into
mainfrom
white-label

Conversation

@TokioGaijin

Copy link
Copy Markdown
Contributor

Adds every /v1/platform-users/* and /v1/competitions* endpoint to the sync and async clients.

  • bulk_import_platform_users: any number of users, chunks of ≤1,000 and <1 MB, retries 429 (Retry-After), re-sends only items rejected with rate_limited, never re-sends a successful chunk; PlatformImportError carries result and remaining.
  • Iterators for users, the platform leaderboard, competitions, participants and standings.
  • TypedDicts for platform users, settings, import, profile, leaderboard, verification, competitions; new webhook events.
  • ConflictError for 409 (subclass of CabalSpyIDError, so existing code keeps working).
  • README section, examples/white_label.py, CHANGELOG.

Tests: 157 passed; ruff and mypy (strict) clean.

🤖 Generated with Claude Code

PumpFetch and others added 3 commits October 28, 2026 18:24
A platform keeps its own login, imports its users by its own user id
(external_id) with their existing wallets, and uses their trades, PnL,
leaderboards and trading competitions through the Data API.

- Every /v1/platform-users/* endpoint on CabalSpyID and AsyncCabalSpyID
  (create/upsert, import, get, update, list, delete, wallets, wallet
  verification incl. the SVG QR code, profile, leaderboard, settings,
  inbound URL, session, claim link, X, Telegram, KOL), with iterators
  for the list and the leaderboard.
- bulk_import_platform_users: chunks of at most 1,000 users and under
  the 1 MB body limit, aggregated results in input order; retries 429
  (Retry-After wins), re-sends only users rejected with rate_limited,
  never re-sends a chunk that succeeded; PlatformImportError carries
  result and remaining to resume.
- Trading competitions (/v1/competitions*) with offset iterators.
- ConflictError for 409; new error codes, webhook events, TypedDicts
  and constants.
- Tests, README section, examples/white_label.py, CHANGELOG, 0.6.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@TokioGaijin
TokioGaijin merged commit 755fe42 into main Oct 31, 2026
6 checks passed
@TokioGaijin
TokioGaijin deleted the white-label branch October 31, 2026 10:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants