{"openapi":"3.1.0","info":{"title":"TDS Section Finder API","version":"1.0.0","summary":"Free, public TDS section lookup API for Indian Income Tax. No API key, no signup.","description":"Forward lookup (description / payment type → TDS section) and reverse lookup (section number → rate, threshold, deductor/deductee) against a bundled snapshot of the Indian Income Tax Act Chapter XVII-B. Treat this as a goodwill resource — please cache aggressively and avoid sustained bursts above 10 req/s. Source: https://incometaxindia.gov.in/charts%20%20tables/tds%20rates.htm (FY 2025-26, snapshot 2025-04-01).","contact":{"name":"Krake Labs India","url":"https://krakelabsindia.com"},"license":{"name":"Best-effort free service","url":"https://tds.krakelabsindia.com/developers"}},"servers":[{"url":"https://tds-section-finder.sgr-flutter.workers.dev","description":"Production"}],"tags":[{"name":"Lookup","description":"Forward & reverse TDS section lookup"},{"name":"Meta","description":"Dataset metadata"}],"paths":{"/api/lookup":{"get":{"tags":["Lookup"],"summary":"Forward or reverse TDS section lookup","description":"Provide `q` for a payment-description lookup, or `section` for a reverse lookup. Exactly one of `q` or `section` is required.","parameters":[{"name":"q","in":"query","required":false,"description":"Payment description, e.g. 'rent office' or 'freelance contractor'.","schema":{"type":"string","minLength":1,"maxLength":200},"example":"rent office"},{"name":"section","in":"query","required":false,"description":"TDS section number (full or base), e.g. '194I' or '194I(b)'.","schema":{"type":"string","minLength":1,"maxLength":20},"example":"194J"},{"name":"limit","in":"query","required":false,"description":"Max number of matches returned for `?q=` lookups (1-20, default 5).","schema":{"type":"integer","minimum":1,"maximum":20,"default":5},"example":5}],"responses":{"200":{"description":"Successful lookup","headers":{"Cache-Control":{"description":"Edge cache hint — dataset changes when CBDT publishes.","schema":{"type":"string","example":"public, max-age=3600"}},"Access-Control-Allow-Origin":{"description":"CORS — open to all origins.","schema":{"type":"string","example":"*"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ForwardLookupResponse"},{"$ref":"#/components/schemas/ReverseLookupResponse"}]}}}},"400":{"description":"Missing or invalid query parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limit exceeded (per-IP, ~30 req/min)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/meta":{"get":{"tags":["Meta"],"summary":"Dataset metadata","description":"Returns counts, FY label, and snapshot date for the bundled TDS dataset.","responses":{"200":{"description":"Dataset metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetMeta"}}}}}}}},"components":{"schemas":{"TdsMatch":{"type":"object","description":"A single TDS section match.","required":["section","paymentType","description","rate","rateDisplay","threshold","thresholdDisplay","deductor","deductee","rateNoPan","rateNoPanDisplay","why","source","fy"],"properties":{"section":{"type":"string","example":"194J"},"paymentType":{"type":"string","example":"Professional or technical fees"},"description":{"type":"string"},"rate":{"type":"number","example":10},"rateDisplay":{"type":"string","example":"10% (2% for technical services)"},"threshold":{"type":"number","example":50000},"thresholdDisplay":{"type":"string","example":"₹50,000 per FY per category"},"deductor":{"type":"string"},"deductee":{"type":"string"},"rateNoPan":{"type":"number","example":20},"rateNoPanDisplay":{"type":"string","example":"20%"},"why":{"type":"string"},"source":{"type":"string","example":"Section 194J, Income Tax Act"},"conditionalNote":{"type":"string"},"fy":{"type":"string","example":"FY 2025-26"},"confidence":{"type":"number","format":"float","minimum":0,"maximum":1,"example":0.82}}},"ForwardLookupResponse":{"type":"object","required":["query","matches"],"properties":{"query":{"type":"string","example":"rent office"},"matches":{"type":"array","items":{"$ref":"#/components/schemas/TdsMatch"}}}},"ReverseLookupResponse":{"type":"object","required":["query","results"],"properties":{"query":{"type":"string","example":"194J"},"results":{"type":"array","items":{"$ref":"#/components/schemas/TdsMatch"}}}},"DatasetMeta":{"type":"object","required":["totalSections","fy","asOf","sourceUrl"],"properties":{"totalSections":{"type":"integer","example":42},"fy":{"type":"string","example":"FY 2025-26"},"asOf":{"type":"string","example":"2025-04-01"},"sourceUrl":{"type":"string","format":"uri","example":"https://incometaxindia.gov.in/charts%20%20tables/tds%20rates.htm"}}},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"string","example":"Missing required query param 'q'"}}}}}}