API Reference / Balances and Positions
List Account Balance Snapshots
getAccountsAccountNumberBalanceSnapshots/accounts/{account_number}/balance-snapshotsBase URL: https://api.cert.tastyworks.com (Sandbox) · https://api.tastyworks.com (Production)
Returns balance snapshots for an account; the response also includes the account's current balance object alongside the historical snapshots. A snapshot is captured twice a day: once in the morning (BOD) and once after the equities market closes (EOD). The required time-of-day parameter selects which snapshot. Optionally pass snapshot-date for a specific day, or start-date and end-date for a range; if no dates are given, the most recent snapshot is returned. Results are paginated via per-page and page-offset.
Code samples
curl -X GET 'https://api.cert.tastyworks.com/accounts/5WX01234/balance-snapshots?per-page=10&page-offset=10¤cy=%7Bcurrency%7D&snapshot-date=2024-01-15&time-of-day=EOD&start-date=2024-01-15&end-date=2024-01-15' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'User-Agent: tastytrade-docs-example/1.0'import requests
url = "https://api.cert.tastyworks.com/accounts/5WX01234/balance-snapshots?per-page=10&page-offset=10¤cy=%7Bcurrency%7D&snapshot-date=2024-01-15&time-of-day=EOD&start-date=2024-01-15&end-date=2024-01-15"
headers = {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"User-Agent": "tastytrade-docs-example/1.0",
}
resp = requests.get(url, headers=headers)
print(resp.status_code, resp.json())const resp = await fetch("https://api.cert.tastyworks.com/accounts/5WX01234/balance-snapshots?per-page=10&page-offset=10¤cy=%7Bcurrency%7D&snapshot-date=2024-01-15&time-of-day=EOD&start-date=2024-01-15&end-date=2024-01-15", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"User-Agent": "tastytrade-docs-example/1.0",
},
})
const data = await resp.json()
console.log(resp.status, data)package main
import (
"net/http"
"io"
"fmt"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.cert.tastyworks.com/accounts/5WX01234/balance-snapshots?per-page=10&page-offset=10¤cy=%7Bcurrency%7D&snapshot-date=2024-01-15&time-of-day=EOD&start-date=2024-01-15&end-date=2024-01-15", nil)
req.Header.Set("Authorization", "Bearer YOUR_ACCESS_TOKEN")
req.Header.Set("User-Agent", "tastytrade-docs-example/1.0")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
out, _ := io.ReadAll(resp.Body)
fmt.Println(resp.Status, string(out))
}import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://api.cert.tastyworks.com/accounts/5WX01234/balance-snapshots?per-page=10&page-offset=10¤cy=%7Bcurrency%7D&snapshot-date=2024-01-15&time-of-day=EOD&start-date=2024-01-15&end-date=2024-01-15"))
.header("Authorization", "Bearer YOUR_ACCESS_TOKEN")
.header("User-Agent", "tastytrade-docs-example/1.0")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.statusCode() + " " + resp.body());Parameters
| Name | In | Type | Description |
|---|---|---|---|
| per-page | query | integer | e.g. 10 |
| page-offset | query | integer | e.g. 10 |
| currency | query | string | Currency |
| snapshot-date | query | string | The day of the balance snapshot to retrieve e.g. "2024-01-15" |
| time-of-day* | query | string | The abbreviation for the time of day. enum: EOD, BOD e.g. "EOD" |
| start-date | query | string | The first date in a range of dates to retrieve e.g. "2024-01-15" |
| end-date | query | string | The last date in a range of dates to retrieve e.g. "2024-01-15" |
| account_number* | path | string | e.g. "5WX01234" |
Responses
Example response
{
"data": {
"items": [
{
"account-number": "5WX01234",
"currency": "USD",
"cash-balance": "7218.997",
"long-equity-value": "24629.746",
"short-equity-value": "100.00",
"long-derivative-value": "100.00",
"short-derivative-value": "100.00",
"long-futures-value": "100.00",
"short-futures-value": "100.00",
"long-futures-derivative-value": "100.00",
"short-futures-derivative-value": "100.00",
"long-margineable-value": "100.00",
"short-margineable-value": "100.00",
"margin-equity": "32520.734",
"equity-buying-power": "45657.048",
"derivative-buying-power": "22828.524",
"day-trading-buying-power": "string",
"futures-margin-requirement": "string",
"available-trading-funds": "string",
"maintenance-requirement": "9692.211",
"maintenance-call-value": "100.00",
"reg-t-call-value": "100.00",
"day-trading-call-value": "100.00",
"day-equity-call-value": "100.00",
"net-liquidating-value": "32520.734",
"cash-available-to-withdraw": "string",
"day-trade-excess": "string",
"pending-cash": "0.0",
"pending-cash-effect": "None",
"long-cryptocurrency-value": "USD",
"short-cryptocurrency-value": "USD",
"cryptocurrency-margin-requirement": "USD",
"unsettled-cryptocurrency-fiat-amount": "USD",
"unsettled-cryptocurrency-fiat-effect": "USD",
"closed-loop-available-balance": "100.00",
"equity-offering-margin-requirement": "string",
"long-bond-value": "100.00",
"bond-margin-requirement": "string",
"used-derivative-buying-power": "string",
"special-memorandum-account-value": "100.00",
"special-memorandum-account-apex-adjustment": "string",
"total-settle-balance": "100.00",
"margin-settle-balance": "100.00",
"cash-settle-balance": "100.00",
"sma-equity-option-buying-power": "string",
"snapshot-date": "2026-06-08",
"time-of-day": "EOD"
}
]
},
"context": "/accounts/{account_number}/balance-snapshots",
"pagination": {
"per-page": 0,
"page-offset": 0,
"item-offset": 0,
"total-items": 0,
"total-pages": 0,
"current-item-count": 0
}
}Schema
datarequiredobjectitemsrequiredarray<object>{47 fields}
contextrequiredstringexample:
"/accounts/{account_number}/balance-snapshots"paginationobjectPaging metadata, present on paginated list responses.
per-pageintegerpage-offsetintegeritem-offsetintegertotal-itemsintegertotal-pagesintegercurrent-item-countinteger
Example response
{
"error": {
"code": "unauthorized",
"message": "No valid access token was provided; access tokens expire after 15 minutes."
}
}Schema
errorrequiredobjectcoderequiredstringMachine-readable error code (see the Error reference).
messagerequiredstringHuman-readable explanation.
errorsarray<object>{3 fields}Present for multi-error / validation failures; one entry per problem.
Example response
{
"error": {
"code": "not_permitted",
"message": "User not permitted access"
}
}Schema
errorrequiredobjectcoderequiredstringMachine-readable error code (see the Error reference).
messagerequiredstringHuman-readable explanation.
errorsarray<object>{3 fields}Present for multi-error / validation failures; one entry per problem.
Example response
{
"error": {
"code": "string",
"message": "string",
"errors": [
{
"code": "string",
"message": "string",
"domain": "string"
}
]
}
}Schema
errorrequiredobjectcoderequiredstringMachine-readable error code (see the Error reference).
messagerequiredstringHuman-readable explanation.
errorsarray<object>{3 fields}Present for multi-error / validation failures; one entry per problem.
Example response
{
"error": {
"code": "preflight_check_failure",
"message": "One or more preflight checks failed",
"errors": [
{
"code": "preflight_check_failure",
"message": "A specific validation failed for this order."
}
]
}
}Schema
errorrequiredobjectcoderequiredstringMachine-readable error code (see the Error reference).
messagerequiredstringHuman-readable explanation.
errorsarray<object>{3 fields}Present for multi-error / validation failures; one entry per problem.
Example response
{
"error": {
"code": "string",
"message": "string",
"errors": [
{
"code": "string",
"message": "string",
"domain": "string"
}
]
}
}Schema
errorrequiredobjectcoderequiredstringMachine-readable error code (see the Error reference).
messagerequiredstringHuman-readable explanation.
errorsarray<object>{3 fields}Present for multi-error / validation failures; one entry per problem.
Related
- Rate-limit class:
read· idempotent — Rate limits & backoff - Error reference — codes, causes, and fixes
Agents: this page is also Markdown (with the embedded OpenAPI definition) — append .md or send Accept: text/markdown. Index at /llms.txt.