关于 India API
India API 是面向开发者及 AI 客户端的印度数据与处理 API 集合,提供统一 JSON 响应和免密钥访问。涵盖印度本地查询、文档处理、语言与语音等 44 种 API。
主要功能
- 0144 种印度数据与处理 API
- 02统一 JSON 响应格式
- 03OCR、翻译与语音处理
- 04PDF、图像及发票生成
- 05无需 API 密钥
适用场景
- 01查询印度邮编、银行及节假日
- 02生成 GST 发票 PDF
- 03处理印度语言扫描件
- 04为 Agent 提供印度数据
MCP 相关
提供无认证的 Streamable HTTP MCP 服务,地址为 https://api.dharun.dev/mcp。MCP 工具对应各 REST 端点,可供 AI 客户端调用全部 API。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.dharun.dev/mcpclaude mcp add --transport http dharunashokkumar-india-api https://api.dharun.dev/mcp{"mcpServers":{"dharunashokkumar-india-api":{"type":"http","url":"https://api.dharun.dev/mcp"}}}在 Cursor 中打开{"servers":{"dharunashokkumar-india-api":{"type":"http","url":"https://api.dharun.dev/mcp"}}}在 VS Code 中打开{"mcpServers":{"dharunashokkumar-india-api":{"type":"http","url":"https://api.dharun.dev/mcp"}}}{"mcpServers":{"dharunashokkumar-india-api":{"serverUrl":"https://api.dharun.dev/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
80| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| symbol | string | 是 | 股票代码、带交易所的股票代码、Yahoo 代码、ISIN 或之前使用的股票代码。 |
| exchange | enum | 否 | 强制指定交易所。仅提供股票代码时,优先使用 NSE。nse | bse |
详细介绍
India API
面向印度数据的免费开源 API。 邮政编码、IFSC 和银行分支机构、GSTIN 和 PAN 校验、银行和市场假日、RTO 代码、公司徽标、UPI 二维码、以 lakh 和 crore 为单位的数字、 GST 发票 PDF、印度语言 OCR、PDF 和图像工具、翻译、语音转文本和文本转语音等:44 个 API,统一使用一致的 JSON 格式。无需 API 密钥,无需注册,开放 CORS,并提供 MCP 服务,让 AI 助手也能使用。
文档:api.dharun.dev · API 参考 · 指南 · 与 AI 搭配使用 · OpenAPI · llms.txt
curl https://api.dharun.dev/v1/pincode/637001
{
"data": { "pincode": "637001", "district": "Namakkal", "stateCode": "TN", "state": "Tamil Nadu", "offices": [ ... ] },
"meta": { "source": { "name": "...", "licence": "...", "attribution": "..." } }
}
API
每个名称都链接到对应页面,其中包含所有参数、真实响应,以及 curl、 JavaScript 和 Python 示例代码。
| API | 示例 | 返回内容 |
|---|---|---|
| 公司徽标 | /v1/logos/TCS, /v1/companies/RELIANCE | 在 NSE 或 BSE 上市的公司的 SVG 或 PNG 徽标(包括 REIT 和 InvIT);行业、ISIN、市值、指数;旧股票代码仍可使用 |
| 邮政编码 | /v1/pincode/637001, /v1/pincode/near?lat=&lng= | 邮局、地区、邦、坐标;某个地点附近的邮政编码 |
| IFSC 和银行 | /v1/ifsc/SBIN0000001, /v1/banks?q=gramin | 银行、分行、地址、MICR、支付系统;按名称查询银行及其代码 |
| RTO 代码 | /v1/rto/TN-28 | 车辆登记对应的交通办公室 |
| 节假日 | /v1/holidays/2026?type=market | 银行、中央政府和股票市场的节假日 |
| 工作日 | /v1/working-days/2026-01-16?calendar=bank&state=TN | 是否为工作日、下一个工作日、未来 N 个工作日、T+1 结算日期;NSE 是否开市 |
| HSN 和 SAC | /v1/hsn/0902, /v1/hsn?q=tea | 附有说明和所属章节的关税代码 |
| 共同基金 | /v1/mutual-funds/122639 | 基金计划的最新 NAV;按名称或基金公司搜索 |
| 铁路车站 | /v1/stations/MAS | 车站名称、铁路区、邦 |
| 机场 | /v1/airports/MAA | IATA 和 ICAO 代码、城市、坐标 |
| 电话号码 | /v1/phone/9500112345 | 是否有效、手机或座机、原运营商和通信区域 |
| 选区 | /v1/constituency?pincode=637001 | 某地所属的邦议会和联邦议会选区 |
| Panchang | /v1/panchang/2026-01-14?pincode=600001 | Tithi、nakshatra、yoga、karana、日出、Rahu kalam、泰米尔月份 |
| 日月信息 | /v1/sun-moon/today?pincode=600001 | 日出、日落、曙暮光、月出、月相和照明比例 |
| 卫星过境 | /v1/sat-pass?sat=ISS&pincode=600001 | ISS 或业余无线电卫星过境的时间,以及是否可见 |
| HF 电波传播 | /v1/propagation | 太阳通量、K 和 A 指数、NOAA 级别,以及各频段的昼夜评级 |
| 《提鲁古拉尔》 | /v1/thirukkural/1 | 对句、转写、两种英文译文;支持搜索和随机获取 |
| 转写 | /v1/transliterate?to=tamil&text=..., /v1/transliterate/suggest?lang=ta&text=vanakkam | 支持九种印度文字、ISO 15919、IAST 和 ASCII 之间的转换;使用模型将罗马字输入转换为 21 种印度文字 |
| 翻译 | /v1/translate?from=en&to=ta&text=... | 使用 IndicTrans2 支持英语与 22 种印度语言之间的互译 |
| 嵌入和重排 | /v1/embed?text=..., POST /v1/rerank | 用于语义搜索的多语言向量,以及用于排列结果的重排器 |
| 泰米尔语旧编码 | /v1/tamil-font/convert?from=tscii&text=... | 将 TSCII 文本转换为 Unicode,或反向转换 |
| IP 查询 | /v1/ip/8.8.8.8, /v1/ip | 地址或调用者所在的国家、城市和网络 |
| 电子邮件检查 | /v1/email/[email protected] | 语法、一次性邮箱域名,以及该域名是否接收邮件 |
| DNS 检查 | /v1/dns/example.com?type=MX | 多个公共解析器所看到的记录 |
| 从印度进行路由跟踪 | /v1/mtr/example.com | 从位于印度的服务进行 MTR 式路径跟踪:逐跳显示网络、丢包和延迟 |
| Whois | /v1/whois/example.co.in, /v1/whois/AS55836 | 域名的注册商、日期、状态和名称服务器;通过 RDAP 查询 IP 网络或 AS 号码的持有者和滥用联系信息 |
| TLS 检查 | /v1/tls/example.com | 证书有效性、证书链、剩余天数、TLS 版本和弱密码套件,并列出问题 |
| IPv6 检查 | /v1/ipv6/example.com | 网站、其名称服务器和邮件服务器的 IPv6 地址 |
| 从印度进行 HTTP 探测 | /v1/probe?url=https://example.com | 从印度测得的 DNS、连接、TLS 和首字节耗时,重定向、标头和 CDN 边缘节点所在城市 |
| 网站图标 | /v1/icon/github.com?size=64 | 任意网站的方形 PNG 图标,或首字母图块 |
| QR、UPI QR 和条形码 | /v1/qr?text=hello, /v1/upi-qr?pa=shop@okaxis&am=250, POST /v1/barcode/read | QR 码、UPI 支付 QR 码和链接、条形码;从照片中读取码 |
| GST 发票 | POST /v1/invoice | 根据 JSON 生成 GST 税务发票 PDF:CGST 和 SGST 或 IGST、HSN 汇总、金额大写、UPI QR |
| OCR | POST /v1/ocr?lang=eng+tam | 从照片、扫描图像和扫描版 PDF 中提取英语及十种印度语言的文本 |
| 图像工具 | POST /v1/image/convert?format=webp&width=800 | 调整尺寸和转换格式(支持输入 WebP、AVIF、HEIC)、移除背景、生成感知哈希 |
| PDF 工具 | POST /v1/pdf/merge, /pages, /rotate, /compress, /text, /render | 合并、拆分、旋转、压缩 PDF,读取文本、绘制页面 |
| Typst 转 PDF | /v1/typst?text=... | 将 Typst 文档转换为 PDF 或 PNG,支持印度文字 |
| 语音 | POST /v1/stt, /v1/tts?text=...&voice=hi, POST /v1/audio/denoise | 使用 Whisper 将语音转为文本和字幕;将文本转换为印地语、泰卢固语、马拉雅拉姆语和英语语音;降噪 |
| 生成图像 | /v1/og-image?title=Hello | 十种文字的链接预览卡片和代码图像 |
| 文本工具 | /v1/text/chunk, /redact, /moderate, /tokens, /language | 用于检索的分块、PII 和姓名脱敏、支持 Hinglish 和 Tanglish 的内容审核、Token 计数、语言检测 |
| 正则表达式测试器 | /v1/regex?pattern=...&text=... | 每个匹配项及其分组、替换结果、模式说明 |
| 印度虚拟数据 | /v1/fake/companies?count=5 | 符合格式检查的测试人员和公司数据,包含 PAN 和 GSTIN |
| 数字转文字 | /v1/words/1,25,000?lang=ta | 英语、印地语和泰米尔语中的 Lakh 和 Crore 拼写形式 |
| 格式检查 | /v1/validate/gstin/27AAPFU0939F1ZV | GSTIN、PAN 和 IFSC 的结构和校验字符 |
| 邦 | /v1/states/TN | 邦代码、GST 代码、车辆前缀 |
统一的响应格式
- 每个 JSON 响应的格式都是
{ "data": ..., "meta": { ... } }。data是一个对象;列表端点则返回数组,并附带meta.total、meta.limit和meta.offset。 meta.source标明数据集、版本、许可,以及要求的署名信息。- 错误的格式为
{ "error": { "code", "message" } },并返回相应的 HTTP 状态码。 - 每个客户端每分钟可请求 600 次。一次查询计 1 次;需要实际 CPU 运算的请求(图像渲染、天文学、实时 DNS)计 10 次,文件上传计 15 次,神经网络任务(语音、语音转文本、翻译、背景移除、降噪)计 30 次。嵌入、重排和审核按 CPU 运算计费。
- 文本端点接受
?text=,或接受正文为text/plain的 POST 请求,也接受 JSON{"text": "..."}。 - 图像端点直接返回图像,可供
<img>标签使用;PDF 和音频端点返回文件。 - 文件端点接受将文件作为正文的 POST 请求,或
multipart/form-data,文件大小最多为 10 MB。响应发送后会删除文件,不会保留。
在 AI 助手中使用
一个 MCP 服务、一个 Agent Skill 和一个 Claude Code 插件即可覆盖所有 API。
# Claude Code: the MCP server
claude mcp add --transport http india-api https://api.dharun.dev/mcp
# Claude Code: the plugin (skill and MCP server together)
/plugin marketplace add dharunashokkumar/api.dharun.dev
/plugin install india-api@dharun-dev
# Any agent that reads Agent Skills (Claude Code, Codex, Copilot, Cursor, Gemini CLI)
npx skills add dharunashokkumar/api.dharun.dev
- MCP 服务:
https://api.dharun.dev/mcp,使用 Streamable HTTP,无状态,无需身份验证。每个工具返回的内容与对应的 REST 端点完全一致。Claude、ChatGPT、VS Code、Cursor、Windsurf、Gemini CLI 和 Codex 的设置方法见:api.dharun.dev/ai。已收录至 MCP Registry,名称为io.github.dharunashokkumar/india-api。 - Agent Skill:
skills/india-api。 - Claude Code 插件:
plugins/india-api,市场配置见.claude-plugin/marketplace.json。 - 供爬虫和 Agent 使用:
/llms.txt、/llms-full.txt、每个页面的 Markdown 版本(添加.md或发送Accept: text/markdown)、/openapi.json,以及位于/.well-known/下的 MCP 服务卡片、AI 目录和 API 目录。
Skill、插件和 server.json 均由 internal/api/catalog.go 中的目录生成;若已提交的副本不是最新版本,测试会失败。
许可
- 调用 API 不会使你的应用受任何许可约束。
- 代码采用 GNU Affero General Public License v3.0(AGPL-3.0-only)许可。如果你将修改后的副本作为服务提供给他人,则必须向他们提供你的修改。
- 代码示例、指南中的代码、Agent Skill 和 Claude Code 插件采用 MIT-0 许可:可在任何地方使用,无需署名。
- 数据沿用其来源所规定的许可(见下文);每个响应都会重复提供署名信息。
- 编译进服务的第三方代码和字体沿用各自的许可,例如
internal/orbit中的 SGP4 代码(BSD-2-Clause)和 Noto 字体(OFL-1.1)。发布包的NOTICES会列出所有许可。 - 公司徽标是其所有者的商标。
安全与隐私
请私下报告漏洞:参见 SECURITY.md。绝不记录客户端 IP 地址;接受个人信息的端点也绝不记录输入内容。完整列表见 api.dharun.dev/privacy。每个版本均附带构建溯源证明:
gh attestation verify dharun-api-linux-amd64.tar.gz --repo dharunashokkumar/api.dharun.dev
贡献
欢迎通过 issues 提交错误报告、数据更正和新 API 需求。不接受拉取请求;请参见 CONTRIBUTING.md。
数据来源
| 数据集 | 来源 | 许可 | 记录数 |
|---|---|---|---|
| 邮政编码 | 印度邮政部《全印度邮政编码目录》(data.gov.in) | 印度政府开放数据许可 | 157,125 个邮局 |
| IFSC | razorpay/ifsc,根据印度储备银行和 NPCI 名录编制 | 发布者声明为公有领域 | 183,214 个分行 |
| RTO 代码 | Wikipedia,《印度地区交通办公室辖区列表》 | CC BY-SA 4.0(依据相同许可共享) | 1,361 个代码 |
| 银行假日 | 印度储备银行假日矩阵,涵盖 34 个地区办事处 | 官方出版物 | 2026 年 |
| 中央政府假日 | 人事与培训部备忘录 | 官方出版物 | 2026 年、2027 年 |
| 市场和结算假日 | 印度国家证券交易所 | 官方出版物 | 2026 年 |
| HSN 和 SAC 代码 | GST 门户网站代码列表;命名法源自《1975 年海关关税法》和 GST 通知 11/2017 | 法规 | 22,614 个代码 |
| 共同基金 NAV | 印度共同基金协会,NAVAll.txt | 由 AMFI 每日发布;已注明出处 | 14,375 个计划 |
| 铁路车站 | Wikipedia,《印度铁路车站列表》 | CC BY-SA 4.0(依据相同许可共享) | 3,975 个车站 |
| 机场 | OurAirports | 公有领域 | 9,509 个机场,其中 622 个在印度 |
| 电话号码段 | Wikipedia,《印度移动电话编号》 | CC BY-SA 4.0(依据相同许可共享) | 2,247 个号码段 |
| 选区 | DataMeet 社区地图 | 邦议会选区采用 CC BY 2.5 India;联邦议会选区采用 CC0 | 4,182 个邦议会选区,543 个联邦议会选区 |
| 《蒂鲁古拉尔》 | tk120404/thirukkural;译文由 G.U. Pope 以及 Drew 和 Lazarus 提供 | 文本属于公有领域;汇编采用 Apache-2.0 | 1,330 首对句 |
| IP 地址 | DB-IP Lite | CC BY 4.0 | 由每个服务获取 |
| Whois 注册机构 | IANA RDAP 引导注册表(RFC 9224);每项注册信息均实时从其注册机构获取 | CC0 1.0 | 1,201 个顶级域名,每周刷新 |
| 轨道要素 | CelesTrak,数据来自 US Space Force,经由 Space-Track.org 提供;仅发布计算得出的过境和位置数据 | 未注明;USSPACECOM 允许注明出处后再分发 | 由每个服务获取,共 111 颗卫星 |
| 空间天气 | NOAA Space Weather Prediction Center | 公有领域(美国政府作品) | 由每个服务获取,每小时更新 |
| 语音 | Piper voices,每种语音均使用各自的录音训练 | 每种语音的许可:公有领域、CC BY 4.0、IIT Madras Indic TTS 许可,或 CC BY-NC-SA 4.0(两种印地语语音,仅限非商业用途) | 由每个服务获取,共 10 种语音 |
| 背景移除模型 | IS-Net(Qin 等人),由 rembg 导出为 ONNX | Apache-2.0 | 由每个服务获取 |
| 嵌入和重排序 | multilingual-e5-small(Microsoft);bge-reranker-v2-m3(BAAI) | MIT;Apache-2.0 | 由每个服务获取 |
| 语音识别 | Whisper small(OpenAI),通过 whisper.cpp 使用 | MIT | 由每个服务获取 |
| 翻译 | IndicTrans2 distilled 200M(AI4Bharat) | MIT | 由每个服务获取 |
| 转写模型 | IndicXlit(AI4Bharat),在此处转换为 ONNX | MIT | 由每个服务获取 |
| 姓名检测 | IndicNER(AI4Bharat);bert-base-NER | MIT | 由每个服务获取 |
| 内容审核 | Detoxify multilingual(Unitary);Hinglish toxicity(Darel Philip,基于 L3Cube HingRoBERTa,CC BY 4.0);Tanglish offensive language(Sean Benhur) | Apache-2.0;MIT;Apache-2.0 | 由每个服务获取 |
| 一次性邮箱域名 | disposable-email-domains | CC0 | 9,881 个域名 |
| Logo 和公司详情 | 从 TradingView 收集 | Logo 是其所代表公司的商标 | 5,599 家公司,其中 5,354 家有 Logo |
精确版本、获取日期和校验和见 data/sources.json | |||
(模型:在 internal/dataset/aimodels.go 中按修订版和校验和固定),每个 | |||
响应都会在 meta.source 中重复注明来源。 | |||
仅以 PyTorch 权重形式发布或以全精度发布的模型,已由 tools/models/convert.py | |||
转换为 ONNX 和 int8,并附加到 models-2026-10 发布版本。 |
已知不足:
- 各邦政府假日未收录。银行假日因邦而异,依据各邦自己的通知。
- 安达曼和尼科巴尔群岛 RTO 代码缺失:来源文章中没有相关章节。
- 邮政编码文件通过镜像获取,因为政府门户拒绝脚本化下载。文件大小与门户列出的文件一致。
- 铁路车站数据来自社区列表:部分车站缺失,少数代码已过时。
- 邦议会选区边界早于六个邦最近一次重新划分;适用时,响应会说明这一点。
- 电话运营商和服务区反映号码段的原始分配情况。已携号转网的号码仍保留原号码段,因此当前运营商可能不同。
- Panchang 时刻根据太阳和月亮的位置计算,与印刷版历书可能相差一两分钟。
- 泰米尔语旧式编码:目前仅支持 TSCII;TAB、TAM 和 Bamini 计划后续支持。
- 印地语和泰米尔语数字词遵循标准书面形式,泰米尔语复合数字写作分开的词。欢迎提出修正建议。
在本地运行
需要 Go 1.26 或更高版本。
go run ./cmd/apidata build -resvg none # build every dataset from data/ into seed/
go run ./cmd/api # http://127.0.0.1:8080/
go test ./...
PNG 输出(徽标和生成的图像)由
resvg 渲染;bash tools/fetch-resvg.sh <dir> 会下载
固定版本的 Linux 构建。没有它,其他功能仍可正常使用,PNG 请求会返回 501。
配置通过环境变量完成;参见
deploy/dharun-api.env.example。
ROADMAP.md 记录了已实现、计划实现和已否决的内容。
仓库结构
cmd/api the server
cmd/apidata data tool: build, import, refresh, status
internal/api routing, endpoints, the website, MCP, metrics
internal/api/guides the guides, in Markdown
internal/api/templates the Markdown forms of the pages and the skill
internal/dataset one file per dataset: how it is built, fetched and checked
internal/typeset text shaping and the fonts for generated images
internal/panchang almanac calculations
internal/translit transliteration between scripts
internal/tamilfont Tamil 8-bit encodings
internal/textkit chunking, redaction, token counts, language detection
internal/fake test data
internal/words number to words
internal/validate GSTIN, PAN, IFSC and checksum rules
internal/india states and their codes
data/ one folder per dataset (logos included), and sources.json
skills/ the Agent Skill (generated from the catalog)
plugins/ the Claude Code plugin (generated); marketplace in .claude-plugin/
server.json the MCP Registry entry (generated)
deploy/ systemd units, installer, self-updater, monitoring
tools/ release build, smoke test, install test, resvg download, logo scraper
数据如何保持最新
每个数据集都存储在独立的只读 SQLite 文件中。每个发布版本都包含从 data/ 构建的每个数据集的 种子 副本。在服务器上,apidata refresh 每小时作为独立的短时任务运行:对于程序可获取的每个数据集(IFSC、RTO 代码、银行和市场假日、HSN、共同基金 NAV、机场、车站、IP 地址、一次性域名),到期时都会下载、检查,并在服务器自己的数据目录中构建为新文件。API 会提供较新的副本,并在新文件就绪后自动加载,无需重启。部署会替换种子文件,但不会触及服务器自己的副本。
无法通过程序获取的数据集会手动更新,并随推送发布:
go run ./cmd/apidata import pincode -file pincode.csv # CSV saved from data.gov.in
python tools/scrape_logos.py --dry-run # logos: see new, renamed and delisted companies
python tools/scrape_logos.py # then download and write them
go run ./cmd/apidata status # which copy of each dataset is in use
中央政府假日会根据年度备忘录录入 data/holidays/central/<year>.json,该备忘录通常在 7 月发布,适用于下一年。
发布和部署
部署采用拉取模式:服务器获取发布包,没有任何连接会主动连入服务器。
- 每次推送到
main都会运行 CI:测试、shell lint、完整的发布构建、使用完整数据集对打包文件进行冒烟测试,以及在全新的 Debian 13 上安装。 - CI 通过后,打包文件会作为发布版本
v1.1.<run number>发布。 - 在服务器上,
dharun-api-update.timer每 2 分钟检查一次。它会下载新版本、校验校验和、切换到新版本,并检查/healthz。如果新版本无法启动,服务器会切回旧版本,并将该发布版本标记为失败。 - CI 完成后,
Production工作流会等待(最多 20 分钟),直到公共/healthz报告新版本,然后对线上站点运行冒烟测试中的路由检查。未安装或已回滚的发布版本会导致运行失败。该运行会在 GitHub 上显示为部署到production。
在 Debian 12 或 13 机器或容器上以 root 身份进行首次设置:
tar -C deploy -cz . | ssh <host> 'mkdir -p /root/api-deploy && tar -xz -C /root/api-deploy && sh /root/api-deploy/install.sh'
服务器由一个静态二进制文件和每个数据集对应的一个数据库文件组成。它以非特权用户 dharun-api 身份运行,文件系统为只读;空闲时内存占用约为 35 MB,突发负载下约为 150 MB。更新程序以 root 身份运行,只有重新运行 install.sh 才会替换它。请使用防火墙,将端口 8080 限制为仅代理可访问,并将端口 9464 限制为仅 Prometheus 可访问。
监控
:9464/metrics提供 Prometheus 指标:按 API 和状态统计的请求数、响应时间、徽标查询、内存、api_lifetime_requests_total,以及每个数据集当前使用的副本、其数据时效和上次刷新是否成功。:9464/stats以 JSON 格式提供累计总数。这些数据会保存到磁盘,重启后仍然保留。deploy/monitoring/包含 Prometheus 抓取任务、告警规则(API 宕机、刷新持续失败、数据过期)和 Grafana 仪表板。- 每个请求都会在 stdout 中记录为一行 JSON:路由、状态、持续时间、查询内容、国家/地区和用户代理。不会记录客户端 IP 地址,格式检查也不会记录任何被检查的值。
商标声明
公司徽标和商标归各自所有者所有。本项目是一个便于发现和使用的索引;用于生产环境前,请查看各公司的品牌规则。如需请求移除徽标,请提交 issue。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。