# India API

> Free Indian data and AI: pincode, IFSC, GSTIN, holidays, GST invoice, OCR, translation. No key.

- name: io.github.dharunashokkumar/india-api
- version: 1.1.22
- connection class: R0 (autonomous)
- trust: 96/100
- quality: 85/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.dharunashokkumar%2Findia-api
- tools: https://api.protogrid.dev/v1/servers/io.github.dharunashokkumar%2Findia-api/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "india-api": {
      "type": "http",
      "url": "https://api.dharun.dev/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 96
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-91% +updated-5d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 85/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 80 of 80 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- warn `tools.token_cost`: about 11,316 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 5 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 80, about 11,316 tokens to load them all
- tool set hash: 7bd71b87242d9d1f531f605e86eb5088
- tools last changed: 2026-10-16T17:31:11.797Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.dharunashokkumar/india-api.svg)](https://protogrid.dev/servers/io.github.dharunashokkumar/india-api)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-16 `whois_lookup` added
  - Who registered a domain, IP network or AS number, through RDAP (the registries' replacement for whois): for a domain the registrar, registration and expiry dates, status, nameservers and DNSSEC; for an IP address or AS number the network, its holding organisation, country and abuse contact. Works for .in and .co.in. Personal contacts are never returned.
- 2026-10-16 `check_tls` added
  - Check a website's TLS certificate and setup on port 443, from India: whether the certificate is valid for the name and trusted, days until it expires, the chain as sent, issuer and key, which TLS versions (1.0 to 1.3) are accepted, the cipher and HTTP/2 offered, weak ciphers, and a plain list of problems.
- 2026-10-16 `probe_url_from_india` added
  - Fetch a URL from a server in India and time it: DNS, connect, TLS, time to first byte and download, the HTTP status and version, every redirect, the response headers (cookie values hidden), the body's size and hash (never the body), and which CDN and edge city answered. Shows how fast a site is for visitors in India.
- 2026-10-16 `check_ipv6` added
  - Check whether a domain is ready for IPv6, from DNS: IPv6 (AAAA) addresses for the site and www, for each nameserver and each mail server, with a plain list of what is missing. No connection is made over IPv6.
- 2026-10-16 `domain_icon` added
  - Get the icon of any website as a square PNG, from its favicon, Apple touch icon or web app manifest, redrawn at the size asked. A site without a usable icon gets an initials tile.
- 2026-10-15 `remove_audio_noise` added
  - Lower background noise (fans, traffic, hum) in a recording with DeepFilterNet; returns MP3. The first five minutes are cleaned.
- 2026-10-15 `merge_pdfs` added
  - Join PDFs into one, in the order given.
- 2026-10-15 `compress_pdf` added
  - Make a PDF smaller by removing duplicate fonts and images and packing its structure. Scanned PDFs shrink little.
- 2026-10-15 `rotate_pdf_pages` added
  - Turn the pages of a PDF clockwise by a multiple of 90 degrees.
- 2026-10-15 `select_pdf_pages` added
  - Make a new PDF from some pages of one, in the order named: to pick, reorder or split pages.

Full history: https://api.protogrid.dev/v1/servers/io.github.dharunashokkumar%2Findia-api/changes

## Remotes

- https://api.dharun.dev/mcp (streamable-http, auth none, reachable true, uptime30d 0.90909094)

## Packages

_none_

## Tools (80)

- `check_dns`: Look up a domain's DNS records (A, AAAA, MX, TXT, NS, CNAME, CAA, SOA, SRV, or PTR for an IP) at Cloudflare, Google, Quad9 and OpenDNS at once, and say whether they agree.
- `check_email_address`: Check an email address without contacting its mail server: valid form, disposable (throwaway) domain, free provider, role account, and whether the domain has mail servers.
- `check_indian_phone_number`: Check an Indian phone number's form and type (mobile, toll-free, fixed line), format it, and name the operator and telecom circle its series was originally given to.
- `check_ipv6`: Check whether a domain is ready for IPv6, from DNS: IPv6 (AAAA) addresses for the site and www, for each nameserver and each mail server, with a plain list of what is missing. No connection is made over IPv6.
- `check_tls`: Check a website's TLS certificate and setup on port 443, from India: whether the certificate is valid for the name and trusted, days until it expires, the chain as sent, issuer and key, which TLS versions (1.0 to 1.3) are accepted, the cipher and HTTP/2 offered, weak ciphers, and a plain list of problems.
- `check_working_day`: Check whether a date is a working day in India for banks in a state, NSE trading, NSE settlement or central government offices; get the previous and next working days, or the date N working days away (T+1 settlement: calendar settlement, add 1).
- `chunk_text`: Split a long document (plain text or Markdown) into readable chunks for retrieval (RAG): at headings, paragraphs, sentences and words in that order; Markdown chunks keep their heading path. Each chunk carries its character offsets.
- `compare_images`: Compare two pictures by how they look: the bits by which their perceptual hashes differ, a score from 0 to 1, and whether they look like the same picture.
- `compile_typst`: Compile a Typst document to PDF (or one page as PNG). Noto fonts for Latin and nine Indian scripts are available; packages and files are not.
- `compress_pdf`: Make a PDF smaller by removing duplicate fonts and images and packing its structure. Scanned PDFs shrink little.
- `convert_image`: Resize a picture or convert it (JPEG, PNG, WebP, AVIF, GIF, TIFF out; HEIC and AVIF read too). Turned upright, all metadata such as the GPS position removed.
- `convert_tamil_legacy_text`: Convert Tamil text in an old 8-bit encoding (TSCII), which shows as accented Latin letters such as ¾Á¢ú without its font, to Unicode Tamil, or Unicode back to it.
- `count_tokens`: Count the tokens a text uses for an OpenAI model or encoding (o200k_base for GPT-4o and later, cl100k_base for GPT-4).
- `count_working_days`: Count Indian working days between two dates (both included) for a calendar, and list each day off with its reason.
- `detect_language`: Detect the language and script of a text, including Indian languages.
- `domain_icon`: Get the icon of any website as a square PNG, from its favicon, Apple touch icon or web app manifest, redrawn at the size asked. A site without a usable icon gets an initials tile.
- `embed_texts`: Turn texts into 384-number vectors with multilingual-e5-small (Indian languages and English), scaled to length 1 so a dot product is the cosine similarity. For storing in a vector database or comparing meaning; use rerank_documents to order a few passages for a question instead.
- `find_constituency`: Find the assembly (MLA) and parliamentary (MP, Lok Sabha) constituency of a place in India, by pincode or by latitude and longitude.
- `find_post_offices_near`: Find Indian post offices and their pincodes near a latitude and longitude, nearest first.
- `find_satellites`: List or search the tracked space stations and amateur radio satellites, with catalogue numbers, orbital periods and inclinations.
- `get_company_logo`: Get the logo URLs (SVG and PNG) and details of a company listed on India's NSE or BSE. Accepts a ticker (TCS), exchange-qualified ticker (NSE:TCS), Yahoo symbol (TCS.NS), ISIN or the old ticker of a renamed company. listed is false for a delisted company.
- `get_hf_propagation`: Current space weather from NOAA (solar flux, sunspot number, K and A indices, X-ray class, NOAA R/S/G scales) and a rule of thumb good/fair/poor rating of HF amateur radio bands by day and night.
- `get_image_info`: Format, size, colour space, orientation and camera of a picture, and whether it carries EXIF data or a GPS position.
- `get_indian_states`: List India's 28 states and 8 union territories, or get one, with its two-letter code, GST state code and vehicle registration prefixes.
- `get_mutual_fund_nav`: Get the latest NAV of an Indian mutual fund scheme by AMFI scheme code or ISIN, with its fund house, category, plan and option.
- `get_panchang`: Hindu almanac (panchang) for a date and place: tithi, nakshatra, yoga, karana with their end times, sunrise, sunset, moonrise, moonset, Rahu kalam, Yamagandam, Gulika kalam, Abhijit muhurta, Tamil month and day, lunar month, Shaka and Vikram years.
- `get_pdf_info`: Page count, PDF version, title, author, dates and page sizes of a PDF, and whether it has forms, signatures or attachments.
- `get_satellite_passes`: When the ISS, the Chinese space station or an amateur radio satellite passes over a place in the next days: rise, highest point and set times with compass directions and elevations, and when the pass can be seen with the eye.
- `get_sun_and_moon`: Sunrise, sunset, solar noon, day length, civil, nautical and astronomical twilight, moonrise, moonset, moon phase, illumination, age and the next new, first quarter, full and last quarter moons, for a date at an Indian pincode or any latitude and longitude.
- `get_thirukkural`: Get a Thirukkural couplet by number (1-1330) in Tamil, with transliteration, English translations by G.U. Pope and by Drew and Lazarus, and its chapter.
- `hash_image`: Perceptual fingerprints of a picture (average, difference and DCT hashes) that stay nearly the same after resizing or recompression, for finding duplicates.
- `indian_market_status`: Is the Indian stock market (NSE equities) open now or at a given moment: session, reason if closed, and when it next opens.
- `list_holidays`: List Indian holidays for a year: bank holidays, central government holidays, and stock market trading and clearing holidays. Filter by type, state or month.
- `lookup_airport`: Look up an airport by IATA code (MAA) or ICAO code (VOMM): name, city, state, country, coordinates and whether it has scheduled flights.
- `lookup_hsn_code`: Look up an Indian HSN code (goods) or SAC code (services) used in GST invoices: its description, the chapter and heading above it, and the codes below it. No GST rates.
- `lookup_ifsc`: Look up an Indian bank branch by its IFSC: bank, branch, address, MICR and supported payment systems.
- `lookup_ip_address`: Find the country, region (Indian state), city and network operator of a public IPv4 or IPv6 address.
- `lookup_pincode`: Look up an Indian pincode: its district, state and every post office that uses it.
- `lookup_railway_station`: Look up an Indian Railways station by its code (MAS, NDLS): name, state, railway zone and elevation.
- `lookup_rto`: Find which Regional Transport Office an Indian vehicle registration belongs to. Accepts a code (TN-28) or a full number plate (TN28AB1234).
- `make_barcode`: Make a barcode image (PNG): Code 128, Code 39, Code 93, EAN-13, EAN-8, ITF, Codabar, Data Matrix, PDF417 or Aztec.
- `make_code_image`: Draw a code snippet as a PNG picture of an editor window with syntax colouring, for slides, posts and READMEs. Up to 150 lines of 140 characters.
- `make_fake_indian_data`: Generate made-up Indian test data for building apps: people (name, gender, birth date, email, phone, PAN, address) or companies (name, PAN, GSTIN with a valid check character, address) or addresses, at real pincodes. Never real people.
- `make_gst_invoice`: Make an Indian GST tax invoice as a PDF from seller, buyer and items. Works out each line's taxable value, CGST and SGST (or UTGST) within a state or IGST across states, the HSN-wise summary, rounding and the amount in words. format=json returns the worked-out amounts only.
- `make_qr_code`: Make a QR code image (PNG) for any text or link.
- `make_social_preview_image`: Make a 1200 by 630 link preview (Open Graph) image as PNG from a title, with an optional subtitle, site name and tag. Latin and nine Indian scripts are set correctly. The same arguments always give the same picture.
- `make_upi_payment_link`: Build a UPI payment link (upi://pay) for an Indian UPI ID, with optional payee name, amount and note, plus the URL of a QR code image for it. Generate only; nothing is checked with a bank.
- `merge_pdfs`: Join PDFs into one, in the order given.
- `moderate_text`: Score a comment or message for abuse with three classifiers: general multilingual, Hinglish (Hindi in Roman letters, by kind: profanity, harassment, hate speech, caste, communal, regional, misogyny) and Tanglish (Tamil in Roman letters). Scores 0 to 1; a model's guess, not a decision.
- `number_to_words`: Spell a number or rupee amount in words using the Indian system (lakh, crore), in English, Hindi or Tamil.
- `probe_url_from_india`: Fetch a URL from a server in India and time it: DNS, connect, TLS, time to first byte and download, the HTTP status and version, every redirect, the response headers (cookie values hidden), the body's size and hash (never the body), and which CDN and edge city answered. Shows how fast a site is for visitors in India.
- `read_barcodes`: Find and read every QR code and barcode (Data Matrix, Aztec, EAN, UPC, Code 128, Code 39, ITF, Codabar) in a picture.
- `read_pdf_text`: Read the text of a PDF, page by page. needs_ocr is true when the pages are scanned pictures; send those to read_text_in_image.
- `read_text_in_image`: OCR: read the text in a photo, scan or scanned PDF, in English and Indian languages (Hindi, Tamil, Telugu, Kannada, Malayalam, Bengali, Gujarati, Punjabi, Odia, Marathi).
- `redact_indian_identifiers`: Mask Aadhaar, PAN, GSTIN, card, phone, email, UPI ID, vehicle, voter ID, passport and IP numbers in a text, checking check digits where they exist.
- `remove_audio_noise`: Lower background noise (fans, traffic, hum) in a recording with DeepFilterNet; returns MP3. The first five minutes are cleaned.
- `remove_image_background`: Cut the subject out of a picture (a product, a person, an animal) and return it as a PNG with a transparent background, with the IS-Net model.
- `render_pdf_page`: Draw one page of a PDF as a picture, for a preview.
- `rerank_documents`: Order documents by how well each answers a query, with the multilingual bge-reranker-v2-m3 cross-encoder (Indian languages and English). Returns scores from 0 to 1, best first.
- `rotate_pdf_pages`: Turn the pages of a PDF clockwise by a multiple of 90 degrees.
- `search_airports`: Search airports by name or city, worldwide (those with IATA codes) and every Indian airfield and heliport. Filter by country (ISO code) or Indian state.
- `search_bank_branches`: Find branches of one Indian bank by state, city or text in the branch name or address. Needs the four-letter bank code; use search_banks to find it.
- `search_banks`: Find Indian banks and their four-letter codes by name.
- `search_companies`: Search Indian listed companies by ticker, earlier ticker, name, sector, industry, ISIN or index name (for example 'Nifty 50'). Returns details with logo URLs. Only companies listed today.
- `search_hsn_codes`: Find Indian HSN (goods) or SAC (services) codes by words of their description, such as 'green tea' or 'construction'.
- `search_mutual_funds`: Search Indian mutual fund schemes by name words, fund house or category, filtered by direct/regular plan and growth/IDCW option, with their latest NAVs.
- `search_post_offices`: Find Indian post offices and their pincodes by the start of the office name, optionally within a state or district.
- `search_railway_stations`: Find Indian railway stations and their codes by name, state or railway zone.
- `search_thirukkural`: Search the Thirukkural in Tamil or English, or list a chapter (1-133) or a paal (1 virtue, 2 wealth, 3 love).
- `select_pdf_pages`: Make a new PDF from some pages of one, in the order named: to pick, reorder or split pages.
- `test_regex`: Run a regular expression (JavaScript or RE2/Go syntax) against a text: every match with its groups and character offsets, an optional replacement, and a token by token explanation of the pattern.
- `text_to_speech`: Speak text aloud in Hindi, Telugu, Malayalam or English with Piper voices; returns MP3 audio. Write the text in its own script. Some Hindi voices are for non-commercial use only.
- `traceroute_from_india`: Trace the network path from a server in India to a host, MTR style: every hop with its address, name, network (AS) and country, packet loss and round-trip times. Shows how Indian networks reach a site.
- `transcribe_audio`: Speech to text with Whisper: the text of a recording (MP3, WAV, Ogg, M4A, WebM or video), with timed segments; about a hundred languages, Indian ones included. task=translate writes it in English. The first five minutes are heard.
- `translate_text`: Translate text between English and 22 Indian languages (Hindi, Tamil, Telugu, Kannada, Malayalam, Bengali, Marathi, Gujarati, Punjabi, Odia, Assamese, Urdu and more) with AI4Bharat's IndicTrans2. Between two Indian languages it goes through English. Up to 2,000 characters.
- `transliterate_indian_text`: Rewrite text from one Indian script in another (Devanagari, Bengali, Gurmukhi, Gujarati, Odia, Tamil, Telugu, Kannada, Malayalam), or in Roman letters (ISO 15919, IAST, plain ASCII), or from ISO 15919 / IAST into a script. Spelling only, not translation.
- `transliterate_roman_typing`: Turn Indian-language words typed in Roman letters (vanakkam, namaste, kaise ho) into their own script, as phone keyboards do, with several guesses per word. Uses AI4Bharat's IndicXlit. Up to 60 words.
- `validate_identifier`: Check the format of an Indian GSTIN, PAN or IFSC. Format only: it does not confirm the identifier was issued.
- `where_is_satellite`: Where a tracked satellite such as the ISS is right now: the point on Earth below it, its altitude and speed, and whether it is in sunlight.
- `whois_lookup`: Who registered a domain, IP network or AS number, through RDAP (the registries' replacement for whois): for a domain the registrar, registration and expiry dates, status, nameservers and DNSSEC; for an IP address or AS number the network, its holding organisation, country and abuse contact. Works for .in and .co.in. Personal contacts are never returned.
