API for developers Binary options

Binary options signal copier API

Binary options API: add a Quotex, Pocket Option, IQ Option, Binomo, Olymp Trade, ExpertOption or Binolla account, link a channel, read each trade.

Binary options: a channel to Quotex, Pocket Option, IQ Option...

A binary account is signed in to its broker by its owner, in TPcopier's cloud browser: you get a sign-in link for it - open it yourself or send it to your user. It works in any browser or phone, with no TPcopier login, for 30 minutes, and TPcopier keeps only the login session it produces, encrypted - never the password.

# 1. the account: its "id" is A. broker: quotex, pocket, iqoption, binomo, olymptrade, expertoption or binolla (GET /api/v1/broker/list)
curl -X POST -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" \
     -d '{"broker":"quotex","label":"My Quotex","mode":"PRACTICE","bridge":"tg-bin"}' https://tpcopier.com/api/v1/broker/accounts

# 2. its sign-in link: open the "url" it answers (or send it to your user) - they sign in to the broker there
curl -X POST -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" https://tpcopier.com/api/v1/broker/accounts/A/connect-link

# 3. until "done": "ok" true is connected, otherwise "message" says why (a new link tries again)
curl -H "Authorization: Bearer $TPC_KEY" https://tpcopier.com/api/v1/broker/accounts/A/connect/status

# 4. a channel C (GET /api/v1/channels) to it - then how C gives its orders: at once ("instant"), or at the time in the
#    message ("timed") on its provider's clock (tz_offset_min: minutes from GMT, 360 is GMT+06:00), and how long a
#    trade runs when a message gives no expiry (default_duration, seconds)
curl -X POST -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" -d '{"kind":"signal","source_id":C,"target_account_id":A}' https://tpcopier.com/api/v1/bridge/links
curl -X PATCH -H "Authorization: Bearer $TPC_KEY" -H "Content-Type: application/json" -d '{"entry_mode":"timed","tz_offset_min":360,"default_duration":60}' https://tpcopier.com/api/v1/channels/C
curl -H "Authorization: Bearer $TPC_KEY" https://tpcopier.com/api/v1/channels/C/timing      # its timing - and "suggest": the timezone its own messages point to

# 5. every message read, what it was understood as, and each order with its result (or why there was none)
curl -H "Authorization: Bearer $TPC_KEY" https://tpcopier.com/api/v1/signals
curl -H "Authorization: Bearer $TPC_KEY" https://tpcopier.com/api/v1/trades

The sign-in window on your own website or app, on a PC and on a phone: broker sign-in window. Instant or timed orders, the provider's timezone and the expiry: order timing.

Further reading: the OpenAPI Specification our API description follows.

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.

bridgeSignal sources, accounts and the links between them
GET/api/v1/bridge/links/{lid}/historyLink History

One link's results and trades, from the moment it was made.

Parameters

lid *pathinteger
limitqueryinteger

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 *pathinteger

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 *pathinteger

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}"
appStatus, signals, trades, accounts and settings
GET/api/v1/broker/accountsBroker 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/broker/accounts"
PATCH/api/v1/broker/accounts/{aid}Patch Account

Parameters

aid *pathinteger

Request body

{
  "label": "",
  "enabled": false,
  "amount": 0,
  "max_stake": 0,
  "mg_one_at_a_time": false,
  "mg_apply_on": "",
  "min_payout_enabled": false,
  "min_payout": 0,
  "mg_enabled": false,
  "mg_mode": "",
  "mg_value": 0,
  "mg_steps": 0,
  "mg_custom": "",
  "mg_scope": "",
  "mg_source": "",
  "daily_stop": 0,
  "daily_target": 0,
  "proxy_region": ""
}

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 '{"label": "", "enabled": false, "amount": 0, "max_stake": 0, "mg_one_at_a_time": false, "mg_apply_on": "", "min_payout_enabled": false, "min_payout": 0, "mg_enabled": false, "mg_mode": "", "mg_value": 0, "mg_steps": 0, "mg_custom": "", "mg_scope": "", "mg_source": "", "daily_stop": 0, "daily_target": 0, "proxy_region": ""}' \
     "https://tpcopier.com/api/v1/broker/accounts/{aid}"
GET/api/v1/channelsChannels

One source's chats - Telegram's unless asked (WhatsApp and Discord have their own pages).

Parameters

sourcequerystring

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/channels"
GET/api/v1/channels/{cid}/timingChannel Timing

A channel's order timing, the customer's own GMT offset as the first guess for its timezone, and the last time its signals named (signals.expiry_time) - for the question asked when it is linked to a binary account.

Parameters

cid *pathinteger

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/channels/{cid}/timing"
PATCH/api/v1/channels/{cid}Patch Channel

Parameters

cid *pathinteger

Request body

{
  "monitored": false,
  "favorite": false,
  "color": "",
  "category": "",
  "min_confidence": "",
  "min_payout": 0,
  "max_signals_per_hour": 0,
  "stake_override": 0,
  "allowed_directions": "",
  "entry_mode": "",
  "tz_offset_min": 0,
  "default_duration": 0,
  "read_images": ""
}

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 '{"monitored": false, "favorite": false, "color": "", "category": "", "min_confidence": "", "min_payout": 0, "max_signals_per_hour": 0, "stake_override": 0, "allowed_directions": "", "entry_mode": "", "tz_offset_min": 0, "default_duration": 0, "read_images": ""}' \
     "https://tpcopier.com/api/v1/channels/{cid}"
POST/api/v1/broker/accounts/{aid}/modeSet Mode

Parameters

aid *pathinteger

Request body

{
  "mode": ""
}

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 '{"mode": ""}' \
     "https://tpcopier.com/api/v1/broker/accounts/{aid}/mode"
POST/api/v1/broker/accounts/resumeResume Accounts

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/broker/accounts/resume"
POST/api/v1/broker/accounts/refresh-balancesRefresh Balances

Each connected binary account's broker is asked for its balance now, over the connection already open - the request its own page sends (brokers.ask_balance). No order, no new sign-in. The answers arrive on the socket and set balance and balance_at; this waits a few seconds for them and says how many came. (It used to stamp balance_at with the time and ask nobody.)

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/broker/accounts/refresh-balances"
GET/api/v1/broker/accounts/{aid}/assetsAccount Assets

What this account can trade RIGHT NOW: the favourites first, then the best-paying open ones. Read from the live connection, so a pair that is shut for the session shows as closed instead of being sent and refused.

Parameters

aid *pathinteger

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/broker/accounts/{aid}/assets"
GET/api/v1/broker/accounts/{aid}/historyAccount History

The broker's OWN list of deals on this account's current balance, read live - trades placed by hand included. Each deal the site placed is marked with its trade number, so a result can be checked against the broker in one look.

Parameters

aid *pathinteger
limitqueryinteger

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/broker/accounts/{aid}/history"
POST/api/v1/broker/accounts/test-tradeTest Trade

Request body

{
  "account_id": 0,
  "asset_code": "EURUSD_otc",
  "direction": "call",
  "duration": 60
}

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 '{"account_id": 0, "asset_code": "EURUSD_otc", "direction": "call", "duration": 60}' \
     "https://tpcopier.com/api/v1/broker/accounts/test-trade"
GET/api/v1/keywordsGet 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/keywords"
PUT/api/v1/keywordsPut Keywords

Request body

{
  "call_words": [
    ""
  ],
  "put_words": [
    ""
  ],
  "reject_words": [
    ""
  ]
}

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 '{"call_words": [""], "put_words": [""], "reject_words": [""]}' \
     "https://tpcopier.com/api/v1/keywords"
POST/api/v1/keywords/resetReset Keywords

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/keywords/reset"
GET/api/v1/settingsGet Settings

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/settings"
PATCH/api/v1/settingsPatch Settings

Request body

{}

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 '{}' \
     "https://tpcopier.com/api/v1/settings"
GET/api/v1/botsBots

Copy Our Bots: the bots this customer may see (not hidden from them) - their records, never the channel behind them - the one plan (every bot), and whether this workspace copies.

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/bots"
PUT/api/v1/bot-plan/accountsBot Accounts

Which of my binary accounts the bots copy onto (as many as the plan covers), the lowest payout copied and my starting stake.

Request body

{
  "accounts": [
    0
  ],
  "only_high": false,
  "min_payout": 0,
  "stake": 0
}

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 '{"accounts": [0], "only_high": false, "min_payout": 0, "stake": 0}' \
     "https://tpcopier.com/api/v1/bot-plan/accounts"
PUT/api/v1/bot-plan/botsBot Pick

Which bots my plan copies: every one, or only these.

Request body

{
  "bots": [
    0
  ]
}

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 '{"bots": [0]}' \
     "https://tpcopier.com/api/v1/bot-plan/bots"
GET/api/v1/bots/{bid}Bot

A bot's card and record - or (`floor`) its record for only pairs paying that % or more, as the viewer types it.

Parameters

bid *pathinteger
floorqueryinteger

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/bots/{bid}"
liveTelegram sign-in and channels
GET/api/v1/broker/listBroker List

Which brokers this platform supports, and where their sign-in window opens.

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/broker/list"
POST/api/v1/broker/accountsCreate Account

Request body

{
  "label": "",
  "broker": "quotex",
  "mode": "PRACTICE",
  "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 '{"label": "", "broker": "quotex", "mode": "PRACTICE", "bridge": ""}' \
     "https://tpcopier.com/api/v1/broker/accounts"
GET/api/v1/broker/accounts/{aid}/connect/statusConnect Status

Parameters

aid *pathinteger

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/broker/accounts/{aid}/connect/status"
POST/api/v1/broker/accounts/{aid}/connect-linkConnect Link

A link where this account is signed in to its broker in TPcopier's cloud browser - in your website (an iframe), your mobile or PC app (a WebView), or any browser, with no TPcopier login: the API's way to connect a binary account. It works for 30 minutes; GET /api/v1/broker/accounts/{aid}/connect/status says when it is connected, or why not. With return_url (your app's own link, https://..., or http://localhost for a PC app) the browser goes back there when it is done, with ?status=connected or ?status=failed and &account=ID.

Parameters

aid *pathinteger

Request body

{
  "return_url": ""
}

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 '{"return_url": ""}' \
     "https://tpcopier.com/api/v1/broker/accounts/{aid}/connect-link"
POST/api/v1/broker/accounts/{aid}/reconnectReconnect Account

Try the saved session again, without opening a browser.

Parameters

aid *pathinteger

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/broker/accounts/{aid}/reconnect"
POST/api/v1/broker/accounts/{aid}/disconnectDisconnect Account

Parameters

aid *pathinteger

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/broker/accounts/{aid}/disconnect"
DELETE/api/v1/broker/accounts/{aid}Delete Account

Parameters

aid *pathinteger

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/broker/accounts/{aid}"
shopPlans, bills, orders and licences
POST/api/v1/bot-plan/ordersBot Buy

Copy Our Bots: months of the one plan (every bot) for the accounts chosen - Binance Pay's checkout, or a transfer (Pay.start).

Request body

{
  "accounts": [],
  "months": 1,
  "only_high": false,
  "min_payout": 0,
  "stake": 0,
  "bots": [
    0
  ],
  "method": "binance",
  "accept_no_refund": 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 '{"accounts": [], "months": 1, "only_high": false, "min_payout": 0, "stake": 0, "bots": [0], "method": "binance", "accept_no_refund": false}' \
     "https://tpcopier.com/api/v1/bot-plan/orders"