BondPDF API

Introduction

This document describes how to access BondPDF data through the API.

The API consists of two primary output points:

  • Bond meta data and mapping data
  • Bond related documents

Key Features

  • Simple HTTP interface to retrieve files
  • Download files programmatically or with a web browser

Key Data Points

Field Name Description
entity_name Name of the Entity
country Country of Incorporation of the Entity
sector Sector of the Entity
isin_regs Regs ISIN
isin_144a 144a ISIN
cusip_regs Regs CUSIP
cusip_144a 144a CUSIP
issue_date Issue Date of the Identifier
maturity_date Maturity Date of the Identifier
bond_type Bond Category (Fixed, Floating, Convertible, etc)
issuance_coupon Issuance Coupon of the Identifier
issue_currency Currency in which the Instrument is issued
amount_issued Initial Amount at the time of Issuance of the bond
doc_type Categorised document (Base Prospectus, Offering Circular, Pricing Supplement, etc)
cloudpath Document Link of the pricing Supplement
base_cloudpath Document link of the base prospectus
bbg_code Bloomberg Code
bbg_ticker Bloomberg short description comprising of entity ticker, coupon and maturity

API URL

https://api.bondpdf.com/search

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.

Example Query String

https://api.bondpdf.com/search?key=XXXXXXXXXXXXXXXX&_fields=entity_name,isin_regs&isin_regs=FR0013342219,FR0013329307

Input Parameters

Fields Name Type Mandatory
key String Mandatory
entity_name String Any of the field mandatory
country String
isin_144a String
isin_regs String

Response Format

Type Example
JSON
{
 "code": 200,
 "error": false,
 "data": [
   {
     "_id": "AWVnZggDqb-pZvjxf2nH",
     "country": "France",
     "isin_regs": "FR0013342219",
     "bbg_ticker": "BPCECB 1.5225 06/14/38 EMTN",
     "entity_name": "BPCE SFH",
     "issue_currency": "EUR",
     "figi_regs": "BBG00L343G93",
     "cusip_regs": null,
     "amount_issued": 50000000,
     "issuance_coupon": 1.52,
     "maturity_date": "2038-06-14",
     "figi_144a": null,
     "doc_type": "Final Terms",
     "isin_144a": null,
     "bond_type": "Fixed",
     "issue_date": "2018-06-14",
     "cusip_144a": null,
     "sector": "Financial Services",
     "cloudpath": null
   },
}
            

Output

Group Type Field Name
Entity sector
entity_name
jurisdiction
country
region
csector
Identifier isin_regs
cusip_regs
regs_common_code
isin_144a
cusip_144a
common_code
wkn
figi_144a
figi_regs
Date first_interest_accrual_date
trade_date
first_coupon_date
penultimate_date
extended_maturity_date
record_date
issue_date
maturity_date
BondDetails issue_currency
coupon_currency
principal_currency
coupon_frequency
coupon_type
bond_type
issuance_coupon
current_coupon
amount_issued
issue_price
day_count
business_day_convention
seniority
FRNDetails margin
frn_benchmark
index_reference
index_reference_page
Flag call_option
stepup_bond
convertible_option
perpetual
put_option
exchangeable_option
index_linked
dual_currency
end_of_month
short_first_coupon
short_last_coupon
long_first_coupon
long_last_coupon
abs
default
temporary_isin_flag
tax_free
RedemptionDetails redemption_type
redemption_start_date
redemption_end_date
redemption_price
redemption_amount
redemption_option_type
redemption_notice_days
redemption_option_frequency
final_redemption_value
make_whole_call
clean_up_call
make_whole_basis_point
StepupDetails stepup_start_date
stepup_end_date
stepup_day_count
stepup_coupon_frequency
dynamic_coupon
first_stepup_coupon
first_stepup_margin
stepup_frn_benchmark
stepup_reference
stepup_reference_page
ConversionDetails underwriter
underlying_equity
conversion_date
exercise_type
equity_listed_conversion
is_mandatory
conversion_price_currency
conversion_price
is_preferred
exchangeable_bond_isin
convertible_equity_isin
Counterparty arranger
calculation_agent
clearing_house
co style="text-align: left;"-lead_manager
dealer
distributor
guarantor
co_issuer
nationality_of_guarantor
initial_purchaser
issuing_agent
issuing_and_paying_agent
lead_manager
paying_agent
trustee
principal_paying_agent
Covenants change_of_control
credit_event
cross_default
default_event
force_majeure
negative_pledge
Misc stock_exchange
method_of_distribution
rate_fix_days
re_offer_price
minimum_denomination
business_day
series_no
tranche_no
credit_grade
governing_law
country_of_issue
doc_type
language
cloudpath
bbg_ticker
base_id
additional_isin

Status Code

Code Description
200 Request and Response success
400 Request not Valid
401 The API_KEY is invalid.
402 Invalid request method
403 Too many request
500 Internal Server Error

Python

import requests

response_json = requests.get('https://api.bondpdf.com/search?key=XXXXXXXXXXXXXXXXXXXXXXX&_fields=entity_name,isin_regs&entity_name=%22Morgan Stanley Finance LLC%22')
print(response_json)

PHP

$url = "https://api.bondpdf.com/search";
$post = "key=XXXXXXXXXXXXXXXXXXXXXXX&_fields=entity_name,isin_regs&entity_name=%22Morgan Stanley Finance LLC%22";

$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 = "key=" + URLEncoder.encode("xxxxxxxxTOKENxxxxxxxxxxxx", "UTF-8")+
                    "&_fields=entity_name,isin_regs&entity_name=" + URLEncoder.encode("%22Morgan Stanley Finance LLC%22", "UTF-8");
        } catch (UnsupportedEncodingException ex) {
            Logger.getLogger(JavaApplication1.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        try {
        //Create connection
        URL url = new URL("https://api.bondpdf.com/search");
        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();
        }
      }
    }
}

Find Out More

If you want more information on our products or have a general enquiry, please contact us.