A1 Trading APIa1trading.com ↗
Access live retail trader sentiment for forex, metals, indices, commodities, and crypto. Get long/short percentages and contrarian signals via one endpoint.
What is the A1 Trading API?
The A1 Trading API exposes one endpoint — get_retail_sentiment — that returns live retail positioning data across five instrument categories, with four fields per instrument: pair name, long percentage, short percentage, and a contrarian signal. It covers major and minor currency pairs, metals, indices, commodities, and crypto, making it straightforward to track crowded trades and sentiment extremes in a single call.
curl -X GET 'https://api.parse.bot/scraper/ac26b74a-3391-41f1-b45d-86d3f60eaf0f/get_retail_sentiment?category=Major+Currency+Pairs' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace a1trading-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.a1_trading_retail_sentiment_api import A1Trading, Category, Signal
client = A1Trading()
# List all sentiment data across all instruments
for sentiment in client.sentiments.list():
print(sentiment.pair, sentiment.long_percentage, sentiment.short_percentage, sentiment.signal)
# Filter by metals category
for item in client.sentiments.list(category=Category.METALS):
print(item.pair, item.long_percentage, item.short_percentage, item.signal)
Retrieves live retail sentiment data showing what percentage of retail traders are long vs short on each instrument, along with the contrarian signal (Bearish when majority is long, Bullish when majority is short, Neutral when balanced). Results are sorted by long percentage descending. When no category is specified, returns all instruments across all categories. Each instrument includes its pair name, long/short split as percentages summing to 100, and a contrarian signal derived from the imbalance.
| Param | Type | Description |
|---|---|---|
| category | string | Filter by instrument category. Accepts exactly one of: Major Currency Pairs, Minor Currency Pairs, Metals, Indices, Commodities, Crypto, Currencies. Omitted returns all categories. |
{
"type": "object",
"fields": {
"pairs": "array of sentiment objects each containing pair name, long_percentage, short_percentage, and signal",
"total_count": "integer total number of instruments returned"
},
"sample": {
"data": {
"pairs": [
{
"pair": "CHINA50",
"signal": "Bearish",
"long_percentage": 91.1,
"short_percentage": 8.9
},
{
"pair": "GOLD",
"signal": "Bullish",
"long_percentage": 6.01,
"short_percentage": 93.99
}
],
"total_count": 52
},
"status": "success"
}
}About the A1 Trading API
What the API returns
The get_retail_sentiment endpoint returns an array of sentiment objects (pairs) plus a total_count integer. Each object in pairs carries the instrument name (pair), the percentage of retail traders positioned long (long_percentage), the percentage positioned short (short_percentage), and a signal field that reflects the contrarian read: Bearish when the majority is long, Bullish when the majority is short, and Neutral when positioning is balanced. Results are sorted by long_percentage descending.
Filtering by category
The optional category parameter filters results to a single instrument group. Accepted values are Major Currency Pairs, Minor Currency Pairs, Metals, Indices, Commodities, and Crypto. Omitting the parameter returns all categories in one response. This lets you scope a call to, say, only metals or only crypto without post-processing the full payload.
Practical notes on the signal field
The signal field encodes a simple contrarian interpretation: when retail traders are heavily skewed long on an instrument, the signal reads Bearish, reflecting the idea that crowded retail longs historically precede reversals. The inverse applies for heavy short positioning. A Neutral signal indicates no strong directional lean. The raw long_percentage and short_percentage values are always present if you want to apply your own threshold logic rather than relying on the pre-computed signal.
The A1 Trading API is a managed, monitored endpoint for a1trading.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when a1trading.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official a1trading.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Alert when
long_percentageexceeds a custom threshold on major forex pairs to flag potential reversal setups - Filter by
category: Cryptoto monitor retail crowding in Bitcoin, Ethereum, and other digital assets - Display live long/short bars in a trading dashboard using
long_percentageandshort_percentagefor eachpair - Track changes in
signalover time to detect when sentiment shifts from Neutral to Bearish or Bullish - Build a sentiment heatmap across all categories by pulling the full unfiltered response and grouping by instrument type
- Screen for high-conviction contrarian trades by sorting on
long_percentageand isolating instruments with extreme readings
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does A1 Trading have an official developer API?+
What does the `signal` field actually represent, and can I ignore it and use the raw percentages instead?+
signal field (Bearish, Bullish, or Neutral) is a pre-computed contrarian interpretation based on the balance of long_percentage and short_percentage. It is there for convenience, but the raw percentage fields are always returned, so you can apply your own thresholds or weighting logic without using signal at all.Is historical sentiment data available through this API?+
Does the API return individual trader counts or just aggregate percentages?+
long_percentage and short_percentage only — not the underlying trader count or notional volume behind those figures. The total_count field reflects the number of instruments returned in the response, not the number of traders. You can fork the API on Parse and revise it if additional granularity becomes available from the source.Can I filter by multiple categories in a single request?+
category parameter accepts exactly one value per request. If you need data across several categories simultaneously, you would make one request per category or omit the parameter to receive all instruments in a single response. You can fork the API on Parse and revise it to support multi-category filtering in one call.