Gov APIcsr.gov.in ↗
Access India's National CSR Portal data: company expenditures, project details, state-wise and sector-wise breakdowns, and top spenders by financial year.
What is the Gov API?
This API exposes 7 endpoints covering India's National CSR Portal at csr.gov.in, giving programmatic access to corporate social responsibility expenditures, project-level details, and aggregate breakdowns. Use search_companies to look up any registered company by name and retrieve its CIN, then pull full project-level spending data including sector, state, district, and implementing mode via company_csr_details. Summary statistics, state-wise totals, and sector-wise allocations are also available.
curl -X GET 'https://api.parse.bot/scraper/13375483-360b-446f-9741-22e73dcd9c0d/search_companies?keyword=Reliance' \ -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 csr-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.
from parse_apis.india_csr_portal_api import IndiaCSR, Company, FinancialYear, TopCompany, StateSpending, SectorSpending, CSRSummary, CompanyCSR, Project, Fy
csr = IndiaCSR()
# List available financial years
for fy in csr.financialyears.list():
print(fy.year)
# Get summary statistics for a specific financial year
year = FinancialYear(_api=csr, year="FY 2023-24")
summary = year.summary()
print(summary.total_companies, summary.total_projects, summary.total_amount_spent)
# Get top CSR-spending companies for the year
for company in year.top_companies():
print(company.rank, company.company_name, company.amount_spent)
# Get state-wise breakdown
for state in year.state_spending():
print(state.state, state.amount_spent)
# Get sector-wise breakdown
for sector in year.sector_spending():
print(sector.sector, sector.short_name, sector.amount_spent)
# Search companies by keyword
for match in csr.companies.search(keyword="Tata"):
print(match.cin, match.company)
# Get CSR details for a specific company using the Fy enum
reliance = csr.company(cin="L17110MH1973PLC019786")
details = reliance.csr_details(fy=Fy.FY_2023_24)
print(details.total_projects, details.total_amount_spent)
for project in details.projects:
print(project.csr_prjct, project.sector, project.state, project.amnt_spent)
Full-text search over registered companies by name keyword. Returns matching company names and their Corporate Identity Numbers (CIN). Minimum 3-character keyword required. Results are not paginated; all matches are returned in a single response.
| Param | Type | Description |
|---|---|---|
| keywordrequired | string | Company name search keyword (minimum 3 characters) |
{
"type": "object",
"fields": {
"total": "integer count of matching companies",
"keyword": "string echoing the search keyword",
"companies": "array of objects with cin (string) and company (string)"
},
"sample": {
"data": {
"total": 158,
"keyword": "Reliance",
"companies": [
{
"cin": "U65999MH2007PTC168431",
"company": "Reliance Consolidated Holdings Privatelimited"
},
{
"cin": "U65910MH1986PLC041081",
"company": "Reliance Industrial Investments And Holdings Limited"
}
]
},
"status": "success"
}
}About the Gov API
Company Search and Project-Level Data
The search_companies endpoint accepts a keyword (minimum 3 characters) and returns an array of matching companies, each with a company name and cin (Corporate Identity Number). That CIN is the key input for company_csr_details, which returns a projects array where each entry includes sector, state, district, mode (implementing mode), csr_prjct (project name), and amnt_spent. The endpoint also surfaces total_projects and total_amount_spent in rupees. Both endpoints accept an optional fy parameter in the format FY YYYY-YY (e.g., FY 2023-24).
Aggregate and Ranking Data
top_companies returns the ten highest CSR spenders for a given financial year, with each entry carrying rank, company_name, cin, and amount_spent. csr_summary gives a single-object snapshot of a full year: total_companies, total_projects, total_states, total_sectors, and total_amount_spent. Both endpoints default to a recent financial year when fy is omitted.
Sector and State Breakdowns
state_wise_spending returns an array of {state, amount_spent} pairs covering all states and union territories with recorded CSR activity. sector_wise_spending returns {sector, short_name, amount_spent} for each development sector — spanning categories like education, health, environment, and rural development. Both are scoped per financial year via the same optional fy parameter.
Financial Year Coverage
The financial_years endpoint returns the complete list of available years as an array of strings in FY YYYY-YY format, with a total count. Use this before constructing queries to confirm which years have data rather than guessing valid values.
The Gov API is a managed, monitored endpoint for csr.gov.in — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when csr.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 csr.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?+
- Track year-over-year CSR spending trends for a specific company using its CIN across multiple financial years.
- Build a state-level CSR investment heatmap using
state_wise_spendingamount data. - Identify which development sectors receive the most CSR funding via
sector_wise_spending. - Benchmark a company's CSR spend against the
top_companiesleaderboard for the same financial year. - Screen companies by CSR project geography — filtering
company_csr_detailsresults bystateordistrict. - Generate annual CSR compliance reports by pulling
csr_summarytotals across consecutive financial years. - Populate a company directory with CSR metadata by resolving names to CINs via
search_companiesand enriching with project counts.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does csr.gov.in have an official developer API?+
What does `company_csr_details` return at the project level?+
csr_prjct (project name), sector, state, district, mode (the implementing mode, such as direct or through an implementing agency), and amnt_spent in rupees. The endpoint also returns total_projects and total_amount_spent as summary fields for the queried company and financial year.Does the API return CSR obligation or prescribed amounts, not just amounts spent?+
amount_spent figures. Prescribed CSR obligation amounts (the 2% net-profit requirement figure) and unspent CSR amounts are not included in the response fields. You can fork this API on Parse and revise it to add endpoints that surface obligation and unspent data if those fields become available on the source portal.How do I know which financial years have data available?+
financial_years endpoint first. It returns a financial_years array of all valid year strings in FY YYYY-YY format and a total count. Pass any value from that list as the fy parameter in other endpoints. Using a year string not in that list may return empty or default results.Does the API support pagination for large company or project result sets?+
search_companies returns all matches for a keyword, and company_csr_details returns all projects for a company in a given year in a single response. For companies with large project counts, the full array is returned at once. You can fork this API on Parse and revise it to add limit/offset parameters if needed.