Skip to main content

Pricing Tiers

LaserSell offers four tiers. Each tier determines your rate limits for both the REST API and the Exit Intelligence Stream.

Exit Intelligence Stream Limits by Tier

REST API Rate Limits

The REST API (/v1/sell, /v1/buy) enforces a per key request limit using a sliding window.

Reading Your Limits on Connect

When you connect to the Exit Intelligence Stream, the hello_ok message includes a limits object that reflects your API key’s tier:

LimitsMsg Schema

Reading Limits in Code

StreamSession.connect() consumes the hello_ok message internally during the handshake. To read the limits, use the low-level StreamClient directly:

Handling 429 Responses

When you exceed the REST API rate limit, the server responds with HTTP 429 Too Many Requests. The SDKs automatically retry 429 responses using the built in retry policy. If you see persistent 429 errors:
  1. Check your request frequency. Reduce the rate of API calls.
  2. Batch requests. If building multiple transactions, space them out.
  3. Increase retry backoff. Configure a longer backoff to give the server time to recover.
See Error Handling for details on customizing the retry policy.

Exit Intelligence Stream Capacity

If you exceed the Exit Intelligence Stream’s capacity limits (e.g., too many positions or wallets), the server sends an error message:
The stream connection remains open. Remove positions with close_position or reduce wallets with update_wallets to free capacity.

Best Practices

  • Read limits on connect. Use the limits object to validate your configuration before sending positions.
  • Monitor for capacity errors. Log and alert on error messages with capacity related codes.
  • Use lane splitting (TypeScript). For high position counts, use connectLanes() to prevent pnl_update messages from blocking time sensitive events.
  • Respect 429 responses. Do not retry immediately; use exponential backoff.