BondMetric API

API URL

				
					https://api.bondmetric.com/api


				
			

Authentication

In order to authenticate with the API, you must provide your API key (Please refer to API Key) as the _api_key URL query string parameter during every HTTP request.

Request The Token

The token can be requested from the FactEntry Support Team (support@factentry.com) and should be replaced with XXXXX in the API key

Request Format

The request is passed in via HTTP request body. The only supported HTTP verb is POST/GET.

Query Parameter

  • api_key – The API key provided to you by BondMetric
  • _fields – A comma delimited list of metadata fields to return for each result

Example Query String

				
					https://api.bondmetric.com/api?token=XXXXXXXXXXXXXXXX&ISIN=IT0006703208&fair_value_date=2019-01-14



				
			

Input Parameters

Response Format

  • Search can be defined for the bond prices for last 7 calendar days
  • Overall file size is nearly 22MB and hence it takes a longer time to download

Response Format (JSON)

				
					{
	"status": "ok",
	"code": 200,
	"count": 1,
	"message": "Data found",
	"data": [{
		"ISIN": "IT0006703208",
		"Entity Name": "Barclays Bank PLC",
		"Credit Sector": "Banks",
		"Country of Issuer": "United Kingdom",
		"Issue Date": "2009-08-06",
		"Maturity Date": "2019-07-21",
		"Coupon(%)": "6.000",
		"Currency": "EUR",
		"FairValue Date": "2019-01-14",
		"ZSpread(%)": "0.458",
		"ASW(%)": "0.479",
		"Clean Price": "103.047",
		"Dirty Price": "105.931",
		"Yield": "0.096",
		"Modified Duration": "0.516",
		"Macaulay Duration": "0.517",
		"Convexity": "0.782",
		"Accrued Interest": "2.883",
		"BmkCountry": "Germany",
		"BmkIsin": "",
		"BmkYield": "",
		"BmkSpread": "1.568"
	}]
}
           
				
			

Output

Status Code

Python

				
					import requests

response_json = requests.get('https://api.bondmetric.com/api?token=XXXXXXXXXXXXXXX&ISIN=IT0006703208&fair_value_date=2019-01-14')
print(response_json)
				
			

PHP

				
					$url = "https://api.bondmetric.com/api";
$post = "token=XXXXXXXXXXXXXXX&ISIN=IT0006703208&fair_value_date=2021-04-14";

$curl = curl_init();	
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,false);
$content=curl_exec($curl);
curl_close($curl);

//print JSON data 
echo $content;
				
			

JAVA

				
					package javaapplication1;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.logging.Level;
import java.util.logging.Logger;

public class JavaApplication1 {
    
    public static void main(String[] args) {
        HttpURLConnection connection = null;
        String urlParameters = null;
        try {
            urlParameters = "token=" + URLEncoder.encode("xxxxxxxxTOKENxxxxxxxxxxxx", "UTF-8")+
                    "&ISIN=" + URLEncoder.encode("IT0006703208", "UTF-8")+
					"&fair_value_date=" + URLEncoder.encode("2019-01-14", "UTF-8");
        } catch (UnsupportedEncodingException ex) {
            Logger.getLogger(JavaApplication1.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        try {
        //Create connection
        URL url = new URL("https://www.caalerts.com/api/api.php");
        connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("POST");
        connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

        //connection.setRequestProperty("Content-Length", Integer.toString(urlParameters.getBytes().length));
        connection.setRequestProperty("Content-Language", "en-US");  

        connection.setUseCaches(false);
        connection.setDoOutput(true);

        //Send request
        DataOutputStream wr = new DataOutputStream (
            connection.getOutputStream());
        wr.writeBytes(urlParameters);
        wr.close();

        //Get Response  
        InputStream is = connection.getInputStream();
        BufferedReader rd = new BufferedReader(new InputStreamReader(is));
        StringBuilder response = new StringBuilder(); // or StringBuffer if Java version 5+
        String line;
        while ((line = rd.readLine()) != null) {
          response.append(line);
          response.append('\r');
        }
        rd.close();
        System.out.println(response.toString());
      } 
      catch (Exception e) {
          
      } 
        finally {
        if (connection != null) {
          connection.disconnect();
        }
      }
    }
}