cURL
curl --request GET \
--url https://api.yoshi.ai/v1/paper-trading/accounts/{accountId}/trades \
--header 'Authorization: Bearer <token>'import os
from yoshi_sdk import Yoshi
client = Yoshi(
api_key=os.environ.get("YOSHI_API_KEY"), # This is the default and can be omitted
)
trades = client.paper_trading.accounts.trades.list(
account_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(trades.count)import Yoshi from '@yoshi-ai/sdk';
const client = new Yoshi({
apiKey: process.env['YOSHI_API_KEY'], // This is the default and can be omitted
});
const trades = await client.paperTrading.accounts.trades.list(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(trades.count);package main
import (
"context"
"fmt"
"github.com/yoshi-ai-dev/yoshi-go"
"github.com/yoshi-ai-dev/yoshi-go/option"
)
func main() {
client := yoshi.NewClient(
option.WithAPIKey("My API Key"),
)
trades, err := client.PaperTrading.Accounts.Trades.List(
context.TODO(),
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
yoshi.PaperTradingAccountTradeListParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", trades.Count)
}
yoshi paper-trading:accounts:trades list \
--api-key 'My API Key' \
--account-id 182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e{
"data": [
{
"id": "<string>",
"type": "<string>",
"subtype": "<string>",
"name": "<string>",
"symbol": "<string>",
"quantity": 123,
"price": 123,
"amount": 123,
"date": "<string>",
"created_at": "<string>"
}
],
"has_more": true,
"cursor": "<string>",
"count": 123,
"meta": {
"request_id": "req_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"timestamp": "2026-04-10T12:00:00.000Z"
}
}Paper Trading
List trade history
List trade history for a Test Drive account with cursor-based pagination.
GET
/
paper-trading
/
accounts
/
{accountId}
/
trades
cURL
curl --request GET \
--url https://api.yoshi.ai/v1/paper-trading/accounts/{accountId}/trades \
--header 'Authorization: Bearer <token>'import os
from yoshi_sdk import Yoshi
client = Yoshi(
api_key=os.environ.get("YOSHI_API_KEY"), # This is the default and can be omitted
)
trades = client.paper_trading.accounts.trades.list(
account_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(trades.count)import Yoshi from '@yoshi-ai/sdk';
const client = new Yoshi({
apiKey: process.env['YOSHI_API_KEY'], // This is the default and can be omitted
});
const trades = await client.paperTrading.accounts.trades.list(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(trades.count);package main
import (
"context"
"fmt"
"github.com/yoshi-ai-dev/yoshi-go"
"github.com/yoshi-ai-dev/yoshi-go/option"
)
func main() {
client := yoshi.NewClient(
option.WithAPIKey("My API Key"),
)
trades, err := client.PaperTrading.Accounts.Trades.List(
context.TODO(),
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
yoshi.PaperTradingAccountTradeListParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", trades.Count)
}
yoshi paper-trading:accounts:trades list \
--api-key 'My API Key' \
--account-id 182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e{
"data": [
{
"id": "<string>",
"type": "<string>",
"subtype": "<string>",
"name": "<string>",
"symbol": "<string>",
"quantity": 123,
"price": 123,
"amount": 123,
"date": "<string>",
"created_at": "<string>"
}
],
"has_more": true,
"cursor": "<string>",
"count": 123,
"meta": {
"request_id": "req_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"timestamp": "2026-04-10T12:00:00.000Z"
}
}Authorizations
A Yoshi API key from Settings → API Keys, or a Yoshi OAuth access token issued by Sign in with Yoshi.
Path Parameters
Query Parameters
Opaque cursor from a previous response
Items per page (1-100, default 50)
Required range:
1 <= x <= 100Response
Trades retrieved.
Hide child attributes
Hide child attributes
Opaque cursor for the next page, null if no more pages
Number of items in the current page
Last modified on June 18, 2026
Was this page helpful?