MuniAlerts API

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

Find Out More

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