Gov APIifsca.gov.in ↗
Access IFSCA circulars, guidelines, press releases, enforcement orders, and SEZ public notices via a structured API. PDF links and publication dates included.
What is the Gov API?
The IFSCA API exposes 5 endpoints covering the full range of public regulatory documents published by India's International Financial Services Centres Authority — circulars, guidelines, FAQs, press releases, consultation papers, SEZ public notices, and enforcement orders. Each record includes the document title, publication date, and a direct PDF link. The list_legal_documents endpoint alone spans eight document-type sections, including AML/CFT/KYC and notification categories.
curl -X GET 'https://api.parse.bot/scraper/8af44e6a-79ce-41cd-b11b-250dab14193f/list_legal_documents?document_type=circular' \ -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 ifsca-gov-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: IFSCA regulatory documents — bounded, re-runnable."""
from parse_apis.ifsca_gov_in_api import (
Ifsca,
LegalDocumentType,
PublicationType,
InputFormatInvalid,
)
client = Ifsca()
# Browse the latest IFSCA circulars (default document type).
for doc in client.legal_documents.list(
document_type=LegalDocumentType.CIRCULAR, limit=3
):
print(doc.title, doc.publish_date, doc.view_url)
# Search press releases by keyword.
release = client.press_releases.list(search_text="Bulletin", limit=1).first()
if release is not None:
print(release.title, release.document_id, release.download_url)
# List public consultation papers from the Publications section.
for pub in client.publications.list(
publication_type=PublicationType.PUBLIC_CONSULTATION, limit=3
):
print(pub.title, pub.publish_date)
# SEZ public notices.
notice = client.public_notices.list(limit=1).first()
if notice is not None:
print(notice.title, notice.notice_date, notice.notice_id)
# Enforcement orders (single-page, no pagination controls).
for order in client.enforcement_orders.list(limit=5):
print(order.title, order.order_date or order.order_date_text, order.category_of_action)
# Demonstrate typed-error handling on a filtered list call.
try:
client.legal_documents.list(
document_type=LegalDocumentType.GUIDELINES,
issuing_authority="bad_value", # type: ignore[arg-type]
limit=1,
).first()
except InputFormatInvalid as exc:
print("caught:", exc)
print("exercised: legal_documents.list / press_releases.list / publications.list / public_notices.list / enforcement_orders.list")
Lists documents from IFSCA's Legal Framework section, one page per call, newest first. document_type selects the section: circular (default), guidelines, faqs, regulations, act, rules, notification or aml_cft_kyc. The framework value is a convenience view: it lists the circulars whose title contains the word 'Framework' (IFSCA publishes its frameworks as circulars, the site has no separate frameworks section), so search_text cannot be combined with it. search_text is a title keyword filter applied by the site; issuing_authority filters by the issuing body; date_from/date_to bound the publication date (inclusive, ISO dates). Pagination is caller-controlled through page (1-based, default 1) and page_size (10 default; the site accepts 10, 25, 50 or 100). total_records and total_pages come from the site and has_more tells whether a further page exists. A filter that matches nothing returns an empty items array with total_records 0.
| Param | Type | Description |
|---|---|---|
| page | integer | 1-based page number. |
| date_to | string | Latest publication date, ISO date YYYY-MM-DD (inclusive). Omitted = no upper bound. |
| date_from | string | Earliest publication date, ISO date YYYY-MM-DD (inclusive). Omitted = no lower bound. |
| page_size | integer | Records per page; the site accepts 10, 25, 50 or 100 and other values are rejected. |
| search_text | string | Keyword matched against document titles by the site. Omitted = no title filter. Not allowed together with document_type=framework. |
| document_type | string | Legal Framework section to list. |
| issuing_authority | string | Restrict to documents issued by one authority. Omitted = all authorities. |
{
"type": "object",
"fields": {
"page": "page number returned",
"items": "array of documents on this page, newest first",
"has_more": "true when a later page exists",
"page_size": "records per page requested",
"total_pages": "number of pages at this page_size",
"document_type": "the document_type the page was listed for",
"items[].title": "document title as published",
"total_records": "total matching documents reported by the site",
"items[].view_url": "link that opens the PDF in the browser viewer",
"items[].file_name": "PDF file name on the site",
"items[].document_id": "integer site identifier of the document",
"items[].download_url": "direct PDF download link",
"items[].publish_date": "publication date, ISO YYYY-MM-DD"
},
"sample": {
"data": {
"page": 1,
"items": [
{
"title": "Extension of validity of expired placement memorandum – reg",
"view_url": "https://ifsca.gov.in/CommonDirect/GetFileView?id=b64bc220b28b988fb41d0459999d2857&fileName=Circular_on_Extension_of_validity_of_expired_PPMs_20260911_0710.pdf",
"file_name": "Circular_on_Extension_of_validity_of_expired_PPMs_20260911_0710.pdf",
"document_id": 940,
"download_url": "https://ifsca.gov.in/CommonDirect/DownloadFile?id=b64bc220b28b988fb41d0459999d2857&fileName=Circular_on_Extension_of_validity_of_expired_PPMs_20260911_0710.pdf",
"publish_date": "2026-09-11"
}
],
"has_more": true,
"page_size": 10,
"total_pages": 41,
"document_type": "circular",
"total_records": 406
},
"status": "success"
}
}About the Gov API
Legal Framework Documents
list_legal_documents is the core endpoint, covering eight section types selectable via the document_type parameter: circular, guidelines, faqs, regulations, act, rules, notification, and aml_cft_kyc. Results are paginated newest-first with page and page_size (valid values: 10, 25, 50, or 100 — other values are rejected). You can narrow results with date_from and date_to (ISO YYYY-MM-DD) or with search_text for title keyword filtering; note that search_text and document_type cannot be combined in the same request. Each item returns title, view_url, and file_name.
Press Releases, Publications, and Public Notices
list_press_releases follows the same pagination and date-filtering conventions and adds a per-document document_id integer field. list_publications covers the Reports & Publications section with a publication_type selector spanning public_consultation, public_comments, committee_reports, annual_reports, bulletin, research, and post_event_reports. list_public_notices returns SEZ public notices issued by IFSCA as Administrator of GIFT-SEZ, with a notice_id field per record. All three endpoints return total_records, total_pages, has_more, and consistent items[] shapes.
Enforcement Orders
list_enforcement_orders returns all enforcement orders in a single call — no pagination parameters apply. Each item includes title (naming the entity concerned), order_date (ISO date, or null if unparseable), order_date_text (the date exactly as published), category_of_action, and document_url. The full dataset is typically a few dozen rows, returned newest-first.
Coverage Notes
All five endpoints reflect the publicly accessible document index on ifsca.gov.in. Date filtering is available on list_legal_documents and list_press_releases but not on list_publications or list_public_notices. The issuing_authority filter on list_legal_documents restricts results to a single issuing body when set.
The Gov API is a managed, monitored endpoint for ifsca.gov.in — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ifsca.gov.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 ifsca.gov.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?+
- Monitor newly published IFSCA circulars by polling
list_legal_documentswithdocument_type=circularand a recentdate_from. - Build a compliance document archive by paginating through all
regulations,act, andrulessections and downloading the linked PDFs. - Track enforcement actions against specific entities by reading
items[].titleanditems[].category_of_actionfromlist_enforcement_orders. - Aggregate IFSCA consultation papers using
list_publicationswithpublication_type=public_consultationfor regulatory research. - Alert legal teams to new GIFT-SEZ public notices by checking
list_public_noticesfor records withnotice_idvalues not seen before. - Compile a press release feed for IFSCA news by filtering
list_press_releaseswithdate_fromset to the last sync date. - Cross-reference AML/CFT/KYC regulatory updates using
document_type=aml_cft_kycinlist_legal_documentswith optionalissuing_authorityfiltering.
| 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 IFSCA offer an official developer API for its public documents?+
How does `list_legal_documents` handle the `document_type` and `search_text` parameters together?+
search_text and document_type cannot be used in the same request — the endpoint rejects that combination. Use document_type to select a section (e.g. circular, aml_cft_kyc) without a keyword filter, or use search_text alone to search titles across documents without selecting a section.Can I filter publications by date using `list_publications`?+
list_publications does not support date_from or date_to parameters. Date filtering is only available on list_legal_documents and list_press_releases. You can fork the API on Parse and revise it to add date filtering if list_publications is the endpoint you need.Does the API return the full text or content of the documents?+
view_url, and file_name — but not the content of the PDFs themselves. The view_url and document_url fields link directly to the PDFs hosted on ifsca.gov.in. Full-text extraction is not currently covered; you can fork the API on Parse and revise it to add a document-parsing endpoint if you need extracted text.What is the behavior of `list_enforcement_orders` when no new orders have been added?+
total_records reflects the current count. To detect additions, compare the returned items[].title and items[].order_date values against a previously stored snapshot.