Skip to content

v0.2.0

Choose a tag to compare

@TokioGaijin TokioGaijin released this 07 Oct 12:21
· 1 commit to main since this release

Public demo access: try the API without signing up.

Added

  • CabalSpy::demo() and CabalSpyBuilder::demo(): use the public demo key (DEMO_API_KEY = "demo") against https://api.cabalspy.xyz and wss://stream.cabalspy.xyz. Never used by default.
  • CabalSpy::is_demo().
  • Error::DemoLimit { body, rate_limit, resets_in_seconds, upgrade } for HTTP 429 demo_limit_reached. It is not retried. Other 429s are still Error::RateLimited.
  • Envelope::demo: Option<DemoInfo> with notice, remaining_today (falls back to X-Demo-Remaining) and upgrade links (DemoUpgrade).
  • ApiErrorBody::resets_in_seconds.
  • README section "Try it without signing up" with the keyless https://demo-api.cabalspy.xyz host and the demo limits.

Breaking changes (0.x minor bump)

  • Error is not #[non_exhaustive], so the new DemoLimit variant breaks exhaustive matches without a wildcard arm.
  • Envelope and ApiErrorBody have new public fields, which breaks code that builds them with struct literals.

Demo limits

20 requests per IP per UTC day (REST and WebSocket share the budget), data delayed by 15 minutes, at most 5 rows per list. For realtime data, get a free test key (1,000 requests/month) at https://apidashboard.cabalspy.xyz/ or pay per call with x402.

🤖 Generated with Claude Code