Project

snaptrade

0.03
The project is in a healthy, maintained state
Connect brokerage accounts to your app for live positions and trading. ## Rate limiting Two limits apply to requests signed with your `clientId`. The stricter one wins, and exceeding either returns `429 Too Many Requests`. - **Customer-level** — 250 requests/minute by default, scoped to your `clientId` and applied across all endpoints. Reported in `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset`. - **Account-level** — 10 requests/minute per account, scoped to (`clientId`, `accountId`). All covered operations for one account draw on the same bucket — reading balances and reading positions share it — and enforcement does not depend on the HTTP method, so updating an account consumes the same bucket as reading it. Only enforced for Personal users, and only for integrations it has been rolled out to — it is not yet in force for every Personal integration. It also does not apply on every operation that documents a 429 below. Where it applies it is reported in `X-RateLimit-Account-Limit`, `X-RateLimit-Account-Remaining` and `X-RateLimit-Account-Reset`. Do not read the absence of those headers as proof the limit is off — some configurations omit the rate limit headers while still enforcing the limit, so header absence tells you nothing about your allowance. On a 429, `X-RateLimit-Remaining: 0` means you hit the customer-level limit and `X-RateLimit-Account-Remaining: 0` means the account-level one. Wait for the corresponding `*-Reset` value (seconds) before retrying, or fall back to exponential backoff with jitter. Not every 429 is explained by those headers. A separate per-authenticated-user limit, reported in no `X-RateLimit-*` header, covers OAuth-authenticated requests and signed requests in configurations where the customer-level limit is not in effect — on the operations that use the default throttles. A few operations override those and are governed by the customer-level limit alone. The two do not stack: a signed request governed by the customer-level limit above is not additionally subject to the per-user one. If a 429 arrives with no header at zero — or with no `X-RateLimit-*` headers at all — honour `Retry-After` and back off. Treat the remaining counts as a hint, not a guarantee that the next request will succeed. Because the customer-level limit applies everywhere, any signed request can return 429. **OAuth-authenticated requests are an exception.** They are not subject to the customer-level limit and do not receive `X-RateLimit-Limit`, `X-RateLimit-Remaining` or `X-RateLimit-Reset` — do not wait on those headers or design around a customer-level allowance on this path. The account-level limit still applies to them on the account-data endpoints above, reported in the `X-RateLimit-Account-*` headers. On operations using the default throttles the per-user limit above applies to them as well, so an OAuth request can be rejected while the account headers still show capacity; on the few operations that override those throttles, OAuth callers have no per-user ceiling at all. Drive retries from `Retry-After` and exponential backoff with jitter rather than from the headers. See https://docs.snaptrade.com/docs/ratelimiting.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 3.6, >= 3.6.0

Runtime

>= 1.0.1, < 3.0
~> 1.0, >= 1.0.4
 Project Readme
SnapTrade Logo

SnapTrade is a financial technology platform that provides a unified API to connect your app with retail brokerage accounts. This supports both Commercial apps whose end users manage investment portfolios through the app and Personal users managing their own brokerage accounts. SnapTrade connects your app to 450M+ retail investor accounts across 40+ brokerages, enabling functionalities like real-time data aggregation, trading execution, portfolio tracking, and more.

Our comprehensive API documentation, support, ease of integration and robust functionality has made us a valuable partner for numerous financial apps and services, helping to drive innovation in the fintech space.

Additional information

See a list of our SDKs below, or visit any of our additional resources to learn more about SnapTrade and the best way to integrate:

  • Homepage – learn more about SnapTrade and why we're a great fit for you
  • Getting started and tutorials – guides and tutorials so you can get up and running quickly
  • Terminology – definitions for commonly used SnapTrade terms
  • Full API Reference – in depth reference to take full advantage of our API
  • Test keys – request your own test keys once you're ready to give us a try
  • Demo – useful to quickly take our API for a spin once you have access keys

SDKs

Language Version Package Manager README Source
Java 6.0.48 Maven Central README Source
Ruby 3.0.48 RubyGems README Source
Python 13.0.49 PyPI README Source
TypeScript 13.1.11 npm README Source
C# 6.0.48 NuGet README Source
PHP (8.0+) 3.0.48 Packagist README Source
Go 2.0.49 pkg.go.dev README Source
PHP (7.0+) 3.0.48 Packagist README Source