Introduction
Data Coverage
US Municipal Bond Market
Key Features
- Files usually available by 7:00am EST
- Files available for 30 days
- Simple HTTP interface to retrieve files
- Download files programmatically or with a web browser
Key Data Points
Field Name |
Description |
MAID |
Municipal Action ID |
EntityName |
Name of the Entity whose Municipal Action news is captured |
ExchangeTicker |
Ticker under which the shares of the Entity is listed on the stock exchange |
AnnounceDate |
Date on which the MA news is announced or the date on which credit event has taken place |
EffectiveDate |
Effective Date of the Municipal Action or the auction date of defaulted entity's settlement |
Country |
Denotes the country where the entity is incorporated |
Region |
Denotes the region of the Municipal entity |
Sector |
General classification that best captures the organization's industry type, nature of business and ownership
structure |
MAImpact |
Resultant outcome of the Municipal Action type |
MAEvent |
Target Company name |
MAType |
Type of Municipal Action |
CUSIP |
9 digits alphanumeric identifier |
MaturityDate |
Date on which the bond is matured |
IssueDate |
Date on which the Bond is issued |
IssueCurrency |
ISO Currency code in which the settlement is done |
Seniority |
Status of the debt instrument |
IssuanceCoupon |
Rate of interest of the Bond |
CouponType |
Type of Coupon |
InstrumentType |
Type of Credit Instrument |
Notes |
Details of Municipal Action |
AmountOutstanding |
Denotes the amount outstanding after partial redemption of the bond. It would be displayed as 100M where M
stands for 000. |
API URL
https://api.munialerts.info/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.
Example Query String
https://api.munialerts.info/api?token=XXXXXXXXXXXXX&entity_name=State of
Wisconsin&announcement_date=2016-04-04&ISIN=US977100AX41&ca_type=Amortizing&country=United States
Input Parameters
Fields Name |
Type |
Format |
Mandatory |
Sample |
token |
String |
|
Mandatory |
token=your_api_key |
ISIN |
String |
|
Any one of the field mandatory |
ISIN=US977100AX41 |
entity_name |
String |
|
entity_name=State of Wisconsin |
announcement_date |
Date |
YYYY-MM-DD |
announcement_date=2016-04-04 |
ca_type |
String |
|
ca_type=Amortizing |
country |
String |
|
country=United States |
Response Format
Type |
Example |
JSON |
{
"code": 200,
"count": 1,
"data": [
{
"ISIN": "US977100AX41",
"Region": "N.Amer",
"Sector": "Sub Sovereign",
"Seniority": ""
}
],
"message": "Data found",
"status": "ok"
}
|
Output
Fields Name |
Type |
Format |
AmountOutStanding |
String |
|
AnnounceDate |
Date |
YYYY-MM-DD |
CAEvent |
String |
|
CAImpact |
String |
|
CAType |
String |
|
ClientTicker |
String |
|
Country |
String |
|
CouponType |
String |
|
CUSIP |
String |
|
CUSIP144a |
String |
|
CUSIPRegs |
String |
|
EffectiveDate |
Date |
YYYY-MM-DD |
EntityName |
String |
|
ExchangeTicker |
String |
|
InstrumentType |
String |
|
ISIN |
String |
|
ISIN144a |
String |
|
ISINRegs |
String |
|
IssuanceCoupon |
Float |
|
IssueCurrency |
String |
ISO |
IssueDate |
Date |
YYYY-MM-DD |
MaturityDate |
Date |
YYYY-MM-DD |
News |
String |
|
Notes |
String |
|
Region |
String |
|
Sector |
String |
|
Seniority |
String |
|
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.munialerts.info/api?token=XXXXXXXXXXXXXXX&ISIN=IT0006703208')
print(response_json)
PHP
$url = "https://api.munialerts.info/api";
$post = "token=XXXXXXXXXXXXX&ISIN=US977100AX41";
$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("US977100AX41", "UTF-8");
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(JavaApplication1.class.getName()).log(Level.SEVERE, null, ex);
}
try {
//Create connection
URL url = new URL("https://api.munialerts.info/api");
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();
}
}
}
}