GSTIN API · Schema

BulkResultRow

One submitted row and what became of it.

CompanyGSTIndiaTaxationAPI

Properties

Name Type Description
row integer Position in the submitted list, 1-based.
input string What was submitted for this row, verbatim.
gstin stringnull The normalised GSTIN, or null if the entry was not a usable one.
outcome object
message stringnull Why this row is not `ok`. Null when it is.
data object The verified profile. Present only when `outcome` is `ok`.
View JSON Schema on GitHub

JSON Schema

gstinapi-bulk-result-row-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/gstinapi/main/json-schema/gstinapi-bulk-result-row-schema.json",
  "title": "BulkResultRow",
  "description": "One submitted row and what became of it.",
  "x-generated": "2026-10-18",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/gstinapi-openapi.yml#/components/schemas/BulkResultRow",
  "type": "object",
  "properties": {
    "row": {
      "type": "integer",
      "description": "Position in the submitted list, 1-based."
    },
    "input": {
      "type": "string",
      "description": "What was submitted for this row, verbatim."
    },
    "gstin": {
      "type": [
        "string",
        "null"
      ],
      "description": "The normalised GSTIN, or null if the entry was not a usable one."
    },
    "outcome": {
      "$ref": "#/$defs/Outcome"
    },
    "message": {
      "type": [
        "string",
        "null"
      ],
      "description": "Why this row is not `ok`. Null when it is."
    },
    "data": {
      "oneOf": [
        {
          "$ref": "#/$defs/TaxpayerProfile"
        },
        {
          "type": "null"
        }
      ],
      "description": "The verified profile. Present only when `outcome` is `ok`."
    }
  },
  "$defs": {
    "Outcome": {
      "type": "string",
      "enum": [
        "ok",
        "not_found",
        "invalid_format",
        "upstream_error",
        "skipped",
        "pending"
      ],
      "description": "What happened to a row, and whether it cost anything:\n\n- `ok` — a live registration was found. **One credit.**\n- `not_found` — well-formed, but no registration exists. Free.\n- `invalid_format` — not a valid GSTIN; rejected on its checksum without contacting the government source. Free.\n- `upstream_error` — the government source could not answer. Free; resubmit the row.\n- `skipped` — the job was cancelled or ran out of credits before reaching this row. Free.\n- `pending` — not verified yet. Only seen while a job is still running."
    },
    "TaxpayerProfile": {
      "type": "object",
      "description": "A verified registration, normalised. This is the shape bulk results carry; the single endpoint returns the raw envelope instead.",
      "properties": {
        "success": {
          "type": "boolean"
        },
        "gstin": {
          "type": "string"
        },
        "legal_name": {
          "type": [
            "string",
            "null"
          ]
        },
        "trade_name": {
          "type": [
            "string",
            "null"
          ],
          "description": "Falls back to the legal name when the business reports no separate trade name."
        },
        "status": {
          "type": "string",
          "description": "Active, Cancelled, Suspended, Provisional, …"
        },
        "taxpayer_type": {
          "type": [
            "string",
            "null"
          ]
        },
        "constitution": {
          "type": [
            "string",
            "null"
          ]
        },
        "registration_date": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "cancellation_date": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "last_updated_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "active_years": {
          "type": [
            "integer",
            "null"
          ]
        },
        "nature_of_business": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "jurisdiction": {
          "type": "object",
          "properties": {
            "centre": {
              "type": [
                "string",
                "null"
              ]
            },
            "centre_code": {
              "type": [
                "string",
                "null"
              ]
            },
            "state": {
              "type": [
                "string",
                "null"
              ]
            },
            "state_code": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        },
        "principal_address": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "formatted": {
              "type": "string"
            },
            "building": {
              "type": [
                "string",
                "null"
              ]
            },
            "street": {
              "type": [
                "string",
                "null"
              ]
            },
            "locality": {
              "type": [
                "string",
                "null"
              ]
            },
            "district": {
              "type": [
                "string",
                "null"
              ]
            },
            "state": {
              "type": [
                "string",
                "null"
              ]
            },
            "pincode": {
              "type": [
                "string",
                "null"
              ]
            },
            "nature": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        },
        "additional_address_count": {
          "type": "integer"
        },
        "e_invoice": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "generating": {
              "type": "boolean"
            },
            "turnover_slab": {
              "type": [
                "string",
                "null"
              ]
            },
            "eligibility": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        },
        "filing_counts": {
          "type": "object",
          "description": "Count of filings held per return type.",
          "additionalProperties": {
            "type": "integer"
          }
        },
        "derived": {
          "type": "object",
          "description": "Read from the GSTIN itself, not reported by the register.",
          "properties": {
            "state_code": {
              "type": [
                "string",
                "null"
              ]
            },
            "state_name": {
              "type": [
                "string",
                "null"
              ]
            },
            "pan": {
              "type": [
                "string",
                "null"
              ]
            },
            "pan_holder_type": {
              "type": [
                "string",
                "null"
              ]
            },
            "entity_code": {
              "type": [
                "string",
                "null"
              ]
            },
            "registration_number_in_state": {
              "type": [
                "integer",
                "null"
              ]
            }
          }
        },
        "source": {
          "type": "object",
          "properties": {
            "fetched_at": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time"
            },
            "served_from_cache": {
              "type": "boolean",
              "description": "The register itself refreshes a few times a day, so recent lookups are served from cache. Cached rows are charged the same as fresh ones."
            }
          }
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/gstinapi-bulk-result-row"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.