Telegram channel to a cloud MT4/MT5 account
# 1. sign in to Telegram once: the phone, then the code Telegram sends (and the two-step password, if it has one)
curl -X POST -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" -d '{"phone":"+441234567890"}' https://tpcopier.com/api/v1/telegram/phone
curl -X POST -H "Authorization: Bearer $TPC_KEY" https://tpcopier.com/api/v1/telegram/send-code
curl -X POST -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" -d '{"code":"12345"}' https://tpcopier.com/api/v1/telegram/verify-code
curl -X POST -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" -d '{"password":"TWO_STEP_PASSWORD"}' https://tpcopier.com/api/v1/telegram/verify-password
# 2. your chats - each one's id (C)
curl -H "Authorization: Bearer $TPC_KEY" https://tpcopier.com/api/v1/channels
# 3. a cloud MT5 account that trades chat C: it starts with the TPcopier EA, already linked
curl -X POST -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" \
-d '{"platform":"mt5","login":"7001234","password":"TRADING_PASSWORD","server":"Broker-Live","label":"Gold","bridge":"tg-mt","links":[{"kind":"signal","source_id":C}]}' \
https://tpcopier.com/api/v1/hosting/accounts
# 4. every message, what it was read as, and what the EA did with it - placed, closed, refused and why
curl -H "Authorization: Bearer $TPC_KEY" https://tpcopier.com/api/v1/bridge/links/LINK_ID/history
Further reading: MetaTrader 5's help on signing in to an account.
Endpoints in this guide
Base address https://tpcopier.com. Send your key with every request -
Authorization: Bearer tpc_... - up to 120 requests a minute. Open an endpoint for its fields,
its answers and an example.
GET/api/v1/bridge/links/{lid}/historyLink History
One link's results and trades, from the moment it was made.
Parameters
| lid * | path | integer |
| limit | query | integer |
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/bridge/links/{lid}/history"POST/api/v1/bridge/linksAdd Link
Request body
{
"kind": "",
"source_id": 0,
"target_account_id": 0,
"stake_mode": "",
"stake_value": 0
}Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -X POST -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" \
-d '{"kind": "", "source_id": 0, "target_account_id": 0, "stake_mode": "", "stake_value": 0}' \
"https://tpcopier.com/api/v1/bridge/links"PATCH/api/v1/bridge/links/{lid}Patch Link
Parameters
| lid * | path | integer |
Request body
{
"enabled": false,
"stake_mode": "",
"stake_value": 0
}Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -X PATCH -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" \
-d '{"enabled": false, "stake_mode": "", "stake_value": 0}' \
"https://tpcopier.com/api/v1/bridge/links/{lid}"DELETE/api/v1/bridge/links/{lid}Delete Link
Parameters
| lid * | path | integer |
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -X DELETE -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/bridge/links/{lid}"GET/api/v1/mt/accountsMt Accounts
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/mt/accounts"POST/api/v1/mt/accountsMt Create
Request body
{
"platform": "mt5",
"label": "",
"bridge": ""
}Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -X POST -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" \
-d '{"platform": "mt5", "label": "", "bridge": ""}' \
"https://tpcopier.com/api/v1/mt/accounts"GET/api/v1/mt/accounts/{aid}/keyMt Key
Parameters
| aid * | path | integer |
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/mt/accounts/{aid}/key"POST/api/v1/mt/accounts/{aid}/key/rotateMt Rotate
Parameters
| aid * | path | integer |
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -X POST -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/mt/accounts/{aid}/key/rotate"POST/api/v1/mt/accounts/{aid}/unbindMt Unbind
Parameters
| aid * | path | integer |
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -X POST -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/mt/accounts/{aid}/unbind"POST/api/v1/mt/accounts/{aid}/pingMt Ping
A connection test: the Telegram EA answers it and trades nothing.
Parameters
| aid * | path | integer |
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -X POST -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/mt/accounts/{aid}/ping"GET/api/v1/mt/accounts/{aid}/ping/{rid}Mt Ping Result
Parameters
| aid * | path | integer |
| rid * | path | integer |
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/mt/accounts/{aid}/ping/{rid}"GET/api/v1/mt/feedMt Feed
Messages read for MetaTrader, newest first, with each connected EA's last word on it. only: 'signals' (orders), 'errors' (not read), or '' for everything.
Parameters
| limit | query | integer |
| channel_id | query | integer |
| only | query | string |
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/mt/feed"GET/api/v1/mt/statsMt Stats
The MetaTrader dashboard's numbers - every one counted from the tables, none estimated. account: what reached that account and what its EA answered (a channel's messages are every account's, so they are not split).
Parameters
| days | query | integer |
| account | query | integer |
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/mt/stats"GET/api/v1/mt/keywordsMt Keywords
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/mt/keywords"PUT/api/v1/mt/keywordsMt Keywords Save
Save the lists; keywords=None puts the defaults back.
Request body
{
"keywords": {}
}Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -X PUT -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" \
-d '{"keywords": {}}' \
"https://tpcopier.com/api/v1/mt/keywords"POST/api/v1/mt/parse-testMt Parse Test
Read a message the way a channel's would be read - nothing is sent to any EA.
Request body
{
"text": "",
"reply": false
}Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -X POST -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" \
-d '{"text": "", "reply": false}' \
"https://tpcopier.com/api/v1/mt/parse-test"GET/api/v1/ea/filesEa List
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/ea/files"GET/api/v1/ea/download/{code}Ea Download
Parameters
| code * | path | string |
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/ea/download/{code}"GET/api/v1/hostingHosting
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/hosting"POST/api/v1/hosting/accountsAdd Hosted
Request body
{
"platform": "mt5",
"login": "",
"password": "",
"server": "",
"label": "",
"bridge": "",
"role": "",
"links": [
{
"kind": "",
"source_id": 0
}
],
"sender_id": 0,
"broker": ""
}Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -X POST -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" \
-d '{"platform": "mt5", "login": "", "password": "", "server": "", "label": "", "bridge": "", "role": "", "links": [{"kind": "", "source_id": 0}], "sender_id": 0, "broker": ""}' \
"https://tpcopier.com/api/v1/hosting/accounts"GET/api/v1/hosting/accountsHosted Accounts
Every cloud account of the workspace - the API's, the copier's, the bridges' - however it was added (the owner, 2026-10-12: "jitne bhi accounts API se connect hote hai vo unke server par bhi dikhne chahiye"): its state, money and positions as last reported, and its slot - from, until, renews by itself, the wallet short of its renewal.
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/hosting/accounts"POST/api/v1/hosting/accounts/{aid}/passwordHosted Password
Parameters
| aid * | path | integer |
Request body
{
"password": ""
}Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -X POST -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" \
-d '{"password": ""}' \
"https://tpcopier.com/api/v1/hosting/accounts/{aid}/password"POST/api/v1/hosting/accounts/{aid}/actionHosted Action
start / stop the account's cloud terminal, reconnect it (a fresh sign-in), or delete it (terminal and data).
Parameters
| aid * | path | integer |
Request body
{
"action": "reconnect"
}Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -X POST -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" \
-d '{"action": "reconnect"}' \
"https://tpcopier.com/api/v1/hosting/accounts/{aid}/action"GET/api/v1/hosting/accounts/{aid}/logHosted Log
This hosted account's log: connecting, Algo Trading, refusals, trades and copies.
Parameters
| aid * | path | integer |
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/hosting/accounts/{aid}/log"GET/api/v1/hosting/ea-formEa Form
Every input of the TPcopier Telegram EA, in its own groups - read from the EA itself (MT4's own source for an MT4 account).
Parameters
| platform | query | string |
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/hosting/ea-form"PUT/api/v1/hosting/accounts/{aid}/eaHosted Ea
Parameters
| aid * | path | integer |
Request body
{
"inputs": {}
}Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -X PUT -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" \
-d '{"inputs": {}}' \
"https://tpcopier.com/api/v1/hosting/accounts/{aid}/ea"POST/api/v1/hosting/accounts/{aid}/replaceReplace Hosted
Another MetaTrader account in this one's slot: it takes over its Bridge links, copier pipelines, EA inputs, API limits and equity protection on the same cloud server; the old account goes. Returns the new account's id.
Parameters
| aid * | path | integer |
Request body
{
"platform": "",
"login": "",
"password": "",
"server": "",
"label": "",
"broker": ""
}Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -X POST -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" \
-d '{"platform": "", "login": "", "password": "", "server": "", "label": "", "broker": ""}' \
"https://tpcopier.com/api/v1/hosting/accounts/{aid}/replace"GET/api/v1/hosting/accounts/{aid}/prices/streamAccount Price Stream
Live: prices as they move - Server-Sent Events, one `data:` line per move: {"symbol" (the name you sent), "name" (the account's own), "bid", "ask", "time_msc" (the broker's clock), "at"}. Up to 20 symbols, comma separated, for up to max_s seconds (3600 at most - connect again for more). `event: missing` names the symbols the account has not got, `event: error` a moment its terminal could not answer. Read only while you listen.
Parameters
| aid * | path | integer |
| symbols * | query | string |
| max_s | query | integer |
Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -H "Authorization: Bearer $TPC_KEY" \
"https://tpcopier.com/api/v1/hosting/accounts/{aid}/prices/stream?symbols=..."PUT/api/v1/hosting/accounts/{aid}/protectionAccount Protection
Equity protection: when the account loses daily_pct % in a day or total_pct % from its peak, our cloud server tells you (notify), stops copying into it (stop_copying) or closes everything and stops (close_all) - checked every few seconds there. reset: true starts it again.
Parameters
| aid * | path | integer |
Request body
{
"daily_pct": 0,
"total_pct": 0,
"action": "",
"reset": false
}Responses
200 Successful Response · 422 Validation Error · 401 402 403 429 - see Errors
Example
curl -X PUT -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" \
-d '{"daily_pct": 0, "total_pct": 0, "action": "", "reset": false}' \
"https://tpcopier.com/api/v1/hosting/accounts/{aid}/protection"