SnapTrade Trading API

Manage orders on user accounts.

Operations 13

GET /accounts/{accountId}/quotes Get equity symbol quotes #
POST /trade/place Place equity order #
POST /accounts/{accountId}/trading/complex Place complex order #
POST /accounts/{accountId}/trading/replace Replace order #
POST /trade/impact Check equity order impact #
POST /trade/{tradeId} Place checked equity order #
POST /accounts/{accountId}/trading/crypto Place crypto order #
POST /accounts/{accountId}/trading/cancel Cancel order #
POST /accounts/{accountId}/trading/crypto/preview Preview crypto order #
GET /accounts/{accountId}/trading/instruments/cryptocurrencyPairs Get crypto pairs #
GET /accounts/{accountId}/trading/instruments/cryptocurrencyPairs/{instrumentSymbol}/quote Get crypto pair quote #
POST /accounts/{accountId}/trading/options/impact Get option order impact #
POST /accounts/{accountId}/trading/options Place option order #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/snaptrade:snaptrade-trading-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

snaptrade-trading-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: '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.'
  version: 1.0.0
  title: SnapTrade Trading API
  termsOfService: N/A
  contact:
    email: api@snaptrade.com
  x-konfig-ignore:
    potential-incorrect-type: true
  x-readme:
    explorer-enabled: false
servers:
- description: SnapTrade Production API
  url: https://api.snaptrade.com
security:
- PartnerSignature: []
  PartnerClientId: []
  PartnerTimestamp: []
tags:


# --- truncated at 32 KB (87 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/snaptrade/refs/heads/main/openapi/snaptrade-trading-api-openapi.yml