tickerall-com Symbols API
The Symbols API from tickerall-com — 2 operation(s) for symbols.
The Symbols API from tickerall-com — 2 operation(s) for symbols.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/tickerall-com:tickerall-com-symbols-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: TickerAll Symbols API
version: 1.0.0
description: 'Hosted MetaTrader 5 & MT4 broker API. Connect a broker account, then place trades, pull historical candles, read positions and closed-trade history, and manage your accounts — from your own code, with no local MetaTrader terminal (runs on Linux, macOS, containers, anywhere).
Live market data streams over a WebSocket at `wss://api.tickerall.com/v1/stream`, authenticated with the same bearer token (an `Authorization: Bearer ` header on the upgrade, or `?token=` for browser clients).
**Authentication:** every endpoint except the public demo feed takes an `Authorization: Bearer ` header. Get an API key at https://tickerall.com.
**Error codes:**
- `UNAUTHORIZED` (401): Missing, malformed, or invalid Authorization header / API key.
- `VALIDATION_ERROR` (400): The request body or params failed validation. A details array lists the offending fields.
- `BROKER_AUTH_FAILED` (401): The broker rejected the login — wrong account number, password, or server. Returned by POST /v1/sessions and POST /v1/accounts/:id/reconnect. Fix the detail and retry.
- `BROKER_UNREACHABLE` (503): Could not reach the broker (network/endpoint down). Retry shortly. (A wrong password no longer maps here — see BROKER_AUTH_FAILED.)
- `BROKER_ACCOUNT_NOT_HOT` (409): The connection cooled. Call POST /v1/sessions with credentials to reconnect.
- `BROKER_REJECTED` (422): The broker refused the order/close/modify. The reason is in message (e.g. bad volume, market closed, stop level).
- `TICKET_NOT_FOUND` (404): The position ticket is not open on this account.
- `BROKER_ACCOUNT_NOT_FOUND` (404): No broker account with that id belongs to your key.
- `BROKER_ACCOUNT_ALREADY_LINKED` (409): That broker account is already linked to another TickerAll customer.
- `FREE_TIER_LIVE_REJECTED` (403): Live account on Free outside the Terminal, or a second one at once. API live starts at Trader.
- `DEMO_ACCOUNT_RESERVED` (403): That broker account is reserved by TickerAll for the public demo and cannot be attached.
- `TIER_ACCOUNT_CAP_REACHED` (403): You hit your plan’s broker-account cap. Upgrade, or contact us for Enterprise.
- `BROKER_NOT_FOUND` (422): The server name could not be resolved — it is not a known MT4/MT5 server. Use the exact name your terminal shows (MT5 servers are usually "Broker-MT5…"). No account row is left behind by a failed attempt.
- `BROKER_ACCOUNT_INVALID` (422): The broker refused the account itself (disabled, archived, expired). Fix it in your broker portal; retrying will not help.
- `DISCOVERY_UNAVAILABLE` (503): Broker lookup is temporarily paused after upstream errors. Your server name was NOT rejected — retry in a few minutes. Never a verdict on the name.
- `SYMBOL_CATALOG_UNAVAILABLE` (503): The account is connected but its instrument list could not be read (a TickerAll-side gap, not an empty account). GET /symbols and /symbol-specs return this instead of an empty list, so an empty array never masquerades as "no symbols". Retry; if it persists, contact support with the broker and account type.
- `ALWAYS_HOT_TIER_REQUIRED` (403): Always-hot needs a paid plan: Trader ($0.99/mo per connection) or Pro / Enterprise (included).
- `VAULT_PURGE_PENDING` (503): DELETE /v1/accounts/:id could not yet destroy the account’s remembered password, so the account was not removed. Retry shortly.
- `REMEMBER_PRO_REQUIRED` (403): Remembered credentials (server-side password storage, opt-in) are available on the Pro and Enterprise plans.
- `rate_limited` (429): Too many requests for this API key this minute. Budgets per key: 300/min order writes (a bulk call counts once), 600/min candles and history, 120/min POST /v1/sessions, 2000/min everything else. Wait Retry-After seconds; every response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset (seconds) for its budget.
- `INTERNAL_ERROR` (500): Unexpected server error. Safe to retry idempotent calls.'
contact:
name: TickerAll
url: https://tickerall.com
email: hello@tickerall.com
x-providerName: tickerall.com
x-origin:
- format: openapi
version: '3.0'
url: https://tickerall.com/openapi.json
x-logo:
url: https://tickerall.com/tickerall-social-logo-v4.png
servers:
- url: https://api.tickerall.com
description: TickerAll production API
security:
- bearerAuth: []
tags:
- name: Symbols
paths:
/v1/accounts/{id}/symbols:
get:
tags:
- Symbols
summary: List tradeable symbols on the account, in the broker’s native names…
description: 'List tradeable symbols on the account, in the broker’s native names (pass-through, no normalization). symbols is the full catalog; watched is the subset that is actively streaming live ticks right now.
- Use a name from symbols when placing orders; subscribe to a name to start it ticking on the WebSocket.
- symbols is never legitimately empty on a connected account. If TickerAll cannot read the account’s instrument list you get 503 SYMBOL_CATALOG_UNAVAILABLE rather than an empty array — so an empty list can never be mistaken for “no symbols” or for an account-type verdict.'
operationId: getV1AccountsIdSymbols
parameters:
- name: id
in: path
required: true
description: accountId.
schema:
type: string
responses:
'200':
description: 200 OK
content:
application/json:
schema:
type: object
example:
symbols:
- BTCUSD
- ETHUSD
- EURUSD
- GOLD
- USOILm
- '...'
watched:
- BTCUSD
- ETHUSD
- EURUSD
'400':
$ref: '#/components/responses/Error'
'401':
$ref: '#/components/responses/Error'
default:
$ref: '#/components/responses/Error'
/v1/accounts/{id}/symbol-specs:
get:
tags:
- Symbols
summary: 'Per-symbol trading specs for the account: the volume constraints (min / max /…'
description: 'Per-symbol trading specs for the account: the volume constraints (min / max / step) for validating an order size before placing it, plus the base, profit (quote) and margin currency for each instrument. MT5 only; an MT4 account returns an empty list.
- volumeStep is the lot increment — round an order size down to it before placing; volumeMin / volumeMax bound the size.
- profitCurrency is the quote currency (the currency P&L accrues in). Use it — not the account currency — to denote an instrument.
- specSource is "broker" (authoritative) or "derived" (a best-effort fallback when the broker did not supply the spec). Currency fields are absent when unknown.'
operationId: getV1AccountsIdSymbolspecs
parameters:
- name: id
in: path
required: true
description: accountId.
schema:
type: string
responses:
'200':
description: 200 OK
content:
application/json:
schema:
type: object
example:
specs:
- name: EURUSD
volumeMin: 0.01
volumeMax: 200
volumeStep: 0.01
specSource: broker
baseCurrency: EUR
profitCurrency: USD
marginCurrency: EUR
'400':
$ref: '#/components/responses/Error'
'401':
$ref: '#/components/responses/Error'
default:
$ref: '#/components/responses/Error'
components:
schemas:
Error:
type: object
properties:
error:
type: object
properties:
code:
type: string
description: Machine-readable error code (see the description).
message:
type: string
description: Human-readable explanation.
details:
type: array
items:
type: object
description: Optional per-field validation details.
required:
- code
- message
responses:
Error:
description: Error — see the `code` field and the error-code list in the API description.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'Your TickerAll API key, sent as `Authorization: Bearer <API_KEY>`.'