Bitvore Muni News API

Muni News API

Operations 2

GET /muninews Municipal News Query #
POST /muninews Advanced Municipal News Query #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/bitvore-muni-news-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

bitvore-muni-news-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: '## Precision News API


    The Precision News APIs provide access to curated news annotated with metadata tags.'
  version: '1.0'
  title: Bitvore Legacy Muni News API
  license:
    name: Copyright Bitvore Corp. 2026
servers:
- url: https://api.bitvore.com/
tags:
- name: Muni News
  description: Muni News API
paths:
  /muninews:
    get:
      tags:
      - Muni News
      summary: Municipal News Query
      description: Provides the ability to search for news relevant to municipal bonds.
      operationId: handleMuniSearchUsingGET
      parameters:
      - name: portfolioId
        in: query
        description: Id identifying a portfolio to retrieve news for, should not be used with the cusip parameter.
        required: false
        allowEmptyValue: false
        schema:
          type: string
      - name: cusip
        in: query
        description: One or more CUSIPs identifying the bonds to retrieve news for, should not be used with the portfolio parameter.
        required: false
        allowEmptyValue: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: state
        in: query
        description: State to retrieve news for. Must not be used with the cusip or portfolio parameters.
        required: false
        allowEmptyValue: false
        schema:
          type: string
      - name: city
        in: query
        description: City to retrieve news for, must be used with the state parameter and not with the cusip or portfolio parameters.
        required: false
        allowEmptyValue: false
        schema:
          type: string
      - name: fips
        in: query
        description: FIPS code to retrieve news for, must not be used with the cusip or portfolio parameters.
        required: false
        allowEmptyValue: false
        schema:
          type: string
      - name: sector
        in: query
        description: Sector to retrieve news for, must be used with the state parameter and not with the cusip, or portfolio parameters.
        required: false
        allowEmptyValue: false
        schema:
          type: string
      - name: articleType
        in: query
        description: One or more types of articles (i.e., News, PressRelease) to return. By default all types are returned.
        required: false
        allowEmptyValue: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: text
        in: query
        description: Keyword or phrase to search for news when not using a portfolio
        required: false
        allowEmptyValue: false
        schema:
          type: string
      - name: startDate
        in: query
        description: News date to start from. Format is yyyy-mm-dd for daily news or yyyy-mm-dd'T'HH:mm if you want it down to the hour or minute. Should not be used if offset parameter is.
        required: false
        allowEmptyValue: false
        schema:
          type: string
      - name: endDate
        in: query
        description: News date to end with. Format is yyyy-mm-dd for daily (inclusive) news or yyyy-mm-dd'T'HH:mm if you want it down to the hour or minute. If startDate is used and endDate is not the default endDate is today.
        required: false
        allowEmptyValue: false
        schema:
          type: string
      - name: offset
        in: query
        description: Number of days back news should be returned for. Should not be used with startDate. Default is 31.
        required: false
        allowEmptyValue: false
        schema:
          type: integer
          format: int32
      - name: tz
        in: query
        description: Timezone used in startDate and endDate.
        required: false
        allowEmptyValue: false
        schema:
          type: string
          default: GMT
      - name: dateType
        in: query
        description: Indicates whether dates to query by should be published dates "published" or available dates (processing completed) "available". Default is published.
        required: false
        allowEmptyValue: false
        schema:
          type: string
          default: published
      - name: pageNo
        in: query
        description: Page number of the total result set to return, default is 1.
        required: false
        allowEmptyValue: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: pageSize
        in: query
        description: Number of results out of the total result set per page to return, default is 100, maximum is 1000.
        required: false
        allowEmptyValue: false
        schema:
          type: integer
          format: int32
          default: 100
      - name: significance
        in: query
        description: Significance of articles to return, possible values are "HIGH" and "MEDIUM", default is "HIGH". The parameter is a threshold so a value of MEDIUM will return MEDIUM and HIGH significance articles.
        required: false
        allowEmptyValue: false
        schema:
          type: string
          default: HIGH
      - name: includeCusips
        in: query
        description: Return ALL CUSIPs affected by the article. This option requires a verified CUSIP license.
        required: false
        allowEmptyValue: false
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MuniNewsSearchResponseLegacy'
                originalRef: MuniNewsSearchResponseLegacy
        '401':
          description: Unauthorized to view news
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReasonResponse'
                originalRef: ReasonResponse
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReasonResponse'
                originalRef: ReasonResponse
      security:
      - API key:
        - Global
      - BasicAuth:
        - Global
      - OAuth:
        - Global
      deprecated: false
    post:
      tags:
      - Muni News
      summary: Advanced Municipal News Query
      description: Provides an advanced municipal news search capability.
      operationId: handleMuniAdvancedSearchUsingPOST
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MuniNewsSearchResponseLegacy'
                originalRef: MuniNewsSearchResponseLegacy
        '401':
          description: Unauthorized to view news
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReasonResponse'
                originalRef: ReasonResponse
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReasonResponse'
                originalRef: ReasonResponse
      security:
      - API key:
        - Global
      - BasicAuth:
        - Global
      - OAuth:
        - Global
      deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MunicipalNewsRequestLegacy'
              originalRef: MunicipalNewsRequestLegacy
        description: request
        required: true
components:
  schemas:
    MunicipalNewsRequestLegacy:
      type: object
      properties:
        articleType:
          type: array
          example:
          - PressRelease
          description: One or more types of articles (i.e., News, PressRelease) to return. By default all types are returned.
          items:
            type: string
        cusip:
          type: array
          example:
          - '123456789'
          - '987654321'
          description: One or more CUSIPs identifying the bonds to retrieve news for, should not be used with the portfolio property.
          items:
            type: string
        dateType:
          type: string
          example: available
          description: Indicates whether dates to query by should be published dates "published" or available dates (processing completed) "available". Default is published.
        endDate:
          type: string
          example: '2018-08-01T12:00:00'
          description: News date to end with. Format is yyyy-mm-dd for daily (inclusive) news or yyyy-mm-dd'T'HH:mm if you want it down to the hour or minute. If startDate is used and endDate is not the default endDate is today.
        fips:
          type: array
          example:
          - '31080'
          - '06037'
          description: One or more FIPS codes to restrict the returned news to. Must not be used with the cusip or portfolio properties.
          items:
            type: string
        includeCusips:
          type: boolean
          example: true
          description: Return ALL cusips affected by the article. This option requires a verified CGS license, default is false
        location:
          type: array
          example:
          - los angeles/ca
          - fl
          description: One or more locations to restrict the returned news to. Can be a state code or a city/state combination. Must not be used with the cusip or portfolio properties.
          items:
            type: string
        offset:
          type: integer
          format: int32
          example: 14
          description: Number of days back news should be returned for. Should not be used with startDate. Default is 31.
        pageNo:
          type: integer
          format: int32
          example: 1
          description: Page number of the total result set to return, default is 1.
        pageSize:
          type: integer
          format: int32
          example: 100
          description: Number of results out of the total result set per page to return, default is 100, maximum is 1000.
        portfolioId:
          type: string
          example: 10001
          description: Id identifying a portfolio to retrieve news for, should not be used with the cusip property.
        sector:
          type: array
          example:
          - education
          description: Sector to retrieve news for, must be used with the location property and not with the cusip, or portfolio properties.
          items:
            type: string
        significance:
          type: string
          example: HIGH
          description: Significance of articles to return, possible values are "HIGH" and "MEDIUM", default is "HIGH". The property is a threshold so a value of MEDIUM will return MEDIUM and HIGH significance articles.
        startDate:
          type: string
          example: '2018-08-01T12:00:00'
          description: News date to start from. Format is yyyy-mm-dd for daily news or yyyy-mm-dd'T'HH:mm if you want it down to the hour or minute. Should not be used if offset property is.
        text:
          type: string
          example: blockchain
          description: Keyword or phrase to search for news when not using a portfolio
        timezone:
          type: string
          example: PST
          description: Timezone used in startDate and endDate.
      title: MunicipalNewsRequestLegacy
      description: Query criteria for returning municipal news.
    ReasonResponse:
      type: object
      properties:
        reason:
          type: string
          example: Could not locate subject.
          description: Text reason for the failure (if not successful)
        reasonSupport:
          type: object
          example: Longer description of the missing subject.
          description: Additional information about the failure (if not successful)
        response:
          type: object
          description: Response payload
        success:
          type: boolean
          example: true
          description: Indicates whether the call was successful or not
      title: ReasonResponse
      description: A response used to explain a failure or issue with the request.
    MuniNewsSearchResponseLegacy:
      type: object
      required:
      - returned
      - total
      properties:
        reason:
          type: string
          example: Could not locate subject.
          description: Text reason for the failure (if not successful)
        reasonSupport:
          type: string
          example: Longer description of the missing subject.
          description: Additional information about the failure (if not successful)
        response:
          type: array
          description: Response payload
          items:
            $ref: '#/components/schemas/MuniNewsArticleLegacy'
            originalRef: MuniNewsArticleLegacy
        returned:
          type: integer
          format: int32
          example: 10
          description: Number of news articles returned by search, maximum amount dictated by the pageSize parameter used in search
        success:
          type: boolean
          example: true
          description: Indicates whether the call was successful or not
        total:
          type: integer
          format: int32
          example: 100
          description: Total Number of news articles found by search
      title: MuniNewsSearchResponseLegacy
      description: Muni news search response.
    MuniNewsArticleLegacy:
      type: object
      properties:
        articleType:
          type: string
          example: PressRelease
          description: Type of article. Possible values are "News" and "PressRelease
        availableAt:
          type: string
          example: '2017-06-29T21:41:21.109Z'
          description: Date published
        cusips:
          type: array
          example: 02361DAP5, 002824AV2
          description: CUSIPs affected by the article. Required valid CUSIP license and permission.
          items:
            type: string
        excerpt:
          type: string
          example: ACME announces long awaited acquisition. The acquisition of Wile E. Coyote was announced Thursday.
          description: Fragment or snippet, of the article
        key:
          type: string
          example: 070000015cf083aba01f0826ecfe718e965b577c572166b14a77651c
          description: Key uniquely identifying the article
        locations:
          type: array
          example: Irvine//California/United States, /San Diego County/California/United States
          description: Locations affected. A location is city or county level. It is encoded as city/county/state/country where if the city is specified the county will not be and vice-versa
          items:
            type: string
        matchedCusips:
          type: array
          example: 02361DAP5, 002824AV2
          description: CUSIPs affected by the article that match the input CUSIPs, or are contained in the supplied portfolio.
          items:
            type: string
        previewImageUrl:
          type: string
          example: http://acme.com/resources/coyote.jpg
          description: URL of a preview image
        publishedAt:
          type: string
          example: '2017-06-29T21:41:21.109Z'
          description: Date available
        sectors:
          type: array
          example: Education, Utilities
          description: Sectors which the article belongs to.
          items:
            type: string
        sentiment:
          type: number
          format: double
          example: 0.23456
          description: Sentiment of the article. The value is a decimal value between -1 and 1, under 0 is negative while over 0 is positive.
        significance:
          type: string
          example: HIGH
          description: Significance of the article. Possible values are "HIGH" and "MEDIUM"
        sourceName:
          type: string
          example: businesswire.com, The Washington Daybook
          description: Name or host name of the publisher of the article
        sourceUrl:
          type: string
          example: http://acme.com/press
          description: URL to the original source of the article
        title:
          type: string
          example: ACME acquires Wile E. Coyote, Inc.
          description: Title
      title: MuniNewsArticleLegacy
      description: Muni news article.
  securitySchemes:
    API_key:
      type: apiKey
      name: X-BV-APIKEY
      in: header
    BasicAuth:
      type: http
      scheme: basic
    OAuth:
      type: oauth2
      flows:
        clientCredentials:
          scopes:
            Global: Includes all Bitvore APIs
          tokenUrl: https://api.bitvore.com/oauth/accesstoken