ICRA APIicra.in ↗
Retrieve ICRA investment-grade corporate debt ratings (BBB+ and above, Stable or Positive outlook) via a single structured API endpoint with pagination support.
What is the ICRA API?
The ICRA Ratings API exposes investment-grade corporate debt ratings from ICRA's published rating database through a single get_ratings endpoint. Each response includes an array of rating records filtered to entities rated BBB+ and above with Stable or Positive outlooks, along with pagination metadata covering an upstream corpus of approximately 50 pages. Response fields include items, total_items, total_pages, page_start, and page_end.
curl -X GET 'https://api.parse.bot/scraper/519ca75d-b240-48b3-8f49-110eac435a4a/get_ratings?page=1&pages_per_call=5' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace icra-in-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: ICRA Corporate Debt Ratings SDK — bounded, re-runnable; every call capped."""
from parse_apis.icra_in_api import Icra, ParseError
client = Icra()
# List investment-grade ratings (BBB+ and above, Stable/Positive outlook)
for rating in client.ratings.list(pages_per_call=5, limit=3):
print(rating.entity_name, rating.ratings, rating.sector)
# Get the first matching entity for inspection
first = client.ratings.list(pages_per_call=3, limit=1).first()
if first:
print(first.entity_name, first.date, first.instrument)
# Typed error handling
try:
for r in client.ratings.list(pages_per_call=2, limit=1):
print(r.entity_name, r.company_id)
except ParseError as e:
print(f"error: {e}")
print("exercised: ratings.list")
Retrieves ICRA corporate debt ratings for entities rated BBB+ and above with Positive or Stable outlook. Results are paginated by upstream page numbers; each call fetches a configurable batch of pages and returns the filtered matching entities. The total upstream corpus spans ~502 pages of 10 records each.
| Param | Type | Description |
|---|---|---|
| page | integer | Starting upstream page number to fetch from. |
| pages_per_call | integer | Number of upstream pages to fetch in a single call. Max 50. |
{
"type": "object",
"fields": {
"items": "array of rating records matching BBB+ and above with Stable or Positive outlook",
"page_end": "last upstream page fetched",
"page_start": "first upstream page fetched",
"total_items": "number of matching records in this batch",
"total_pages": "total upstream pages available"
},
"sample": {
"data": {
"items": [
{
"date": "24 Jul 2026",
"sector": "Transport Infrastructure",
"ratings": "[ICRA]AA- (Stable), --",
"company_id": 13015,
"instrument": "Long-term – Fund-based – Cash Credit",
"sub_sector": "Airport & Airport services",
"entity_name": "Delhi Aviation Fuel Facility Private Limited",
"rationale_id": 144442
}
],
"page_end": 5,
"page_start": 1,
"total_items": 17,
"total_pages": 502
},
"status": "success"
}
}About the ICRA API
What the API Returns
The get_ratings endpoint returns structured rating records from ICRA's corporate debt ratings for investment-grade entities. Each response object includes an items array of matched rating records, a total_items count reflecting the number of qualifying records in the current batch, and pagination fields (page_start, page_end, total_pages) that let you track position across the full upstream dataset.
Filtering and Pagination
The endpoint accepts two optional inputs: page (the starting upstream page number to begin fetching from) and pages_per_call (how many upstream pages to retrieve in a single call, capped at 50). This design lets you walk the full corpus incrementally or fetch large batches in one call. The page_end field in each response tells you where the last call stopped, making it straightforward to chain requests and cover the complete dataset.
Coverage Scope
All records returned are pre-filtered to entities carrying a BBB+ rating or higher with either a Stable or Positive outlook. Entities with Negative outlooks or ratings below BBB+ are excluded from results. The source is ICRA, one of India's established credit rating agencies operating under SEBI registration and affiliated with Moody's.
The ICRA API is a managed, monitored endpoint for icra.in — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when icra.in changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official icra.in API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Screen Indian corporate bond issuers by investment-grade status (BBB+ and above) for fixed-income portfolio construction
- Monitor outlook changes (Stable vs. Positive) across rated entities to flag potential rating upgrade candidates
- Build automated alerts when new entities appear in the investment-grade filtered
itemsarray - Aggregate ICRA rating data alongside other domestic CRA feeds for cross-agency credit comparison tools
- Populate internal credit databases with structured
total_itemscounts and entity records per batch - Support due diligence workflows by programmatically checking whether a counterparty holds an ICRA investment-grade rating
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does ICRA provide an official developer API for its ratings data?+
What does a single `get_ratings` call actually return?+
items array of rating records matching the BBB+ and above, Stable or Positive outlook filter, plus total_items (count for that batch), page_start and page_end (upstream page range fetched), and total_pages (total pages available in the upstream corpus). The pages_per_call parameter controls how many upstream pages are collapsed into a single response.