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();
}
}
}
}