India API

API keys

India API keys are free. Most endpoints keep working without one; a key gives you your own, larger allowance, and the model endpoints will need one.

What a key gives you

Without a key With a free key
Counted per IP address Key, so apps on a shared address stop sharing one allowance
Per minute 600 units 3000 units
Model endpoints Until 15 December 2026 only 500 requests a day in all, one at a time per key

A unit is what a request costs: a lookup is 1, real CPU work (pictures, astronomy, live network checks) 10, a file worked on 15, a traceroute 20, a model run 30. Every answer says where you stand in the RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset headers, keyed or not. A logo already in the cache costs nothing.

Get a key

  1. Sign up with your email address. There is no password: we mail you a six-digit code, which works once for 10 minutes. Logging in later works the same way. (Login with Google or GitHub is planned.)
  2. On your account page, make a key. It is shown once: copy it then. An account holds up to three keys; rotate or revoke them there. A revoked key stops working within a minute.

Send a key

In a header, never in the address (addresses end up in logs and browser history):

curl -H "Authorization: Bearer india_live_..." https://api.dharun.dev/v1/pincode/637001
curl -H "X-API-Key: india_live_..." https://api.dharun.dev/v1/pincode/637001

Keys start with india_live_, so secret scanners can find one that leaked; a mistyped key is refused at once with 401 invalid_key. MCP clients send the same header from their configuration.

A web page cannot keep a key secret, and an <img> tag cannot send a header: use logos and lookups in web pages without a key. Cached logos are free.

The model endpoints

These run a neural network for each request, so they will need a key:

  • /v1/text/moderate
  • /v1/transliterate/suggest
  • /v1/ocr
  • /v1/image/remove-background
  • /v1/stt
  • /v1/tts
  • /v1/audio/denoise
  • /v1/embed
  • /v1/rerank
  • /v1/translate
  • /v1/read
  • /v1/media/convert
  • /v1/media/trim
  • /v1/media/waveform
  • /v1/media/thumbnail
  • /v1/hooks
  • /v1/db
  • /v1/rag
  • /v1/rag/{id}/documents
  • /v1/rag/{id}/query
  • /v1/kv
  • /v1/doc/markdown
  • /v1/doc/tables
  • /v1/doc/invoice
  • /v1/doc/einvoice-qr
  • /v1/doc/mask-aadhaar
  • /v1/doc/receipt
  • /v1/doc/cheque
  • /v1/doc/statement
  • /v1/doc/redact
  • /v1/llm/summarise
  • /v1/llm/classify
  • /v1/llm/extract
  • /v1/llm/rewrite
  • /v1/chat/completions
  • /v1/text/redact with names=true (plain redaction stays keyless)

From 15 December 2026 (midnight India time) a keyless call to them answers 401 with the error code key_required. Until then they answer as before, with an X-Key-Notice header saying so. With a key, X-Quota-Limit and X-Quota-Remaining show the day's quota; it resets at midnight India time. Over it, the answer is 429 quota_exceeded.

The free tool pages on this site (such as image to text) use a short-lived token of their own, which allows 10 model requests a day per address.

What we keep

An account holds your email address, the hashes of your keys (never the keys), when they were made, and how many requests each key made per day and API group. The log line of a request to a model endpoint holds the key's id, so abuse can be traced and stopped; other requests log nothing about keys. Deleting your account on the account page removes all of it at once. See privacy.