Documentation

Getting Started

Welcome to TraderMade. We provide clean forex and CFD data via easy to use delivery methods. We use HTTPS and RESTful structures that make it easier to request data. Authentication is over a secure HTTPS protocol and responses are in JSON Format.

Following are a few simple steps to start getting data:

  1. 1. Sign up for API : Sign Up
  2. 2. Get your API Key : API Key .
  3. 3. Start getting data : API Endpoints

Quick Start Guide

We have created a number of tutorials to help you get started with our REST API. Our tutorials cover topics such as Excel, Python, C#.

  1. See our quick start tutorials : Visit Tutorials
  2. Also check our interactive API Definition : Technical Documentation

Authentication

You need to include your API Key with each request to get data. You can find your API Key under your account once you login. You can run sample API queries from this page once you login.

You can also learn more on how to use our forex data API on the tutorials page

copied to clipboard!
Error

[[validation_message]]

Query Generator


1. Request URL
https://marketdata.tradermade.com/api/v1/[[endpoint]]/[[ params.symbol === '' ? '' : params.symbol ]]/[[ params.startdate === '' ? '' : params.startdate.replace("T"," ") ]]/[[ params.enddate === '' ? '' : params.enddate.replace("T"," ") ]]?[[ params.format === '' ? '' : 'format='+params.format ]][['&api_key='+api_key]]
https://marketdata.tradermade.com/api/v1/[[endpoint]]?api_key=[[api_key]][[ params.mult_currency === '' ? '' : '&currency='+params.mult_currency ]][[ params.currency === '' ? '' : '&currency='+params.currency ]][[ params.symbol === '' ? '' : '&symbol='+params.symbol ]][[ params.date === '' ? '' : '&date='+params.date ]][[ params.date_time === '' ? '' : '&date_time='+params.date_time.replace("T","-") ]][[ params.startdate === '' ? '' : '&startdate='+params.startdate ]][[ params.enddate === '' ? '' : '&enddate='+params.enddate ]][[ params.format === '' ? '' : '&format='+params.format ]][[ params.start_date === '' ? '' : '&start_date='+params.start_date ]][[ params.end_date === '' ? '' : '&end_date='+params.end_date ]][[ params.interval === '' ? '' : '&interval='+params.interval ]][[ params.period === '' ? '' : '&period='+params.period ]][[ params.fields === '' ? '' : '&fields='+params.fields ]][[ params.from === '' ? '' : '&from='+params.from ]][[ params.to === '' ? '' : '&to='+params.to ]][[ params.amount === '' ? '' : '&amount='+params.amount ]]

Start and end date time must be GMT and not at a future period. Please check each endpoint docs to find out the data history available.

                        
                    

Supported Currencies

We support over 8000+ currency pairs on our API endpoints. It includes 4000+ cryptocurrency pairs. A list of Forex and Crypto codes for live endpoint can be accessed by visting our live currencies list page. We also have CFDs, Visit the CFD list page for codes.

Available SDKs

Python SDK

                        pip install tradermade
                    

Python users can install our SDK to start using our API in seconds. We recommend going through our python SDK documentation. Alternatively, you can read our tutorial on how to use our Python-SDK for Forex Data

                        import tradermade as tm
# set api key
tm.set_rest_api_key("api_key")

#get data
tm.live(currency='EURUSD,GBPUSD',fields=["bid", "mid", "ask"]) # returns live data - fields is optional
    
tm.historical(currency='EURUSD,GBPUSD', date="2021-04-22",interval="daily", fields=["open", "high", "low","close"]) # returns historical data for the currency requested interval is daily, hourly, minute - fields is optional
    
tm.timeseries(currency='EURUSD', start="2024-10-03-00:00",end="2024-10-04-12:49",interval="hourly",fields=["open", "high", "low","close"]) # returns timeseries data for the currency requested interval is daily, hourly, minute - fields is optional
    
tm.cfd_list() # gets list of all cfds available
    
tm.currency_list() # gets list of all currency codes available add two codes to get code for currencypair ex EUR + USD gets EURUSD
                    

Kotlin client JVM

                    package io.tradermade.test_client_jvm
                

Java and android users can setup our SDK in seconds. We recommend going through our Kotlin JVM Client.

                    
# set api key
val api = TraderMadeAPI("YOUR_API_KEY")

#get data
val liveData = api.getLiveData("EURUSD,GBPUSD") // returns live data 

val historicalData = api.getHistoricalData("EURUSD", "2023-08-01") // returns historical data for the currency requested.

val timeSeriesData = api.getTimeSeriesData("EURUSD", "2023-08-01", "2023-08-10", "daily", "1") // returns timeseries data for the currency requested interval is daily, hourly, minute.

val convertedAmount = api.convertCurrency("EUR", "USD", 1000.0) // returns live currency conversion rates 


                

Error Codes

Below are the error codes and responses for all the API endpoints.

Codes
HTTP Status
Message
401
200 - OK
API Key is invalid | Your plan doesn't allow access to this dataset
204
200 - OK
Data for the date requested not available | Currency pair currently not available
400
400 - BAD REQUEST
Input payload validation failed (often due to a missing parameter or wrong input) Reasons may be an incorrect currency code, date format, or end date before the start date.
403
403 - Forbidden
No data for weekend | Data outside max historical data we provide
                        // 400 will return error which includes the details of the error   
    {
        "errors": {
            "date": "YYYY-MM-DD time data '2019-10-' does not match format '%Y-%m-%d'"
        },
        "message": "Input payload validation failed"
    }
                    

Data Endpoints

Live Currencies List

You can request the live_currencies_list endpoint to access a list of the available currencies for the /live and the /convert endpoint.endpoint. Add the currency codes to form a currency pair to request currency data. For example EURUSD can be requested by adding EUR and USD together. Reverse the quote to USDEUR to get the inverse of the same pair. To access the JSON object containing all available currency codes verus USD, append your api_key to the TraderMade exchange rates API apicurrencies endpoint.

                                    https://marketdata.tradermade.com/api/v1/live_currencies_list?api_key=api_key
                                
                                    {
    "available_currencies": {
    "AED":"UAE Dirham",
    "ARS":"Argentine Peso",
    "AUD":"Australian Dollar",
    "BHD":"Bahraini Dinar",
    "BRL":"Brazilian Real",
    "CAD":"Canadian Dollar",
    "CHF":"Swiss Franc",
    "CLP":"Chilean Peso",
    "CNY":"Chinese Yuan",
    "COP":"Colombian Peso",
    "CZK":"Czech Koruna",
    "DKK":"Danish Krone",
    "EUR":"Euro",
    "GBP":"British Pound Sterling",
    "HKD":"Hong Kong Dollar",
    "HRK":"Croatian Kuna",
    "HUF":"Hungarian Forint",
    "IDR":"Indonesian Rupiah",
    "ILS":"Israeli New Sheqel",
    "INR":"Indian Rupee",
    "ISK":"Icelandic Krona",
    "JPY":"Japanese Yen",
    "KRW":"South Korean Won",
    "KWD":"Kuwaiti Dinar",
    "MAD":"Moroccan Dirham",
    "MXN":"Mexican Peso",
    "MYR":"Malaysian Ringgit",
    "NGN":"Nigerean Naira",
    "NOK":"Norwegian Krone",
    "NZD":"New Zealand Dollar",
    "OMR":"Omani Rial",
    "PEN":"Peruvian Nuevo Sol",
    "PHP":"Philippine Peso",
    "PLN":"Polish Zloty",
    "RON":"Romanian Leu",
    "RUB":"Russian Ruble",
    "SEK":"Swedish Krona",
    "SGD":"Singapore Dollar",
    "THB":"Thai Baht",
    "TRY":"Turkish Lira",
    "TWD":"Taiwanese Dollar",
    "USD":"US Dollar",
    "VND":"Vietnamese Dong",
    "ZAR":"South African Rand"
    },
    "endpoint": "live_currencies"
    }
                                

Live Crypto List

We offer data for 4000+ cryptocurrency pairs. A list of Forex and Crypto codes for live endpoint can be accessed by visting our live currencies list page. A list of the available cryptocurrencies for the /live endpoint, can be accessed through requesting the live_cypto_list endpoint. In order to request currency data, add the currencies codes together to form a currency pair. For example DOGEUSD can be requested by adding DOGE and USD together. In order to get the inverse of the same pair, simply reverse the quote to USDDOGE. To access JSON object containing all available crypto codes verus USD, Simply append your api_key to the TraderMade live crypto API endpoint.

                                https://marketdata.tradermade.com/api/v1/live_crypto_list?api_key=api_key
                            
                                
    {
        "available_currencies": {
            "ADA": "Cardano", 
            "ATOM": "Atom", 
            "AVAX": "Avalanche", 
            "AXS": "Axis infinity", 
            "BCH": "Bitcoin Cash", 
            "BNB": "Binance Coin", 
            "BTC": "Bitcoin", 
            "BTG": "Bitcoin Gold", 
            "BUSD": "Binance USD", 
            "DAI": "DAI", 
            "DASH": "Dashcoin", 
            "DOGE": "DogeCoin", 
            "DOT": "Polkadot", 
            "EGLD": "Elrond Egold", 
            "ENJ": "ENJ", 
            "EOS": "EOS Platform", 
            "ETC": "Ethereum Classic", 
            "ETH": "Ethereum", 
            "FIL": "Filecoin", 
            "FLOW": "Flow", 
            "FTM": "Fantom USD", 
            "FTT": "FTX Token", 
            "GALA": "Gala", 
            "HBAR": "Hbar", 
            "HNT": "Helium", 
            "ICP": "Internet Computer Price ", 
            "LINK": "Chainlink", 
            "LRC": "Loopring", 
            "LTC": "Litecoin", 
            "LUNA": "Luna", 
            "MANA": "Decentraland", 
            "MATIC": "Matic", 
            "NEAR": "Near", 
            "NEO": "NEO", 
            "ROSE": "Rose", 
            "SAND": "Sandbox", 
            "SHIB": "Shiba inu", 
            "SOL": "Solana", 
            "THETA": "Theta", 
            "TRX": "Tron", 
            "UNI": "Uniswap", 
            "USDT": "Tether", 
            "UST": "Terra USD", 
            "VET": "Vechain", 
            "XLM": "Stellar", 
            "XMR": "Monero", 
            "XRP": "Ripple", 
            "XTZ": "Tezos"
        }, 
        "endpoint": "live_crypto"
        }
                                
                            

Historical Currencies List

We support over 1600 currency pairs on our historical data endpoints. Request the historical_currencies_list endpoint or visit the list of historical exchange rates page to access a list of the available currencies for historical, pandasDF, timeseries, and the minute_historical endpoints. The below example is an abbreviated version.

                                https://marketdata.tradermade.com/api/v1/historical_currencies_list?api_key=api_key
                            
                                
    {
        "available_currencies": [
            "AEDEUR", 
            ....
            "EURPHP", 
            "EURPLN", 
            "EURRON", 
            "EURRUB", 
            "EURSEK", 
            "EURSGD", 
            "EURTHB", 
            "EURTRY", 
            "EURTWD", 
            "EURUSD", 
            "EURXAG", 
            "EURXAU", 
            "EURZAR", 
            "GBPAED", 
            "GBPAUD", 
            "GBPBRL", 
            "GBPCAD", 
            "GBPCHF", 
            "GBPCZK", 
            "GBPDKK", 
            "GBPEUR", 
            "GBPHKD", 
            "GBPHUF", 
            "GBPINR", 
            "GBPJPY", 
            "GBPKRW", 
            "GBPMXN", 
            "GBPMYR", 
            "GBPNOK", 
            "GBPNZD", 
            .... 
            "ZARUSD"
        ], 
        "endpoint": "historical_currencies"
    }
                                
                            

Exchange rates API

The TraderMade exchange rates API has nine endpoints serving different sets of data. Below has one example for each of the endpoints.

                                
    // live endpoint 
    https://marketdata.tradermade.com/api/v1/live?currency=EURGBP,GBPJPY&api_key=api_key
    
    // historical  
    https://marketdata.tradermade.com/api/v1/historical?date=2019-10-10&api_key=api_key
    
    // tick_historical  
    https://marketdata.tradermade.com//api/v1/tick_historical/GBPUSD/2024-10-03 08:30/2024-10-03 09:00?format=json&api_key=api_key
    
    // tick_historical_sample  
    https://marketdata.tradermade.com//api/v1/tick_historical_sample/GBPUSD/2024-10-03 08:30/2024-10-03 09:00?format=json&api_key=api_key
    
    // minute_historical 
    https://marketdata.tradermade.com/api/v1/minute_historical?currency=EURUSD&date_time=2019-10-09-13:24&api_key=api_key
    
    // hour_historical  
    https://marketdata.tradermade.com/api/v1/hour_historical?currency=EURUSD&date_time=2019-10-10-13:00&api_key=api_key
    
    // convert  
    https://marketdata.tradermade.com/api/v1/convert?api_key=api_key&from=EUR&to=GBP&amount=1000
    
    // timeseries  
    https://marketdata.tradermade.com/api/v1/timeseries?start_date=2015-01-01&end_date=2015-05-01&api_key=api_key
    
    // pandasDF  
    https://marketdata.tradermade.com/api/v1/pandasDF?currency=EURUSD&start_date=2015-01-01&end_date=2015-05-01&api_key=api_key
                                
                            

Live Rates

The live rates endpoint provides live sub-second data for over 4200+ currency pairs and 20+ CFDs. For the complete list, visit the live currencies list page or check the live currencies list endpoint section Node Providers, BlockChain and Smart Contract companies are allowed to request only one currency per request. Requesting multiple currencies will lead to several API call charges. For example, seeking five pairs in a single request will cost 5 API calls (only applicable to Blockchain Companies). Max currency pairs per call is limited to 10 unless otherwise agreed.

Params Description
currency EURUSD,GBPUSD,UK100
api_key Your API key
                                https://marketdata.tradermade.com/api/v1/live?currency=EURUSD,GBPUSD,UK100&api_key=api_key
                            
                                
    {
      "endpoint": "live", 
      "quotes": [
        {
          "ask": 1.18183, 
          "base_currency": "EUR", 
          "bid": 1.18181, 
          "mid": 1.18182, 
          "quote_currency": "USD"
        }, 
        {
          "ask": 1.31705, 
          "base_currency": "GBP", 
          "bid": 1.31704, 
          "mid": 1.31705, 
          "quote_currency": "USD"
        }, 
        {
          "ask": 6310.5, 
          "bid": 6309.8, 
          "instrument": "UK100", 
          "mid": 6310.1499
        }
      ], 
      "requested_time": "Fri, 13 Nov 2020 11:42:51 GMT", 
      "timestamp": 1605267771
    }
                                
                            

Historical Rates

The historical endpoint provides daily exchange rate data for the available currency pairs. Our daily bars are 22/22 as is the norm in financial markets. The daily bar finishes at and starts from 22:00 GMT. Our API lets you query any trading day over the past 20+ years (for some exotic currency pairs history may be less). The trading week starts at 22:00 hours on a Sunday, and for a date requested for Saturday or Sunday, it returns the Friday date.

Params Description
currency EURUSD,GBPUSD
date 2019-10-09
api_key Your API key
                                https://marketdata.tradermade.com/api/v1/historical?currency=EURUSD,GBPUSD&date=2019-10-09&api_key=api_key
                            
                                
    {
      "date": "2019-10-09",
      "endpoint": "historical",
      "quotes": [
        {
          "base_currency": "EUR",
          "close": 1.09702,
          "high": 1.09905,
          "low": 1.0952,
          "open": 1.09571,
          "quote_currency": "USD"
        },
        {
          "base_currency": "GBP",
          "close": 1.2206,
          "high": 1.22925,
          "low": 1.21977,
          "open": 1.22188,
          "quote_currency": "USD"
        }
      ],
      "request_time": "Thu, 31 Oct 2019 14:40:52 GMT"
    }
                                
                            

Tick Historical Rates

The Tick historical endpoint provides tick FX rate data for 50+ currency pairs. You can visit the historical currencies list page for a complete list of codes. Historical Tick provides one month of data with each chunk not exceeding 60 minutes. This feature is only available on Advanced plan and uses 5 API requests each time.You can request only one currency pair every time

You can't access tick historical data without an advanced plan. But you can request a sample tick (shown below), which will get you to tick data going back four working days, not including today. A maximum chunk of tick data in one request is 30 minutes and will take 5 requests away. You can only request one currency pair per request.

Params

Description

URL

/tick_historical/symbol/startdate/enddate

symbol

GBPUSD

startdate

YYYY-mm-dd HH:MM - (2024-10-03 08:30)

enddate

YYYY-mm-dd HH:MM - (2024-10-03 09:00)

format

json or csv - default is json

api_key

Your API key

                                https://marketdata.tradermade.com/api/v1/tick_historical/GBPUSD/2024-10-03 08:30/2024-10-03 09:00?api_key=api_key&format=json
                            
                                
    {
      "end_date": "2020-10-13 09:00", 
      "endpoint": "tick_historical", 
      "instrument": "GBPUSD", 
      "quotes": [
        {
          "ask": 1.30363, 
          "bid": 1.30359, 
          "inst": "GBPUSD", 
          "time": 1602577800339
        }, 
        {
          "ask": 1.30363, 
          "bid": 1.30361, 
          "inst": "GBPUSD", 
          "time": 1602577800539
        }, 
        {
          "ask": 1.3036, 
          "bid": 1.30357, 
          "inst": "GBPUSD", 
          "time": 1602577800941
        }, 
        {
          "ask": 1.30363, 
          "bid": 1.3036, 
          "inst": "GBPUSD", 
          "time": 1602577801739
        }
        ...
        ], 
      "start_date": "2020-10-13 08:30"
    }
                                
                            


                                
https://marketdata.tradermade.com//api/v1/tick_historical_sample/GBPUSD/2024-10-03 08:30/2024-10-03 09:00?format=json&api_key=api_key
                            

Minute Historical Rates

The API lets you query historical data for any minute for the past 30 years. You can only request one currency pair and one minute of data in one single request.

Params Description
currency EURUSD
date_time YYYY-mm-dd-HH:MM
(2019-10-10-13:24)
api_key Your API key
                                https://marketdata.tradermade.com/api/v1/minute_historical?currency=EURUSD&date_time=2024-10-04-12:49&api_key=api_key
                            
                                
    {
     "endpoint": "minute_historical",
     "currency": "EURUSD", 
     "date_time": "2019-10-09-13:24", 
     "close": 1.09802,  
     "high": 1.09816, 
     "low": 1.09798, 
     "open": 1.09807, 
     "request_time": "Thu, 31 Oct 2019 15:45:43 GMT"
    }
                                
                            

Hour Historical Rates

The API provides historical rates (OHLC) for the given hour over the past two years

Params Description
currency EURUSD
date_time 2019-10-10-13:00
api_key Your API key
                                https://marketdata.tradermade.com/api/v1/hour_historical?currency=EURUSD&api_key=api_key&date_time=2024-10-04-12:49 
                            
                                
    {
     "currency": "EURUSD", 
     "date_time": "2019-10-10-13:00", 
     "endpoint": "hour_historical", 
     "close": 1.10193, 
     "high": 1.10282, 
     "low": 1.10158, 
     "open": 1.10234, 
     "request_time": "Thu, 31 Oct 2019 15:45:43 GMT"
    }
                                
                            

Timeseries

Time series API provides historical currency rates (OHLC) for daily, hourly and granular endpoints. Daily timeseries data is available for up to 15 years (for some exotic currency pairs, history may be less). But the max request is one-year per request. You can get hourly data for up to 12 months (max one-month data per request) and minute interval data for up to one month (max 2-days data per call). For example, if you request 15-minute data on Friday, you can only request a start date from Thursday 00:00 GMT (in one call). You can seek one currency pair per call.

History - daily - fifteen years | hourly - 12 months | minute - 1 Month

You can also use our timeseries endpoint to plot data in highcharts - replace apikey with your API key. You can read the chart tutorial here

Params

Description

currency

EURUSD

start_date

daily - 2019-10-01 (YYYY-MM-DD) | hourly / minute - (YYYY-MM-DD-HH:MM)

end_date

daily - 2019-10-10 (YYYY-MM-DD) | hourly / minute - (YYYY-MM-DD-HH:MM)

interval

daily (other choices are - hourly or minute)

period

Daily Interval equals 1 | Hourly interval, choices are - 1, 2, 4, 6, 8, 24 | Minute interval, choices are - 1, 5, 10, 15, 30

format

records (other choices are - csv, index, columns, split)

api_key

Your API key

Request URL
                                https://marketdata.tradermade.com/api/v1/timeseries?currency=EURUSD&api_key=api_key&start_date=2019-10-01&end_date=2019-10-10&format=records
                            
                                https://marketdata.tradermade.com/api/v1/timeseries?currency=EURUSD&api_key=api_key&start_date=2024-10-03-00:00&end_date=2024-10-04-12:49&format=records&interval=hourly
                            
                                https://marketdata.tradermade.com/api/v1/timeseries?currency=EURUSD&api_key=api_key&start_date=2024-10-03-00:00&end_date=2024-10-04-12:49&format=records&interval=minute&period=15
                            
                                
    {
      "base_currency": "EUR",
      "end_date": "2019-10-10",
      "endpoint": "timeseries",
      "quote_currency": "USD",
      "quotes": [
        {
          "close": 1.09331,
          "date": "2019-10-01",
          "high": 1.09437,
          "low": 1.0879,
          "open": 1.08991
        },
        {
          "close": 1.09591,
          "date": "2019-10-02",
          "high": 1.09638,
          "low": 1.09039,
          "open": 1.09331
        },
        ....
        {
          "close": 1.10055,
          "date": "2019-10-10",
          "high": 1.10341,
          "low": 1.09702,
          "open": 1.09711
        }
      ],
      "request_time": "Thu, 31 Oct 2019 15:34:09 GMT",
      "start_date": "2019-10-01"
    }
                                
                            

Pandas Data Frame

PandasDF API endpoint provides daily OHLC data for the currency requested in a pandas Data Frame that makes it easy for python developers to use historical currency data. Request single currency when field parameter is "OHLC". You can request multiple currency when the field is "close". Data is available for upto 15 years (for some exotic currency pairs history may be less) but the max request is one-year per request.

Params

Description

currency

EURUSD

start_date

2019-10-01

end_date

2019-10-10

format

records (other choices are - index, columns, split)

fields

ohlc (another choice is - close)

api_key

Your API key

                                https://marketdata.tradermade.com/api/v1/pandasDF?currency=EURUSD&api_key=api_key&start_date=2019-10-01&end_date=2019-10-10&format=records&fields=ohlc
                            
                                
    [
      {
        "close": 1.09331,
        "date": "2019-10-01",
        "high": 1.09437,
        "low": 1.0879,
        "open": 1.08991
      },
      {
        "close": 1.09591,
        "date": "2019-10-02",
        "high": 1.09638,
        "low": 1.09039,
        "open": 1.09331
      },
      ....
      {
        "close": 1.10055,
        "date": "2019-10-10",
        "high": 1.10341,
        "low": 1.09702,
        "open": 1.09711
      }
    ]
                                
                            

Convert

The API provides conversion from one currency to another in real time.

Params Description
from EUR
to GBP
amount 1000
api_key Your API key
                                https://marketdata.tradermade.com/api/v1/convert?api_key=api_key&from=EUR&to=GBP&amount=1000
                            
                                
    {
      "base_currency": "EUR",
      "quote": 0.861,
      "quote_currency": "GBP",
      "requested_time": "Thu, 31 Oct 2019 14:46:35 GMT",
      "timestamp": 1572533196,
      "total": 861
    }
                                
                            

Examples

Below is an example showing the convert exchange rates data

                                $curl = curl_init();
    
    curl_setopt_array( $curl, array(
        CURLOPT_PORT => "443",
        CURLOPT_URL => "https://marketdata.tradermade.com/api/v1/convert?from=EUR&to=USD&amount=1000&api_key=api_key",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "GET",
    ));
    
    $response = curl_exec($curl);
    $err = curl_error($curl);
    
    curl_close($curl);
    
    if ($err) {
        echo "cURL Error #:" . $err;
    } else {
        echo $response;
    }
                                    
                            
                                import requests
    
    url = "https://marketdata.tradermade.com/api/v1/live"
    
    querystring = {"currency":"USDJPY","api_key":"api_key"}
    
    response = requests.get(url, params=querystring)
    
    print(response.json())
                                
                            
                                library (httr)
    library (jsonlite)
    
    req <- "https://marketdata.tradermade.com/api/v1/live?currency=EURUSD,GBPUSD&api_key=api_key"
    
    data_raw <- GET(url = req)
    
    
    data_text = content(data_raw, "text", encoding = "UTF-8")
    
    data_json = fromJSON(data_text, flatten=TRUE)
    
    dataframe = as.data.frame(data_json)
    
    dataframe
                                
                            
                                package main
    
    import (
    
        "encoding/json"
        "fmt"
        "io/ioutil"
        "log"
        "net/http"
    
    )
    
    type data struct {
        Endpoint       string                   `json:'endpoint'`
        Quotes         []map[string]interface{} `json:'quotes'`
        Requested_time string                   `json:'requested_time'`
        Timestamp      int32                    `json:'timestamp'`
    }
    
    func main(){
        currencies := "EURUSD,GBPUSD"
        api_key := "api_key"
        url := "https://marketdata.tradermade.com/api/v1/live?currency=" + currencies + "&api_key=" + api_key
    
        resp, getErr := http.Get(url)
        if getErr != nil {
            log.Fatal(getErr)
        }
    
        body, readErr := ioutil.ReadAll(resp.Body)
        if readErr != nil {
            log.Fatal(readErr)
        }
    
        fmt.Println(string(body)) 
    
    
        data_obj := data{}
    
        jsonErr := json.Unmarshal(body, &data_obj)
        if jsonErr != nil {
            log.Fatal(jsonErr)
        }
    
        fmt.Println("endpoint", data_obj.Endpoint, "requested time", data_obj.Requested_time, "timestamp", data_obj.Timestamp)
    
        for key, value := range data_obj.Quotes {
    
                fmt.Println(key)
    
                fmt.Println("symbol", value["base_currency"]+value["quote_currency"], "bid", value["bid"], "ask", value["ask"],
        "mid", value["mid"])
    
        }
    
    } 
                                  
                            
                                using System;
    using System.Net.Http;
    using Newtonsoft.Json;
    
    
    namespace crest
    {
        class Program
        {
            static async System.Threading.Tasks.Task Main(string[] args)
            {
                HttpClient client = new HttpClient();
                HttpResponseMessage response = await client.GetAsync("https://marketdata.tradermade.com/api/v1/live?currency=EURUSD,GBPUSD&api_key=api_key");
                response.EnsureSuccessStatusCode();
                var responseBody = await response.Content.ReadAsStringAsync();
                var result = JsonConvert.DeserializeObject(responseBody);
                foreach (var item in result.quotes)
                {
                                Console.WriteLine(" Result: " +  item.base_currency + "/" +  item.quote_currency + " " + item.mid);
                
                }
            }
    
            public class CurrencyDetails
            {
                    public string endpoint { get; set; }
                    public quotes[] quotes { get; set; }
                    public string requested_time { get; set; }
                    public long timestamp { get; set; }
    
            }
    
            public class quotes
            {
                public double ask { get; set; }
                public double bid { get; set; }
                public string base_currency { get; set; }
                public double mid { get; set; }
                public string quote_currency { get; set; }
            }
    
            
            
        }
    }
                                    
                            
                                const axios = require('axios');
    
    axios.get('https://marketdata.tradermade.com/api/v1/live?currency=EURUSD,GBPUSD,UK100&api_key=api_key')
        .then(response => {
    
        console.log(response.data);
    
        console.log(response.data.quotes[1]);
        })
        .catch(error => {
        console.log(error);
        });
                            
                                var requestOptions = {
    method : 'GET',
    redirect : 'follow'
    };
    
    fetch( 'https://marketdata.tradermade.com/api/v1/historical?currency=EURUSD%2CGBPUSD&date=2019-10-09&api_key=api_key', requestOptions)
    .then(response => response.text())
    .then(result =>  console.log(result))
    .catch(error =>  console.log( 'error', error));
                            
                                var settings = {
        "url": "https://marketdata.tradermade.com/api/v1/historical?currency=EURUSD%2CGBPUSD&date=2019-10-09&api_key=api_key",
        "method": "GET",
        "timeout": 0,
        };
        
        $.ajax(settings).done(function (response) {
        console.log(response);
    });