{"openapi":"3.1.0","info":{"title":"TraderMade (BYOK) API","version":"0.1.0","description":"TraderMade (BYOK) lets an AI assistant read your own TraderMade data through the TraderMade API with a key you supply (TraderMade API key). Read-only: 8 tools (list_live_currencies, list_live_crypto, get_live_rates, get_daily_rates, get_minute_rate, get_hour_rate, get_timeseries, convert_currency). The BYOK key travels with each request, is used for that one call only and is never stored, logged...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-tradermade.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-tradermade/docs"},"termsOfService":"https://connectorbay.com/byok-tradermade/terms"},"servers":[{"url":"https://byok-tradermade.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-tradermade/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_live_currencies":{"post":{"operationId":"list_live_currencies","summary":"List the currency codes (code and name) that can be used in the live rates and convert tools. Use for \"Which currencies ","description":"List the currency codes (code and name) that can be used in the live rates and convert tools. Use for \"Which currencies can I get live rates for from TraderMade\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_live_currenciesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_live_crypto":{"post":{"operationId":"list_live_crypto","summary":"List the cryptocurrency codes (code and name) that can be quoted in the live rates tool, for example BTC. Use for \"Which","description":"List the cryptocurrency codes (code and name) that can be quoted in the live rates tool, for example BTC. Use for \"Which crypto assets does TraderMade quote live\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_live_cryptoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_live_rates":{"post":{"operationId":"get_live_rates","summary":"Get current bid, ask and mid prices for one or more forex pairs, crypto pairs or CFD instruments. Use for \"What is the l","description":"Get current bid, ask and mid prices for one or more forex pairs, crypto pairs or CFD instruments. Use for \"What is the live EUR/USD and GBP/USD rate\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"currency":{"description":"One instrument code or several separated by commas, for example 'EURUSD,GBPUSD'. Crypto pairs such as BTCUSD and some CFD codes such as UK100 are also accepted.","maxLength":200,"title":"Currency","type":"string"},"per_quote_ts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include a timestamp inside each quote instead of one for the whole answer.","title":"Per Quote Ts"}},"required":["currency"],"title":"get_live_ratesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_daily_rates":{"post":{"operationId":"get_daily_rates","summary":"Get the open, high, low and close of one or more currency pairs for a past day. Use for \"What were the EUR/USD open and ","description":"Get the open, high, low and close of one or more currency pairs for a past day. Use for \"What were the EUR/USD open and close on 9 October 2019\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"currency":{"description":"One instrument code or several separated by commas, for example 'EURUSD,GBPUSD'. Crypto pairs such as BTCUSD and some CFD codes such as UK100 are also accepted.","maxLength":200,"title":"Currency","type":"string"},"date":{"description":"Day in YYYY-MM-DD format.","maxLength":10,"title":"Date","type":"string"}},"required":["currency","date"],"title":"get_daily_ratesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_minute_rate":{"post":{"operationId":"get_minute_rate","summary":"Get the open, high, low and close of one instrument for a single past minute (GMT). Use for \"What was EUR/USD doing at 1","description":"Get the open, high, low and close of one instrument for a single past minute (GMT). Use for \"What was EUR/USD doing at 12:30 GMT on 10 April 2025\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"currency":{"description":"A single instrument code, for example 'EURUSD'.","maxLength":20,"title":"Currency","type":"string"},"date_time":{"description":"Minute in GMT as YYYY-MM-DD-HH:MM.","maxLength":16,"title":"Date Time","type":"string"}},"required":["currency","date_time"],"title":"get_minute_rateArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_hour_rate":{"post":{"operationId":"get_hour_rate","summary":"Get the open, high, low and close of one instrument for a single past hour (GMT); about two years of history. Use for \"H","description":"Get the open, high, low and close of one instrument for a single past hour (GMT); about two years of history. Use for \"How did EUR/USD trade in the 13:00 GMT hour on 10 October 2019\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"currency":{"description":"A single instrument code, for example 'EURUSD'.","maxLength":20,"title":"Currency","type":"string"},"date_time":{"description":"Start of the hour in GMT as YYYY-MM-DD-HH:MM.","maxLength":16,"title":"Date Time","type":"string"}},"required":["currency","date_time"],"title":"get_hour_rateArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_timeseries":{"post":{"operationId":"get_timeseries","summary":"Get a series of open, high, low, close candles for one instrument: daily (up to one year per call), hourly (up to one mo","description":"Get a series of open, high, low, close candles for one instrument: daily (up to one year per call), hourly (up to one month) or minute (up to two days). Use for \"Give me the daily EUR/USD candles for the first ten days of October 2019\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"currency":{"description":"A single instrument code, for example 'EURUSD'.","maxLength":20,"title":"Currency","type":"string"},"start_date":{"description":"Start: YYYY-MM-DD for daily, YYYY-MM-DD-HH:MM for hourly and minute data.","maxLength":16,"title":"Start Date","type":"string"},"end_date":{"description":"End in the same format as the start.","maxLength":16,"title":"End Date","type":"string"},"interval":{"anyOf":[{"enum":["daily","hourly","minute"],"type":"string"},{"type":"null"}],"default":"daily","description":"Candle size: daily, hourly or minute.","title":"Interval"},"period":{"anyOf":[{"maximum":30,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Candle length: 1 for daily; 1, 2, 4, 6, 8 or 24 hours for hourly; 1, 5, 10, 15 or 30 minutes for minute.","title":"Period"},"weekend":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include weekend candles (crypto pairs only).","title":"Weekend"}},"required":["currency","start_date","end_date"],"title":"get_timeseriesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/convert_currency":{"post":{"operationId":"convert_currency","summary":"Convert an amount between two currencies at the current rate. Use for \"How much is 1000 EUR in GBP right now\".","description":"Convert an amount between two currencies at the current rate. Use for \"How much is 1000 EUR in GBP right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_currency":{"description":"Currency to convert from, for example 'EUR'.","maxLength":10,"title":"From Currency","type":"string"},"to":{"description":"Currency to convert to, for example 'GBP'.","maxLength":10,"title":"To","type":"string"},"amount":{"description":"Amount to convert, for example 1000.","title":"Amount","type":"number"}},"required":["from_currency","to","amount"],"title":"convert_currencyArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}