MuniAlerts API

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

Data Coverage

US Municipal Bond Market

Key Data Points

  • 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.


Request Format

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

Example Query String 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 String YYYY-MM-DD announcement_date=2016-04-04
ca_type String ca_type=Amortizing
country String country=United States

Response Format

Type Example
    "code": 200,
    "count": 1,
    "data": [
            "ISIN": "US977100AX41",
            "Region": "N.Amer",
            "Sector": "Sub Sovereign",
            "Seniority": ""
    "message": "Data found",
    "status": "ok"


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


$url = "";
$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);

//print JSON data 
echo $content;


package javaapplication1;

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("");
        connection = (HttpURLConnection) url.openConnection();
        connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

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


        //Send request
        DataOutputStream wr = new DataOutputStream (

        //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) {
      catch (Exception e) {
        finally {
        if (connection != null) {

Find Out More

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