{"openapi":"3.1.0","info":{"title":"GST API","version":"1.0.0","description":"Validate and decode Indian GSTINs (the 15-character Goods & Services Tax Identification Number) instantly and entirely offline. The validate endpoint checks the structure and recomputes the official GSTIN check digit — the base-36 weighted algorithm the GSTN itself uses — and confirms the embedded state code is real, returning a clear valid/invalid verdict with the specific reasons a number fails. The decode endpoint breaks a GSTIN into its parts: the GST state/UT code and its name, the embedded 10-character PAN, the PAN holder type (company, individual/proprietor, firm/LLP, HUF, trust, government and more, read from the PAN's 4th letter), the entity registration number, the default 'Z' slot and the check digit. A states endpoint returns the full GST state-code reference for building dropdowns and lookups. Everything is pure computation — no network call, no key, no cache — so it is fast and private, ideal for checkout and onboarding forms, invoicing and e-invoice/e-way-bill pipelines, vendor master data cleansing and bulk validation. A structural GSTIN validator and decoder — distinct from EU VAT-number validation (vat), IBAN bank-account validation (iban) and card-number checks (creditcard). Note: this verifies the number's structure and check digit, not whether it is actively registered in the GSTN portal. No upstream key, no cache.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/gst-api","description":"oanor gateway"}],"tags":[{"name":"GST"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/decode":{"get":{"operationId":"get_v1_decode","tags":["GST"],"summary":"Decode a GSTIN into its parts","description":"","parameters":[{"name":"gstin","in":"query","required":true,"description":"The 15-char GSTIN","schema":{"type":"string"},"example":"27AAPFU0939F1ZV"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"gstin":"27AAPFU0939F1ZV","parts":{"pan":"AAPFU0939F","state_code":"27","state_name":"Maharashtra","check_digit":"V","default_char":"Z","entity_number":"1","pan_holder_type":"Firm / LLP","expected_check_digit":"V","pan_holder_type_code":"F"},"valid":true,"format_valid":true,"checksum_valid":true},"meta":{"timestamp":"2026-06-01T23:40:37.834Z","request_id":"f8bf039f-e6a9-4042-b771-601440a1e704"},"status":"ok","message":"GSTIN decoded","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/states":{"get":{"operationId":"get_v1_states","tags":["GST"],"summary":"GST state-code reference","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":40,"states":[{"code":"10","name":"Bihar"},{"code":"11","name":"Sikkim"},{"code":"12","name":"Arunachal Pradesh"},{"code":"13","name":"Nagaland"},{"code":"14","name":"Manipur"},{"code":"15","name":"Mizoram"},{"code":"16","name":"Tripura"},{"code":"17","name":"Meghalaya"},{"code":"18","name":"Assam"},{"code":"19","name":"West Bengal"},{"code":"20","name":"Jharkhand"},{"code":"21","name":"Odisha"},{"code":"22","name":"Chhattisgarh"},{"code":"23","name":"Madhya Pradesh"},{"code":"24","name":"Gujarat"},{"code":"25","name":"Daman and Diu"},{"code":"26","name":"Dadra and Nagar Haveli"},{"code":"27","name":"Maharashtra"},{"code":"28","name":"Andhra Pradesh (Old)"},{"code":"29","name":"Karnataka"},{"code":"30","name":"Goa"},{"code":"31","name":"Lakshadweep"},{"code":"32","name":"Kerala"},{"code":"33","name":"Tamil Nadu"},{"code":"34","name":"Puducherry"},{"code":"35","name":"Andaman and Nicobar Islands"},{"code":"36","name":"Telangana"},{"code":"37","name":"Andhra Pradesh (New)"},{"code":"38","name":"Ladakh"},{"code":"97","name":"Other Territory"},{"code":"99","name":"Centre Jurisdiction"},{"code":"01","name":"Jammu and Kashmir"},{"code":"02","name":"Himachal Pradesh"},{"code":"03","name":"Punjab"},{"code":"04","name":"Chandigarh"},{"code":"05","name":"Uttarakhand"},{"code":"06","name":"Haryana"},{"code":"07","name":"Delhi"},{"code":"08","name":"Rajasthan"},{"code":"09","name":"Uttar Pradesh"}]},"meta":{"timestamp":"2026-06-01T23:40:37.906Z","request_id":"da6e5519-dbf6-4f1e-91cc-8c069922e089"},"status":"ok","message":"GST state codes","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/validate":{"get":{"operationId":"get_v1_validate","tags":["GST"],"summary":"Validate a GSTIN","description":"","parameters":[{"name":"gstin","in":"query","required":true,"description":"The 15-char GSTIN","schema":{"type":"string"},"example":"27AAPFU0939F1ZV"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"gstin":"27AAPFU0939F1ZV","valid":true,"reasons":[],"format_valid":true,"checksum_valid":true,"state_code_known":true},"meta":{"timestamp":"2026-06-01T23:40:37.967Z","request_id":"2071a744-f941-4486-bc86-d651c929265d"},"status":"ok","message":"GSTIN validated","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"GST API","note":"Structural validation only — this does not query the GSTN registry, so it cannot confirm a GSTIN is actively registered to a business.","standard":"Indian GSTIN (15-char Goods & Services Tax Identification Number)","endpoints":{"/v1/decode":"Decompose a GSTIN into state, PAN, holder type, entity number and check digit.","/v1/states":"List all GST state/UT codes.","/v1/validate":"Validate a GSTIN (format + official check digit + known state)."},"structure":"2-digit state code + 10-char PAN + 1-char entity number + 'Z' + 1-char checksum","pan_holder_types":{"A":"Association of Persons (AOP)","B":"Body of Individuals (BOI)","C":"Company","F":"Firm / LLP","G":"Government","H":"Hindu Undivided Family (HUF)","J":"Artificial Juridical Person","L":"Local Authority","P":"Individual / Proprietor","T":"Trust"}},"meta":{"timestamp":"2026-06-01T23:40:38.052Z","request_id":"bfe3cc5a-d153-4979-b34e-d221f4baae8f"},"status":"ok","message":"Meta retrieved","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":2095,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":618,"monthly_call_quota":40300,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2035,"monthly_call_quota":213000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5270,"monthly_call_quota":810000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/gst-api"}