{
  "openapi": "3.1.0",
  "info": {
    "title": "APIserver.in API",
    "version": "2026-10-01",
    "summary": "Verify any Indian business in one API call.",
    "description": "One key, one schema, one wallet for GST, PAN, MCA company, directors/DIN and CIN↔PAN. Every response uses the same envelope; `meta.charged` tells you whether a call was billed. Failed calls are never billed.",
    "contact": {
      "name": "Crewo AI Technologies Pvt. Ltd.",
      "email": "support@apiserver.in",
      "url": "https://apiserver.in"
    }
  },
  "servers": [
    {
      "url": "https://api.apiserver.in",
      "description": "Production"
    },
    {
      "url": "/api",
      "description": "Prototype sandbox on this site"
    }
  ],
  "tags": [
    {
      "name": "Bundle",
      "description": "Business360"
    },
    {
      "name": "GST"
    },
    {
      "name": "PAN"
    },
    {
      "name": "MCA"
    }
  ],
  "paths": {
    "/v1/business360": {
      "post": {
        "operationId": "business360",
        "summary": "Business360",
        "description": "Send any one identifier. Business360 resolves the rest, runs every module in parallel with source fallback, and returns one normalized profile with risk flags. Pick modules with `include`, pay only for the ones that succeed.\n\n**Price:** ₹10.00 per successful call, GST included. Failed calls are ₹0.",
        "tags": [
          "Bundle"
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Safely retry: the same key + body within 24h returns the original response and is never billed twice.",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "gstin": {
                    "type": "string",
                    "pattern": "^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z][1-9A-Z]Z[0-9A-Z]$",
                    "description": "15-character GSTIN. Validated locally (state code, embedded PAN, mod-36 checksum) before any source is called.",
                    "examples": [
                      "29AAJCK4821M1Z1"
                    ]
                  },
                  "cin": {
                    "type": "string",
                    "pattern": "^[LU][0-9]{5}[A-Z]{2}[0-9]{4}[A-Z]{3}[0-9]{6}$",
                    "description": "21-character Corporate Identification Number.",
                    "examples": [
                      "U17120KA2016PTC094312"
                    ]
                  },
                  "pan": {
                    "type": "string",
                    "pattern": "^[A-Z]{5}[0-9]{4}[A-Z]$",
                    "description": "10-character PAN. The 4th character encodes the holder type.",
                    "examples": [
                      "AAJCK4821M"
                    ]
                  },
                  "include": {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "gst",
                        "gst_returns",
                        "pan",
                        "company",
                        "directors",
                        "cin_pan"
                      ]
                    },
                    "description": "Modules to run. Omit for the full bundle. Each module is billed at its single-API price only if it succeeds; the total never exceeds the bundle price.",
                    "examples": [
                      [
                        "gst",
                        "pan",
                        "company"
                      ]
                    ]
                  }
                },
                "additionalProperties": false,
                "description": "Send exactly one identifier (`gstin`, `cin` or `pan`) and optionally `include`."
              },
              "example": {
                "gstin": "29AAJCK4821M1Z1",
                "include": [
                  "gst",
                  "gst_returns",
                  "pan",
                  "company",
                  "directors",
                  "cin_pan"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "request_id": {
                      "type": "string",
                      "description": "Unique request ID",
                      "examples": [
                        "as_req_01J9X2K7R8M4V6T2Q9W3E5Y1ZB"
                      ]
                    },
                    "api": {
                      "type": "string",
                      "const": "business360"
                    },
                    "version": {
                      "type": "string",
                      "examples": [
                        "2026-10-01"
                      ]
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "summary": {
                          "type": "object",
                          "properties": {
                            "legal_name": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "trade_name": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "entity_type": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "enum": [
                                    "company",
                                    "llp",
                                    "proprietorship"
                                  ]
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "pan": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "gstin": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "cin": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "llpin": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "state": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "risk": {
                              "type": "object",
                              "properties": {
                                "level": {
                                  "type": "string",
                                  "enum": [
                                    "low",
                                    "medium",
                                    "high"
                                  ]
                                },
                                "flags": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "code": {
                                        "type": "string"
                                      },
                                      "severity": {
                                        "type": "string",
                                        "enum": [
                                          "low",
                                          "medium",
                                          "high"
                                        ]
                                      },
                                      "message": {
                                        "type": "string"
                                      },
                                      "module": {
                                        "type": "string",
                                        "enum": [
                                          "gst",
                                          "gst_returns",
                                          "pan",
                                          "company",
                                          "directors",
                                          "cin_pan"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "code",
                                      "severity",
                                      "message",
                                      "module"
                                    ],
                                    "additionalProperties": false
                                  }
                                }
                              },
                              "required": [
                                "level",
                                "flags"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "legal_name",
                            "trade_name",
                            "entity_type",
                            "pan",
                            "gstin",
                            "cin",
                            "llpin",
                            "state",
                            "risk"
                          ],
                          "additionalProperties": false
                        },
                        "gst": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "enum": [
                                "ok",
                                "failed",
                                "not_found",
                                "skipped"
                              ]
                            },
                            "data": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "gstin": {
                                      "type": "string",
                                      "description": "The GSTIN, normalised"
                                    },
                                    "legal_name": {
                                      "type": "string",
                                      "description": "Legal name of business as registered"
                                    },
                                    "trade_name": {
                                      "type": "string",
                                      "description": "Trade name, if different from legal name"
                                    },
                                    "status": {
                                      "type": "string",
                                      "enum": [
                                        "Active",
                                        "Cancelled",
                                        "Suspended"
                                      ],
                                      "description": "Current registration status"
                                    },
                                    "registration_date": {
                                      "type": "string",
                                      "description": "Effective date of registration (YYYY-MM-DD)"
                                    },
                                    "cancellation_date": {
                                      "description": "Date of cancellation, if cancelled",
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "taxpayer_type": {
                                      "type": "string",
                                      "enum": [
                                        "Regular",
                                        "Composition"
                                      ],
                                      "description": "Taxpayer type"
                                    },
                                    "constitution": {
                                      "type": "string",
                                      "description": "Constitution of business, e.g. Private Limited Company"
                                    },
                                    "state": {
                                      "type": "string",
                                      "description": "State of registration"
                                    },
                                    "state_code": {
                                      "type": "string",
                                      "description": "Two-digit GST state code"
                                    },
                                    "pan": {
                                      "type": "string",
                                      "description": "PAN embedded in the GSTIN"
                                    },
                                    "principal_place": {
                                      "type": "object",
                                      "properties": {
                                        "line1": {
                                          "type": "string"
                                        },
                                        "locality": {
                                          "type": "string"
                                        },
                                        "city": {
                                          "type": "string"
                                        },
                                        "district": {
                                          "type": "string"
                                        },
                                        "state": {
                                          "type": "string"
                                        },
                                        "pincode": {
                                          "type": "string",
                                          "description": "6-digit PIN code"
                                        }
                                      },
                                      "required": [
                                        "line1",
                                        "locality",
                                        "city",
                                        "district",
                                        "state",
                                        "pincode"
                                      ],
                                      "additionalProperties": false,
                                      "description": "Principal place of business"
                                    },
                                    "nature_of_business": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": "Declared nature of business activities"
                                    },
                                    "einvoice_enabled": {
                                      "type": "boolean",
                                      "description": "Whether e-invoicing applies"
                                    }
                                  },
                                  "required": [
                                    "gstin",
                                    "legal_name",
                                    "trade_name",
                                    "status",
                                    "registration_date",
                                    "cancellation_date",
                                    "taxpayer_type",
                                    "constitution",
                                    "state",
                                    "state_code",
                                    "pan",
                                    "principal_place",
                                    "nature_of_business",
                                    "einvoice_enabled"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "error": {
                              "type": "object",
                              "properties": {
                                "code": {
                                  "type": "string"
                                },
                                "message": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "code",
                                "message"
                              ],
                              "additionalProperties": false
                            },
                            "reason": {
                              "description": "Why a module was skipped",
                              "type": "string"
                            },
                            "charged": {
                              "type": "boolean"
                            },
                            "amount_inr": {
                              "type": "number"
                            },
                            "attempts": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            "latency_ms": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "status",
                            "data",
                            "charged",
                            "amount_inr",
                            "attempts",
                            "latency_ms"
                          ],
                          "additionalProperties": false
                        },
                        "gst_returns": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "enum": [
                                "ok",
                                "failed",
                                "not_found",
                                "skipped"
                              ]
                            },
                            "data": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "gstin": {
                                      "type": "string"
                                    },
                                    "filing_frequency": {
                                      "type": "string",
                                      "enum": [
                                        "monthly",
                                        "quarterly"
                                      ],
                                      "description": "Return filing frequency"
                                    },
                                    "periods": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "period": {
                                            "type": "string",
                                            "description": "Return period, YYYY-MM"
                                          },
                                          "gstr1": {
                                            "type": "object",
                                            "properties": {
                                              "status": {
                                                "type": "string",
                                                "enum": [
                                                  "filed",
                                                  "late",
                                                  "not_filed"
                                                ]
                                              },
                                              "filed_on": {
                                                "type": [
                                                  "string",
                                                  "null"
                                                ]
                                              },
                                              "due_date": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "status",
                                              "filed_on",
                                              "due_date"
                                            ],
                                            "additionalProperties": false
                                          },
                                          "gstr3b": {
                                            "type": "object",
                                            "properties": {
                                              "status": {
                                                "type": "string",
                                                "enum": [
                                                  "filed",
                                                  "late",
                                                  "not_filed"
                                                ]
                                              },
                                              "filed_on": {
                                                "type": [
                                                  "string",
                                                  "null"
                                                ]
                                              },
                                              "due_date": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "status",
                                              "filed_on",
                                              "due_date"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "required": [
                                          "period",
                                          "gstr1",
                                          "gstr3b"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "description": "Most recent first"
                                    },
                                    "summary": {
                                      "type": "object",
                                      "properties": {
                                        "periods": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "filed_on_time": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "filed_late": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "not_filed": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "last_filed_period": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "periods",
                                        "filed_on_time",
                                        "filed_late",
                                        "not_filed",
                                        "last_filed_period"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "gstin",
                                    "filing_frequency",
                                    "periods",
                                    "summary"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "error": {
                              "type": "object",
                              "properties": {
                                "code": {
                                  "type": "string"
                                },
                                "message": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "code",
                                "message"
                              ],
                              "additionalProperties": false
                            },
                            "reason": {
                              "description": "Why a module was skipped",
                              "type": "string"
                            },
                            "charged": {
                              "type": "boolean"
                            },
                            "amount_inr": {
                              "type": "number"
                            },
                            "attempts": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            "latency_ms": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "status",
                            "data",
                            "charged",
                            "amount_inr",
                            "attempts",
                            "latency_ms"
                          ],
                          "additionalProperties": false
                        },
                        "pan": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "enum": [
                                "ok",
                                "failed",
                                "not_found",
                                "skipped"
                              ]
                            },
                            "data": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "pan": {
                                      "type": "string"
                                    },
                                    "valid": {
                                      "type": "boolean",
                                      "description": "Whether the PAN exists and is active"
                                    },
                                    "status": {
                                      "type": "string",
                                      "enum": [
                                        "Valid",
                                        "Invalid"
                                      ],
                                      "description": "Status from source"
                                    },
                                    "category": {
                                      "type": "string",
                                      "description": "Holder category decoded from the 4th character"
                                    },
                                    "registered_name": {
                                      "type": "string",
                                      "description": "Name on PAN as returned by the source (partially masked for individuals)"
                                    },
                                    "name_match": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "input": {
                                              "type": "string"
                                            },
                                            "score": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1,
                                              "description": "0–1 similarity score"
                                            },
                                            "result": {
                                              "type": "string",
                                              "enum": [
                                                "match",
                                                "partial",
                                                "no_match"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "input",
                                            "score",
                                            "result"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ],
                                      "description": "Present when you send `name`"
                                    }
                                  },
                                  "required": [
                                    "pan",
                                    "valid",
                                    "status",
                                    "category",
                                    "registered_name",
                                    "name_match"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "error": {
                              "type": "object",
                              "properties": {
                                "code": {
                                  "type": "string"
                                },
                                "message": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "code",
                                "message"
                              ],
                              "additionalProperties": false
                            },
                            "reason": {
                              "description": "Why a module was skipped",
                              "type": "string"
                            },
                            "charged": {
                              "type": "boolean"
                            },
                            "amount_inr": {
                              "type": "number"
                            },
                            "attempts": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            "latency_ms": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "status",
                            "data",
                            "charged",
                            "amount_inr",
                            "attempts",
                            "latency_ms"
                          ],
                          "additionalProperties": false
                        },
                        "company": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "enum": [
                                "ok",
                                "failed",
                                "not_found",
                                "skipped"
                              ]
                            },
                            "data": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "entity_type": {
                                      "type": "string",
                                      "enum": [
                                        "company",
                                        "llp"
                                      ]
                                    },
                                    "cin": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "llpin": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "name": {
                                      "type": "string"
                                    },
                                    "status": {
                                      "type": "string",
                                      "enum": [
                                        "Active",
                                        "Strike Off",
                                        "Under Liquidation"
                                      ]
                                    },
                                    "class": {
                                      "type": "string",
                                      "description": "Private / Public / LLP"
                                    },
                                    "category": {
                                      "type": "string"
                                    },
                                    "sub_category": {
                                      "type": "string"
                                    },
                                    "date_of_incorporation": {
                                      "type": "string"
                                    },
                                    "roc": {
                                      "type": "string",
                                      "description": "Registrar of Companies"
                                    },
                                    "listing_status": {
                                      "type": "string",
                                      "enum": [
                                        "Listed",
                                        "Unlisted"
                                      ]
                                    },
                                    "authorised_capital_inr": {
                                      "type": "number",
                                      "description": "Authorised capital in INR (0 for LLPs)"
                                    },
                                    "paid_up_capital_inr": {
                                      "type": "number",
                                      "description": "Paid-up capital, or total contribution for an LLP"
                                    },
                                    "industry": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "nic_code": {
                                              "type": "string"
                                            },
                                            "description": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "nic_code",
                                            "description"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "last_agm_date": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "last_balance_sheet_date": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "registered_address": {
                                      "type": "object",
                                      "properties": {
                                        "line1": {
                                          "type": "string"
                                        },
                                        "locality": {
                                          "type": "string"
                                        },
                                        "city": {
                                          "type": "string"
                                        },
                                        "district": {
                                          "type": "string"
                                        },
                                        "state": {
                                          "type": "string"
                                        },
                                        "pincode": {
                                          "type": "string",
                                          "description": "6-digit PIN code"
                                        }
                                      },
                                      "required": [
                                        "line1",
                                        "locality",
                                        "city",
                                        "district",
                                        "state",
                                        "pincode"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "entity_type",
                                    "cin",
                                    "llpin",
                                    "name",
                                    "status",
                                    "class",
                                    "category",
                                    "sub_category",
                                    "date_of_incorporation",
                                    "roc",
                                    "listing_status",
                                    "authorised_capital_inr",
                                    "paid_up_capital_inr",
                                    "industry",
                                    "last_agm_date",
                                    "last_balance_sheet_date",
                                    "registered_address"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "error": {
                              "type": "object",
                              "properties": {
                                "code": {
                                  "type": "string"
                                },
                                "message": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "code",
                                "message"
                              ],
                              "additionalProperties": false
                            },
                            "reason": {
                              "description": "Why a module was skipped",
                              "type": "string"
                            },
                            "charged": {
                              "type": "boolean"
                            },
                            "amount_inr": {
                              "type": "number"
                            },
                            "attempts": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            "latency_ms": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "status",
                            "data",
                            "charged",
                            "amount_inr",
                            "attempts",
                            "latency_ms"
                          ],
                          "additionalProperties": false
                        },
                        "directors": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "enum": [
                                "ok",
                                "failed",
                                "not_found",
                                "skipped"
                              ]
                            },
                            "data": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "cin": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "llpin": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "company_name": {
                                      "type": "string"
                                    },
                                    "count": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    },
                                    "current": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991,
                                      "description": "Directors currently on the board"
                                    },
                                    "directors": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "din": {
                                            "type": "string"
                                          },
                                          "name": {
                                            "type": "string"
                                          },
                                          "designation": {
                                            "type": "string"
                                          },
                                          "appointed_on": {
                                            "type": "string"
                                          },
                                          "ceased_on": {
                                            "type": [
                                              "string",
                                              "null"
                                            ]
                                          },
                                          "din_status": {
                                            "type": "string",
                                            "enum": [
                                              "Approved",
                                              "Disqualified"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "din",
                                          "name",
                                          "designation",
                                          "appointed_on",
                                          "ceased_on",
                                          "din_status"
                                        ],
                                        "additionalProperties": false
                                      }
                                    }
                                  },
                                  "required": [
                                    "cin",
                                    "llpin",
                                    "company_name",
                                    "count",
                                    "current",
                                    "directors"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "error": {
                              "type": "object",
                              "properties": {
                                "code": {
                                  "type": "string"
                                },
                                "message": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "code",
                                "message"
                              ],
                              "additionalProperties": false
                            },
                            "reason": {
                              "description": "Why a module was skipped",
                              "type": "string"
                            },
                            "charged": {
                              "type": "boolean"
                            },
                            "amount_inr": {
                              "type": "number"
                            },
                            "attempts": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            "latency_ms": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "status",
                            "data",
                            "charged",
                            "amount_inr",
                            "attempts",
                            "latency_ms"
                          ],
                          "additionalProperties": false
                        },
                        "cin_pan": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "enum": [
                                "ok",
                                "failed",
                                "not_found",
                                "skipped"
                              ]
                            },
                            "data": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "cin": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "llpin": {
                                      "description": "Set instead of `cin` when the PAN belongs to an LLP",
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "pan": {
                                      "type": "string"
                                    },
                                    "company_name": {
                                      "type": "string"
                                    },
                                    "direction": {
                                      "type": "string",
                                      "enum": [
                                        "cin_to_pan",
                                        "pan_to_cin"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "cin",
                                    "llpin",
                                    "pan",
                                    "company_name",
                                    "direction"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "error": {
                              "type": "object",
                              "properties": {
                                "code": {
                                  "type": "string"
                                },
                                "message": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "code",
                                "message"
                              ],
                              "additionalProperties": false
                            },
                            "reason": {
                              "description": "Why a module was skipped",
                              "type": "string"
                            },
                            "charged": {
                              "type": "boolean"
                            },
                            "amount_inr": {
                              "type": "number"
                            },
                            "attempts": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            "latency_ms": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "status",
                            "data",
                            "charged",
                            "amount_inr",
                            "attempts",
                            "latency_ms"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "summary"
                      ],
                      "additionalProperties": false
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "charged": {
                          "type": "boolean",
                          "description": "Whether this call was billed. Always false for failures."
                        },
                        "amount_inr": {
                          "type": "number",
                          "description": "Amount billed, GST-inclusive"
                        },
                        "latency_ms": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "source_status": {
                          "type": "string",
                          "enum": [
                            "live",
                            "degraded"
                          ],
                          "description": "`degraded` when a fallback source answered"
                        },
                        "attempts": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991,
                          "description": "Sources tried before an answer (billed once)"
                        },
                        "data_as_of": {
                          "type": "string",
                          "description": "Freshness of the source data (IST)"
                        },
                        "mode": {
                          "type": "string",
                          "enum": [
                            "live",
                            "test"
                          ]
                        },
                        "live_price_inr": {
                          "description": "Test mode only: what this call costs in live mode",
                          "type": "number"
                        },
                        "modules_requested": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "modules_succeeded": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "billing": {
                          "description": "Business360 only: sum of succeeded modules, the bundle cap, and what the cap saved",
                          "type": "object",
                          "properties": {
                            "sum_inr": {
                              "type": "number"
                            },
                            "cap_inr": {
                              "type": "number"
                            },
                            "saved_inr": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "sum_inr",
                            "cap_inr",
                            "saved_inr"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "charged",
                        "amount_inr",
                        "latency_ms",
                        "source_status",
                        "attempts",
                        "data_as_of",
                        "mode"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "success",
                    "request_id",
                    "api",
                    "version",
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "VALIDATION_FAILED — The request body failed validation. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "AUTH_INVALID_KEY — Missing or invalid API key. Send `Authorization: Bearer as_test_…`. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "WALLET_INSUFFICIENT_BALANCE — Wallet balance is lower than the price of this call. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "AUTH_SCOPE_DENIED — This key is not allowed to call this endpoint. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "RECORD_NOT_FOUND — No record found for this identifier. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "RATE_LIMITED — Too many requests. Slow down and retry after the `Retry-After` interval. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "INTERNAL_ERROR — Something went wrong on our side. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "PROVIDER_UNAVAILABLE — Every source for this check is unavailable right now. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "PROVIDER_TIMEOUT — The source did not answer in time. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-price-inr": 10,
        "x-price-includes-gst": true
      }
    },
    "/v1/gst/verify": {
      "post": {
        "operationId": "gst_verify",
        "summary": "GST Verify",
        "description": "Validates the GSTIN locally (format, state code, embedded PAN, checksum) before touching a source, then returns the registered legal name, trade name, status, registration date, taxpayer type and principal address.\n\n**Price:** ₹0.75 per successful call, GST included. Failed calls are ₹0.",
        "tags": [
          "GST"
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Safely retry: the same key + body within 24h returns the original response and is never billed twice.",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "gstin": {
                    "type": "string",
                    "pattern": "^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z][1-9A-Z]Z[0-9A-Z]$",
                    "description": "15-character GSTIN. Validated locally (state code, embedded PAN, mod-36 checksum) before any source is called.",
                    "examples": [
                      "29AAJCK4821M1Z1"
                    ]
                  }
                },
                "required": [
                  "gstin"
                ],
                "additionalProperties": false
              },
              "example": {
                "gstin": "29AAJCK4821M1Z1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "request_id": {
                      "type": "string",
                      "description": "Unique request ID",
                      "examples": [
                        "as_req_01J9X2K7R8M4V6T2Q9W3E5Y1ZB"
                      ]
                    },
                    "api": {
                      "type": "string",
                      "const": "gst.verify"
                    },
                    "version": {
                      "type": "string",
                      "examples": [
                        "2026-10-01"
                      ]
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "gstin": {
                          "type": "string",
                          "description": "The GSTIN, normalised"
                        },
                        "legal_name": {
                          "type": "string",
                          "description": "Legal name of business as registered"
                        },
                        "trade_name": {
                          "type": "string",
                          "description": "Trade name, if different from legal name"
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "Active",
                            "Cancelled",
                            "Suspended"
                          ],
                          "description": "Current registration status"
                        },
                        "registration_date": {
                          "type": "string",
                          "description": "Effective date of registration (YYYY-MM-DD)"
                        },
                        "cancellation_date": {
                          "description": "Date of cancellation, if cancelled",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "taxpayer_type": {
                          "type": "string",
                          "enum": [
                            "Regular",
                            "Composition"
                          ],
                          "description": "Taxpayer type"
                        },
                        "constitution": {
                          "type": "string",
                          "description": "Constitution of business, e.g. Private Limited Company"
                        },
                        "state": {
                          "type": "string",
                          "description": "State of registration"
                        },
                        "state_code": {
                          "type": "string",
                          "description": "Two-digit GST state code"
                        },
                        "pan": {
                          "type": "string",
                          "description": "PAN embedded in the GSTIN"
                        },
                        "principal_place": {
                          "type": "object",
                          "properties": {
                            "line1": {
                              "type": "string"
                            },
                            "locality": {
                              "type": "string"
                            },
                            "city": {
                              "type": "string"
                            },
                            "district": {
                              "type": "string"
                            },
                            "state": {
                              "type": "string"
                            },
                            "pincode": {
                              "type": "string",
                              "description": "6-digit PIN code"
                            }
                          },
                          "required": [
                            "line1",
                            "locality",
                            "city",
                            "district",
                            "state",
                            "pincode"
                          ],
                          "additionalProperties": false,
                          "description": "Principal place of business"
                        },
                        "nature_of_business": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Declared nature of business activities"
                        },
                        "einvoice_enabled": {
                          "type": "boolean",
                          "description": "Whether e-invoicing applies"
                        }
                      },
                      "required": [
                        "gstin",
                        "legal_name",
                        "trade_name",
                        "status",
                        "registration_date",
                        "cancellation_date",
                        "taxpayer_type",
                        "constitution",
                        "state",
                        "state_code",
                        "pan",
                        "principal_place",
                        "nature_of_business",
                        "einvoice_enabled"
                      ],
                      "additionalProperties": false
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "charged": {
                          "type": "boolean",
                          "description": "Whether this call was billed. Always false for failures."
                        },
                        "amount_inr": {
                          "type": "number",
                          "description": "Amount billed, GST-inclusive"
                        },
                        "latency_ms": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "source_status": {
                          "type": "string",
                          "enum": [
                            "live",
                            "degraded"
                          ],
                          "description": "`degraded` when a fallback source answered"
                        },
                        "attempts": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991,
                          "description": "Sources tried before an answer (billed once)"
                        },
                        "data_as_of": {
                          "type": "string",
                          "description": "Freshness of the source data (IST)"
                        },
                        "mode": {
                          "type": "string",
                          "enum": [
                            "live",
                            "test"
                          ]
                        },
                        "live_price_inr": {
                          "description": "Test mode only: what this call costs in live mode",
                          "type": "number"
                        },
                        "modules_requested": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "modules_succeeded": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "billing": {
                          "description": "Business360 only: sum of succeeded modules, the bundle cap, and what the cap saved",
                          "type": "object",
                          "properties": {
                            "sum_inr": {
                              "type": "number"
                            },
                            "cap_inr": {
                              "type": "number"
                            },
                            "saved_inr": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "sum_inr",
                            "cap_inr",
                            "saved_inr"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "charged",
                        "amount_inr",
                        "latency_ms",
                        "source_status",
                        "attempts",
                        "data_as_of",
                        "mode"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "success",
                    "request_id",
                    "api",
                    "version",
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "VALIDATION_FAILED — The request body failed validation. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "AUTH_INVALID_KEY — Missing or invalid API key. Send `Authorization: Bearer as_test_…`. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "WALLET_INSUFFICIENT_BALANCE — Wallet balance is lower than the price of this call. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "AUTH_SCOPE_DENIED — This key is not allowed to call this endpoint. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "RECORD_NOT_FOUND — No record found for this identifier. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "RATE_LIMITED — Too many requests. Slow down and retry after the `Retry-After` interval. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "INTERNAL_ERROR — Something went wrong on our side. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "PROVIDER_UNAVAILABLE — Every source for this check is unavailable right now. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "PROVIDER_TIMEOUT — The source did not answer in time. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-price-inr": 0.75,
        "x-price-includes-gst": true
      }
    },
    "/v1/gst/returns": {
      "post": {
        "operationId": "gst_returns",
        "summary": "GST Returns",
        "description": "Returns GSTR-1 and GSTR-3B filing status for the last 12 return periods, with filing dates and a summary of missed or late periods.\n\n**Price:** ₹1.00 per successful call, GST included. Failed calls are ₹0.",
        "tags": [
          "GST"
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Safely retry: the same key + body within 24h returns the original response and is never billed twice.",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "gstin": {
                    "type": "string",
                    "pattern": "^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z][1-9A-Z]Z[0-9A-Z]$",
                    "description": "15-character GSTIN. Validated locally (state code, embedded PAN, mod-36 checksum) before any source is called.",
                    "examples": [
                      "29AAJCK4821M1Z1"
                    ]
                  },
                  "periods": {
                    "description": "How many recent return periods to include (1–12).",
                    "examples": [
                      12
                    ],
                    "default": 12,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 12
                  }
                },
                "required": [
                  "gstin"
                ],
                "additionalProperties": false
              },
              "example": {
                "gstin": "24AAHCS9156P1ZL"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "request_id": {
                      "type": "string",
                      "description": "Unique request ID",
                      "examples": [
                        "as_req_01J9X2K7R8M4V6T2Q9W3E5Y1ZB"
                      ]
                    },
                    "api": {
                      "type": "string",
                      "const": "gst.returns"
                    },
                    "version": {
                      "type": "string",
                      "examples": [
                        "2026-10-01"
                      ]
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "gstin": {
                          "type": "string"
                        },
                        "filing_frequency": {
                          "type": "string",
                          "enum": [
                            "monthly",
                            "quarterly"
                          ],
                          "description": "Return filing frequency"
                        },
                        "periods": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "period": {
                                "type": "string",
                                "description": "Return period, YYYY-MM"
                              },
                              "gstr1": {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "enum": [
                                      "filed",
                                      "late",
                                      "not_filed"
                                    ]
                                  },
                                  "filed_on": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  },
                                  "due_date": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "status",
                                  "filed_on",
                                  "due_date"
                                ],
                                "additionalProperties": false
                              },
                              "gstr3b": {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "enum": [
                                      "filed",
                                      "late",
                                      "not_filed"
                                    ]
                                  },
                                  "filed_on": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  },
                                  "due_date": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "status",
                                  "filed_on",
                                  "due_date"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "period",
                              "gstr1",
                              "gstr3b"
                            ],
                            "additionalProperties": false
                          },
                          "description": "Most recent first"
                        },
                        "summary": {
                          "type": "object",
                          "properties": {
                            "periods": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            "filed_on_time": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            "filed_late": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            "not_filed": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            "last_filed_period": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "periods",
                            "filed_on_time",
                            "filed_late",
                            "not_filed",
                            "last_filed_period"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "gstin",
                        "filing_frequency",
                        "periods",
                        "summary"
                      ],
                      "additionalProperties": false
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "charged": {
                          "type": "boolean",
                          "description": "Whether this call was billed. Always false for failures."
                        },
                        "amount_inr": {
                          "type": "number",
                          "description": "Amount billed, GST-inclusive"
                        },
                        "latency_ms": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "source_status": {
                          "type": "string",
                          "enum": [
                            "live",
                            "degraded"
                          ],
                          "description": "`degraded` when a fallback source answered"
                        },
                        "attempts": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991,
                          "description": "Sources tried before an answer (billed once)"
                        },
                        "data_as_of": {
                          "type": "string",
                          "description": "Freshness of the source data (IST)"
                        },
                        "mode": {
                          "type": "string",
                          "enum": [
                            "live",
                            "test"
                          ]
                        },
                        "live_price_inr": {
                          "description": "Test mode only: what this call costs in live mode",
                          "type": "number"
                        },
                        "modules_requested": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "modules_succeeded": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "billing": {
                          "description": "Business360 only: sum of succeeded modules, the bundle cap, and what the cap saved",
                          "type": "object",
                          "properties": {
                            "sum_inr": {
                              "type": "number"
                            },
                            "cap_inr": {
                              "type": "number"
                            },
                            "saved_inr": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "sum_inr",
                            "cap_inr",
                            "saved_inr"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "charged",
                        "amount_inr",
                        "latency_ms",
                        "source_status",
                        "attempts",
                        "data_as_of",
                        "mode"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "success",
                    "request_id",
                    "api",
                    "version",
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "VALIDATION_FAILED — The request body failed validation. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "AUTH_INVALID_KEY — Missing or invalid API key. Send `Authorization: Bearer as_test_…`. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "WALLET_INSUFFICIENT_BALANCE — Wallet balance is lower than the price of this call. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "AUTH_SCOPE_DENIED — This key is not allowed to call this endpoint. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "RECORD_NOT_FOUND — No record found for this identifier. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "RATE_LIMITED — Too many requests. Slow down and retry after the `Retry-After` interval. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "INTERNAL_ERROR — Something went wrong on our side. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "PROVIDER_UNAVAILABLE — Every source for this check is unavailable right now. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "PROVIDER_TIMEOUT — The source did not answer in time. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-price-inr": 1,
        "x-price-includes-gst": true
      }
    },
    "/v1/gst/by-pan": {
      "post": {
        "operationId": "gst_by_pan",
        "summary": "GST by PAN",
        "description": "Lists every GSTIN registered against a PAN, with state, status and registration date for each.\n\n**Price:** ₹1.00 per successful call, GST included. Failed calls are ₹0.",
        "tags": [
          "GST"
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Safely retry: the same key + body within 24h returns the original response and is never billed twice.",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "pan": {
                    "type": "string",
                    "pattern": "^[A-Z]{5}[0-9]{4}[A-Z]$",
                    "description": "10-character PAN. The 4th character encodes the holder type.",
                    "examples": [
                      "AAJCK4821M"
                    ]
                  }
                },
                "required": [
                  "pan"
                ],
                "additionalProperties": false
              },
              "example": {
                "pan": "AABCT6639L"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "request_id": {
                      "type": "string",
                      "description": "Unique request ID",
                      "examples": [
                        "as_req_01J9X2K7R8M4V6T2Q9W3E5Y1ZB"
                      ]
                    },
                    "api": {
                      "type": "string",
                      "const": "gst.by_pan"
                    },
                    "version": {
                      "type": "string",
                      "examples": [
                        "2026-10-01"
                      ]
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "pan": {
                          "type": "string"
                        },
                        "count": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "gstins": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "gstin": {
                                "type": "string"
                              },
                              "state": {
                                "type": "string"
                              },
                              "state_code": {
                                "type": "string"
                              },
                              "status": {
                                "type": "string",
                                "enum": [
                                  "Active",
                                  "Cancelled",
                                  "Suspended"
                                ]
                              },
                              "registration_date": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "gstin",
                              "state",
                              "state_code",
                              "status",
                              "registration_date"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "pan",
                        "count",
                        "gstins"
                      ],
                      "additionalProperties": false
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "charged": {
                          "type": "boolean",
                          "description": "Whether this call was billed. Always false for failures."
                        },
                        "amount_inr": {
                          "type": "number",
                          "description": "Amount billed, GST-inclusive"
                        },
                        "latency_ms": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "source_status": {
                          "type": "string",
                          "enum": [
                            "live",
                            "degraded"
                          ],
                          "description": "`degraded` when a fallback source answered"
                        },
                        "attempts": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991,
                          "description": "Sources tried before an answer (billed once)"
                        },
                        "data_as_of": {
                          "type": "string",
                          "description": "Freshness of the source data (IST)"
                        },
                        "mode": {
                          "type": "string",
                          "enum": [
                            "live",
                            "test"
                          ]
                        },
                        "live_price_inr": {
                          "description": "Test mode only: what this call costs in live mode",
                          "type": "number"
                        },
                        "modules_requested": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "modules_succeeded": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "billing": {
                          "description": "Business360 only: sum of succeeded modules, the bundle cap, and what the cap saved",
                          "type": "object",
                          "properties": {
                            "sum_inr": {
                              "type": "number"
                            },
                            "cap_inr": {
                              "type": "number"
                            },
                            "saved_inr": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "sum_inr",
                            "cap_inr",
                            "saved_inr"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "charged",
                        "amount_inr",
                        "latency_ms",
                        "source_status",
                        "attempts",
                        "data_as_of",
                        "mode"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "success",
                    "request_id",
                    "api",
                    "version",
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "VALIDATION_FAILED — The request body failed validation. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "AUTH_INVALID_KEY — Missing or invalid API key. Send `Authorization: Bearer as_test_…`. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "WALLET_INSUFFICIENT_BALANCE — Wallet balance is lower than the price of this call. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "AUTH_SCOPE_DENIED — This key is not allowed to call this endpoint. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "RECORD_NOT_FOUND — No record found for this identifier. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "RATE_LIMITED — Too many requests. Slow down and retry after the `Retry-After` interval. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "INTERNAL_ERROR — Something went wrong on our side. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "PROVIDER_UNAVAILABLE — Every source for this check is unavailable right now. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "PROVIDER_TIMEOUT — The source did not answer in time. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-price-inr": 1,
        "x-price-includes-gst": true
      }
    },
    "/v1/pan/verify": {
      "post": {
        "operationId": "pan_verify",
        "summary": "PAN Verify",
        "description": "Checks a PAN, decodes the holder category from its 4th character, and — if you pass a name — returns a 0–1 name match score with a match verdict.\n\n**Price:** ₹2.00 per successful call, GST included. Failed calls are ₹0.",
        "tags": [
          "PAN"
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Safely retry: the same key + body within 24h returns the original response and is never billed twice.",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "pan": {
                    "type": "string",
                    "pattern": "^[A-Z]{5}[0-9]{4}[A-Z]$",
                    "description": "10-character PAN. The 4th character encodes the holder type.",
                    "examples": [
                      "AAJCK4821M"
                    ]
                  },
                  "name": {
                    "description": "Optional name to match against the PAN holder's name.",
                    "examples": [
                      "Kaveri Textiles Pvt Ltd"
                    ],
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 120
                  }
                },
                "required": [
                  "pan"
                ],
                "additionalProperties": false
              },
              "example": {
                "pan": "AAJCK4821M",
                "name": "Kaveri Textiles Pvt Ltd"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "request_id": {
                      "type": "string",
                      "description": "Unique request ID",
                      "examples": [
                        "as_req_01J9X2K7R8M4V6T2Q9W3E5Y1ZB"
                      ]
                    },
                    "api": {
                      "type": "string",
                      "const": "pan.verify"
                    },
                    "version": {
                      "type": "string",
                      "examples": [
                        "2026-10-01"
                      ]
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "pan": {
                          "type": "string"
                        },
                        "valid": {
                          "type": "boolean",
                          "description": "Whether the PAN exists and is active"
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "Valid",
                            "Invalid"
                          ],
                          "description": "Status from source"
                        },
                        "category": {
                          "type": "string",
                          "description": "Holder category decoded from the 4th character"
                        },
                        "registered_name": {
                          "type": "string",
                          "description": "Name on PAN as returned by the source (partially masked for individuals)"
                        },
                        "name_match": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "input": {
                                  "type": "string"
                                },
                                "score": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1,
                                  "description": "0–1 similarity score"
                                },
                                "result": {
                                  "type": "string",
                                  "enum": [
                                    "match",
                                    "partial",
                                    "no_match"
                                  ]
                                }
                              },
                              "required": [
                                "input",
                                "score",
                                "result"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Present when you send `name`"
                        }
                      },
                      "required": [
                        "pan",
                        "valid",
                        "status",
                        "category",
                        "registered_name",
                        "name_match"
                      ],
                      "additionalProperties": false
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "charged": {
                          "type": "boolean",
                          "description": "Whether this call was billed. Always false for failures."
                        },
                        "amount_inr": {
                          "type": "number",
                          "description": "Amount billed, GST-inclusive"
                        },
                        "latency_ms": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "source_status": {
                          "type": "string",
                          "enum": [
                            "live",
                            "degraded"
                          ],
                          "description": "`degraded` when a fallback source answered"
                        },
                        "attempts": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991,
                          "description": "Sources tried before an answer (billed once)"
                        },
                        "data_as_of": {
                          "type": "string",
                          "description": "Freshness of the source data (IST)"
                        },
                        "mode": {
                          "type": "string",
                          "enum": [
                            "live",
                            "test"
                          ]
                        },
                        "live_price_inr": {
                          "description": "Test mode only: what this call costs in live mode",
                          "type": "number"
                        },
                        "modules_requested": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "modules_succeeded": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "billing": {
                          "description": "Business360 only: sum of succeeded modules, the bundle cap, and what the cap saved",
                          "type": "object",
                          "properties": {
                            "sum_inr": {
                              "type": "number"
                            },
                            "cap_inr": {
                              "type": "number"
                            },
                            "saved_inr": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "sum_inr",
                            "cap_inr",
                            "saved_inr"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "charged",
                        "amount_inr",
                        "latency_ms",
                        "source_status",
                        "attempts",
                        "data_as_of",
                        "mode"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "success",
                    "request_id",
                    "api",
                    "version",
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "VALIDATION_FAILED — The request body failed validation. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "AUTH_INVALID_KEY — Missing or invalid API key. Send `Authorization: Bearer as_test_…`. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "WALLET_INSUFFICIENT_BALANCE — Wallet balance is lower than the price of this call. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "AUTH_SCOPE_DENIED — This key is not allowed to call this endpoint. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "RECORD_NOT_FOUND — No record found for this identifier. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "RATE_LIMITED — Too many requests. Slow down and retry after the `Retry-After` interval. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "INTERNAL_ERROR — Something went wrong on our side. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "PROVIDER_UNAVAILABLE — Every source for this check is unavailable right now. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "PROVIDER_TIMEOUT — The source did not answer in time. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-price-inr": 2,
        "x-price-includes-gst": true
      }
    },
    "/v1/mca/company": {
      "post": {
        "operationId": "mca_company",
        "summary": "Company",
        "description": "Returns the MCA master record for a company (CIN) or LLP (LLPIN): name, status, class, category, incorporation date, RoC, capital, listing status and registered address.\n\n**Price:** ₹3.50 per successful call, GST included. Failed calls are ₹0.",
        "tags": [
          "MCA"
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Safely retry: the same key + body within 24h returns the original response and is never billed twice.",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "cin": {
                    "type": "string",
                    "pattern": "^[LU][0-9]{5}[A-Z]{2}[0-9]{4}[A-Z]{3}[0-9]{6}$",
                    "description": "21-character Corporate Identification Number.",
                    "examples": [
                      "U17120KA2016PTC094312"
                    ]
                  },
                  "llpin": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}-[0-9]{4}$",
                    "description": "LLP Identification Number (AAA-1234).",
                    "examples": [
                      "AAK-4417"
                    ]
                  }
                },
                "additionalProperties": false,
                "description": "Send exactly one of `cin` or `llpin`."
              },
              "example": {
                "cin": "U17120KA2016PTC094312"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "request_id": {
                      "type": "string",
                      "description": "Unique request ID",
                      "examples": [
                        "as_req_01J9X2K7R8M4V6T2Q9W3E5Y1ZB"
                      ]
                    },
                    "api": {
                      "type": "string",
                      "const": "mca.company"
                    },
                    "version": {
                      "type": "string",
                      "examples": [
                        "2026-10-01"
                      ]
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "entity_type": {
                          "type": "string",
                          "enum": [
                            "company",
                            "llp"
                          ]
                        },
                        "cin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "llpin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "name": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "Active",
                            "Strike Off",
                            "Under Liquidation"
                          ]
                        },
                        "class": {
                          "type": "string",
                          "description": "Private / Public / LLP"
                        },
                        "category": {
                          "type": "string"
                        },
                        "sub_category": {
                          "type": "string"
                        },
                        "date_of_incorporation": {
                          "type": "string"
                        },
                        "roc": {
                          "type": "string",
                          "description": "Registrar of Companies"
                        },
                        "listing_status": {
                          "type": "string",
                          "enum": [
                            "Listed",
                            "Unlisted"
                          ]
                        },
                        "authorised_capital_inr": {
                          "type": "number",
                          "description": "Authorised capital in INR (0 for LLPs)"
                        },
                        "paid_up_capital_inr": {
                          "type": "number",
                          "description": "Paid-up capital, or total contribution for an LLP"
                        },
                        "industry": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "nic_code": {
                                  "type": "string"
                                },
                                "description": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "nic_code",
                                "description"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "last_agm_date": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "last_balance_sheet_date": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "registered_address": {
                          "type": "object",
                          "properties": {
                            "line1": {
                              "type": "string"
                            },
                            "locality": {
                              "type": "string"
                            },
                            "city": {
                              "type": "string"
                            },
                            "district": {
                              "type": "string"
                            },
                            "state": {
                              "type": "string"
                            },
                            "pincode": {
                              "type": "string",
                              "description": "6-digit PIN code"
                            }
                          },
                          "required": [
                            "line1",
                            "locality",
                            "city",
                            "district",
                            "state",
                            "pincode"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "entity_type",
                        "cin",
                        "llpin",
                        "name",
                        "status",
                        "class",
                        "category",
                        "sub_category",
                        "date_of_incorporation",
                        "roc",
                        "listing_status",
                        "authorised_capital_inr",
                        "paid_up_capital_inr",
                        "industry",
                        "last_agm_date",
                        "last_balance_sheet_date",
                        "registered_address"
                      ],
                      "additionalProperties": false
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "charged": {
                          "type": "boolean",
                          "description": "Whether this call was billed. Always false for failures."
                        },
                        "amount_inr": {
                          "type": "number",
                          "description": "Amount billed, GST-inclusive"
                        },
                        "latency_ms": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "source_status": {
                          "type": "string",
                          "enum": [
                            "live",
                            "degraded"
                          ],
                          "description": "`degraded` when a fallback source answered"
                        },
                        "attempts": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991,
                          "description": "Sources tried before an answer (billed once)"
                        },
                        "data_as_of": {
                          "type": "string",
                          "description": "Freshness of the source data (IST)"
                        },
                        "mode": {
                          "type": "string",
                          "enum": [
                            "live",
                            "test"
                          ]
                        },
                        "live_price_inr": {
                          "description": "Test mode only: what this call costs in live mode",
                          "type": "number"
                        },
                        "modules_requested": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "modules_succeeded": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "billing": {
                          "description": "Business360 only: sum of succeeded modules, the bundle cap, and what the cap saved",
                          "type": "object",
                          "properties": {
                            "sum_inr": {
                              "type": "number"
                            },
                            "cap_inr": {
                              "type": "number"
                            },
                            "saved_inr": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "sum_inr",
                            "cap_inr",
                            "saved_inr"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "charged",
                        "amount_inr",
                        "latency_ms",
                        "source_status",
                        "attempts",
                        "data_as_of",
                        "mode"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "success",
                    "request_id",
                    "api",
                    "version",
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "VALIDATION_FAILED — The request body failed validation. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "AUTH_INVALID_KEY — Missing or invalid API key. Send `Authorization: Bearer as_test_…`. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "WALLET_INSUFFICIENT_BALANCE — Wallet balance is lower than the price of this call. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "AUTH_SCOPE_DENIED — This key is not allowed to call this endpoint. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "RECORD_NOT_FOUND — No record found for this identifier. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "RATE_LIMITED — Too many requests. Slow down and retry after the `Retry-After` interval. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "INTERNAL_ERROR — Something went wrong on our side. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "PROVIDER_UNAVAILABLE — Every source for this check is unavailable right now. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "PROVIDER_TIMEOUT — The source did not answer in time. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-price-inr": 3.5,
        "x-price-includes-gst": true
      }
    },
    "/v1/mca/search": {
      "post": {
        "operationId": "mca_search",
        "summary": "Company Search",
        "description": "Fuzzy search across company and LLP names. Returns ranked matches with CIN/LLPIN, status, state and incorporation year.\n\n**Price:** ₹3.50 per successful call, GST included. Failed calls are ₹0.",
        "tags": [
          "MCA"
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Safely retry: the same key + body within 24h returns the original response and is never billed twice.",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 120,
                    "description": "Company or LLP name (fuzzy).",
                    "examples": [
                      "Kaveri Textiles"
                    ]
                  },
                  "limit": {
                    "description": "Max results (1–20, default 5).",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 20
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              },
              "example": {
                "name": "Sabarmati",
                "limit": 5
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "request_id": {
                      "type": "string",
                      "description": "Unique request ID",
                      "examples": [
                        "as_req_01J9X2K7R8M4V6T2Q9W3E5Y1ZB"
                      ]
                    },
                    "api": {
                      "type": "string",
                      "const": "mca.search"
                    },
                    "version": {
                      "type": "string",
                      "examples": [
                        "2026-10-01"
                      ]
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "query": {
                          "type": "string"
                        },
                        "count": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "results": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "cin": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "llpin": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "status": {
                                "type": "string"
                              },
                              "state": {
                                "type": "string"
                              },
                              "incorporated_on": {
                                "type": "string"
                              },
                              "score": {
                                "type": "number",
                                "description": "0–1 relevance score"
                              }
                            },
                            "required": [
                              "name",
                              "cin",
                              "llpin",
                              "status",
                              "state",
                              "incorporated_on",
                              "score"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "query",
                        "count",
                        "results"
                      ],
                      "additionalProperties": false
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "charged": {
                          "type": "boolean",
                          "description": "Whether this call was billed. Always false for failures."
                        },
                        "amount_inr": {
                          "type": "number",
                          "description": "Amount billed, GST-inclusive"
                        },
                        "latency_ms": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "source_status": {
                          "type": "string",
                          "enum": [
                            "live",
                            "degraded"
                          ],
                          "description": "`degraded` when a fallback source answered"
                        },
                        "attempts": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991,
                          "description": "Sources tried before an answer (billed once)"
                        },
                        "data_as_of": {
                          "type": "string",
                          "description": "Freshness of the source data (IST)"
                        },
                        "mode": {
                          "type": "string",
                          "enum": [
                            "live",
                            "test"
                          ]
                        },
                        "live_price_inr": {
                          "description": "Test mode only: what this call costs in live mode",
                          "type": "number"
                        },
                        "modules_requested": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "modules_succeeded": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "billing": {
                          "description": "Business360 only: sum of succeeded modules, the bundle cap, and what the cap saved",
                          "type": "object",
                          "properties": {
                            "sum_inr": {
                              "type": "number"
                            },
                            "cap_inr": {
                              "type": "number"
                            },
                            "saved_inr": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "sum_inr",
                            "cap_inr",
                            "saved_inr"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "charged",
                        "amount_inr",
                        "latency_ms",
                        "source_status",
                        "attempts",
                        "data_as_of",
                        "mode"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "success",
                    "request_id",
                    "api",
                    "version",
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "VALIDATION_FAILED — The request body failed validation. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "AUTH_INVALID_KEY — Missing or invalid API key. Send `Authorization: Bearer as_test_…`. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "WALLET_INSUFFICIENT_BALANCE — Wallet balance is lower than the price of this call. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "AUTH_SCOPE_DENIED — This key is not allowed to call this endpoint. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "RECORD_NOT_FOUND — No record found for this identifier. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "RATE_LIMITED — Too many requests. Slow down and retry after the `Retry-After` interval. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "INTERNAL_ERROR — Something went wrong on our side. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "PROVIDER_UNAVAILABLE — Every source for this check is unavailable right now. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "PROVIDER_TIMEOUT — The source did not answer in time. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-price-inr": 3.5,
        "x-price-includes-gst": true
      }
    },
    "/v1/mca/directors": {
      "post": {
        "operationId": "mca_directors",
        "summary": "Directors",
        "description": "Lists current and past directors (or designated partners for an LLP) with DIN, designation, appointment and cessation dates, and DIN status.\n\n**Price:** ₹4.00 per successful call, GST included. Failed calls are ₹0.",
        "tags": [
          "MCA"
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Safely retry: the same key + body within 24h returns the original response and is never billed twice.",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "cin": {
                    "type": "string",
                    "pattern": "^[LU][0-9]{5}[A-Z]{2}[0-9]{4}[A-Z]{3}[0-9]{6}$",
                    "description": "21-character Corporate Identification Number.",
                    "examples": [
                      "U17120KA2016PTC094312"
                    ]
                  },
                  "llpin": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}-[0-9]{4}$",
                    "description": "LLP Identification Number (AAA-1234).",
                    "examples": [
                      "AAK-4417"
                    ]
                  }
                },
                "additionalProperties": false,
                "description": "Send exactly one of `cin` or `llpin`."
              },
              "example": {
                "cin": "L29130MH1998PLC115602"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "request_id": {
                      "type": "string",
                      "description": "Unique request ID",
                      "examples": [
                        "as_req_01J9X2K7R8M4V6T2Q9W3E5Y1ZB"
                      ]
                    },
                    "api": {
                      "type": "string",
                      "const": "mca.directors"
                    },
                    "version": {
                      "type": "string",
                      "examples": [
                        "2026-10-01"
                      ]
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "cin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "llpin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "company_name": {
                          "type": "string"
                        },
                        "count": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "current": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991,
                          "description": "Directors currently on the board"
                        },
                        "directors": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "din": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "designation": {
                                "type": "string"
                              },
                              "appointed_on": {
                                "type": "string"
                              },
                              "ceased_on": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "din_status": {
                                "type": "string",
                                "enum": [
                                  "Approved",
                                  "Disqualified"
                                ]
                              }
                            },
                            "required": [
                              "din",
                              "name",
                              "designation",
                              "appointed_on",
                              "ceased_on",
                              "din_status"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "cin",
                        "llpin",
                        "company_name",
                        "count",
                        "current",
                        "directors"
                      ],
                      "additionalProperties": false
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "charged": {
                          "type": "boolean",
                          "description": "Whether this call was billed. Always false for failures."
                        },
                        "amount_inr": {
                          "type": "number",
                          "description": "Amount billed, GST-inclusive"
                        },
                        "latency_ms": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "source_status": {
                          "type": "string",
                          "enum": [
                            "live",
                            "degraded"
                          ],
                          "description": "`degraded` when a fallback source answered"
                        },
                        "attempts": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991,
                          "description": "Sources tried before an answer (billed once)"
                        },
                        "data_as_of": {
                          "type": "string",
                          "description": "Freshness of the source data (IST)"
                        },
                        "mode": {
                          "type": "string",
                          "enum": [
                            "live",
                            "test"
                          ]
                        },
                        "live_price_inr": {
                          "description": "Test mode only: what this call costs in live mode",
                          "type": "number"
                        },
                        "modules_requested": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "modules_succeeded": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "billing": {
                          "description": "Business360 only: sum of succeeded modules, the bundle cap, and what the cap saved",
                          "type": "object",
                          "properties": {
                            "sum_inr": {
                              "type": "number"
                            },
                            "cap_inr": {
                              "type": "number"
                            },
                            "saved_inr": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "sum_inr",
                            "cap_inr",
                            "saved_inr"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "charged",
                        "amount_inr",
                        "latency_ms",
                        "source_status",
                        "attempts",
                        "data_as_of",
                        "mode"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "success",
                    "request_id",
                    "api",
                    "version",
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "VALIDATION_FAILED — The request body failed validation. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "AUTH_INVALID_KEY — Missing or invalid API key. Send `Authorization: Bearer as_test_…`. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "WALLET_INSUFFICIENT_BALANCE — Wallet balance is lower than the price of this call. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "AUTH_SCOPE_DENIED — This key is not allowed to call this endpoint. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "RECORD_NOT_FOUND — No record found for this identifier. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "RATE_LIMITED — Too many requests. Slow down and retry after the `Retry-After` interval. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "INTERNAL_ERROR — Something went wrong on our side. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "PROVIDER_UNAVAILABLE — Every source for this check is unavailable right now. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "PROVIDER_TIMEOUT — The source did not answer in time. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-price-inr": 4,
        "x-price-includes-gst": true
      }
    },
    "/v1/mca/din": {
      "post": {
        "operationId": "mca_din",
        "summary": "DIN Lookup",
        "description": "Resolves a Director Identification Number to the director's name, DIN status and every company they are or were associated with.\n\n**Price:** ₹4.00 per successful call, GST included. Failed calls are ₹0.",
        "tags": [
          "MCA"
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Safely retry: the same key + body within 24h returns the original response and is never billed twice.",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "din": {
                    "type": "string",
                    "pattern": "^[0-9]{8}$",
                    "description": "8-digit Director Identification Number.",
                    "examples": [
                      "07419266"
                    ]
                  }
                },
                "required": [
                  "din"
                ],
                "additionalProperties": false
              },
              "example": {
                "din": "07419266"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "request_id": {
                      "type": "string",
                      "description": "Unique request ID",
                      "examples": [
                        "as_req_01J9X2K7R8M4V6T2Q9W3E5Y1ZB"
                      ]
                    },
                    "api": {
                      "type": "string",
                      "const": "mca.din"
                    },
                    "version": {
                      "type": "string",
                      "examples": [
                        "2026-10-01"
                      ]
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "din": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "din_status": {
                          "type": "string",
                          "enum": [
                            "Approved",
                            "Disqualified"
                          ]
                        },
                        "companies": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "cin": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "llpin": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "name": {
                                "type": "string"
                              },
                              "designation": {
                                "type": "string"
                              },
                              "appointed_on": {
                                "type": "string"
                              },
                              "ceased_on": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            },
                            "required": [
                              "cin",
                              "llpin",
                              "name",
                              "designation",
                              "appointed_on",
                              "ceased_on"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "din",
                        "name",
                        "din_status",
                        "companies"
                      ],
                      "additionalProperties": false
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "charged": {
                          "type": "boolean",
                          "description": "Whether this call was billed. Always false for failures."
                        },
                        "amount_inr": {
                          "type": "number",
                          "description": "Amount billed, GST-inclusive"
                        },
                        "latency_ms": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "source_status": {
                          "type": "string",
                          "enum": [
                            "live",
                            "degraded"
                          ],
                          "description": "`degraded` when a fallback source answered"
                        },
                        "attempts": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991,
                          "description": "Sources tried before an answer (billed once)"
                        },
                        "data_as_of": {
                          "type": "string",
                          "description": "Freshness of the source data (IST)"
                        },
                        "mode": {
                          "type": "string",
                          "enum": [
                            "live",
                            "test"
                          ]
                        },
                        "live_price_inr": {
                          "description": "Test mode only: what this call costs in live mode",
                          "type": "number"
                        },
                        "modules_requested": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "modules_succeeded": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "billing": {
                          "description": "Business360 only: sum of succeeded modules, the bundle cap, and what the cap saved",
                          "type": "object",
                          "properties": {
                            "sum_inr": {
                              "type": "number"
                            },
                            "cap_inr": {
                              "type": "number"
                            },
                            "saved_inr": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "sum_inr",
                            "cap_inr",
                            "saved_inr"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "charged",
                        "amount_inr",
                        "latency_ms",
                        "source_status",
                        "attempts",
                        "data_as_of",
                        "mode"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "success",
                    "request_id",
                    "api",
                    "version",
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "VALIDATION_FAILED — The request body failed validation. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "AUTH_INVALID_KEY — Missing or invalid API key. Send `Authorization: Bearer as_test_…`. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "WALLET_INSUFFICIENT_BALANCE — Wallet balance is lower than the price of this call. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "AUTH_SCOPE_DENIED — This key is not allowed to call this endpoint. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "RECORD_NOT_FOUND — No record found for this identifier. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "RATE_LIMITED — Too many requests. Slow down and retry after the `Retry-After` interval. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "INTERNAL_ERROR — Something went wrong on our side. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "PROVIDER_UNAVAILABLE — Every source for this check is unavailable right now. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "PROVIDER_TIMEOUT — The source did not answer in time. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-price-inr": 4,
        "x-price-includes-gst": true
      }
    },
    "/v1/mca/cin-to-pan": {
      "post": {
        "operationId": "mca_cin_to_pan",
        "summary": "CIN ↔ PAN",
        "description": "Maps a CIN to the company's PAN, or a company PAN back to its CIN, so you can join MCA and GST data reliably.\n\n**Price:** ₹3.50 per successful call, GST included. Failed calls are ₹0.",
        "tags": [
          "MCA"
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Safely retry: the same key + body within 24h returns the original response and is never billed twice.",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "cin": {
                    "type": "string",
                    "pattern": "^[LU][0-9]{5}[A-Z]{2}[0-9]{4}[A-Z]{3}[0-9]{6}$",
                    "description": "21-character Corporate Identification Number.",
                    "examples": [
                      "U17120KA2016PTC094312"
                    ]
                  },
                  "pan": {
                    "type": "string",
                    "pattern": "^[A-Z]{5}[0-9]{4}[A-Z]$",
                    "description": "10-character PAN. The 4th character encodes the holder type.",
                    "examples": [
                      "AAJCK4821M"
                    ]
                  }
                },
                "additionalProperties": false,
                "description": "Send a `cin` to get the PAN, or a company `pan` to get the CIN."
              },
              "example": {
                "cin": "U17120KA2016PTC094312"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "request_id": {
                      "type": "string",
                      "description": "Unique request ID",
                      "examples": [
                        "as_req_01J9X2K7R8M4V6T2Q9W3E5Y1ZB"
                      ]
                    },
                    "api": {
                      "type": "string",
                      "const": "mca.cin_to_pan"
                    },
                    "version": {
                      "type": "string",
                      "examples": [
                        "2026-10-01"
                      ]
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "cin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "llpin": {
                          "description": "Set instead of `cin` when the PAN belongs to an LLP",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "pan": {
                          "type": "string"
                        },
                        "company_name": {
                          "type": "string"
                        },
                        "direction": {
                          "type": "string",
                          "enum": [
                            "cin_to_pan",
                            "pan_to_cin"
                          ]
                        }
                      },
                      "required": [
                        "cin",
                        "llpin",
                        "pan",
                        "company_name",
                        "direction"
                      ],
                      "additionalProperties": false
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "charged": {
                          "type": "boolean",
                          "description": "Whether this call was billed. Always false for failures."
                        },
                        "amount_inr": {
                          "type": "number",
                          "description": "Amount billed, GST-inclusive"
                        },
                        "latency_ms": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "source_status": {
                          "type": "string",
                          "enum": [
                            "live",
                            "degraded"
                          ],
                          "description": "`degraded` when a fallback source answered"
                        },
                        "attempts": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991,
                          "description": "Sources tried before an answer (billed once)"
                        },
                        "data_as_of": {
                          "type": "string",
                          "description": "Freshness of the source data (IST)"
                        },
                        "mode": {
                          "type": "string",
                          "enum": [
                            "live",
                            "test"
                          ]
                        },
                        "live_price_inr": {
                          "description": "Test mode only: what this call costs in live mode",
                          "type": "number"
                        },
                        "modules_requested": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "modules_succeeded": {
                          "description": "Business360 only",
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "billing": {
                          "description": "Business360 only: sum of succeeded modules, the bundle cap, and what the cap saved",
                          "type": "object",
                          "properties": {
                            "sum_inr": {
                              "type": "number"
                            },
                            "cap_inr": {
                              "type": "number"
                            },
                            "saved_inr": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "sum_inr",
                            "cap_inr",
                            "saved_inr"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "charged",
                        "amount_inr",
                        "latency_ms",
                        "source_status",
                        "attempts",
                        "data_as_of",
                        "mode"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "success",
                    "request_id",
                    "api",
                    "version",
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "VALIDATION_FAILED — The request body failed validation. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "AUTH_INVALID_KEY — Missing or invalid API key. Send `Authorization: Bearer as_test_…`. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "WALLET_INSUFFICIENT_BALANCE — Wallet balance is lower than the price of this call. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "AUTH_SCOPE_DENIED — This key is not allowed to call this endpoint. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "RECORD_NOT_FOUND — No record found for this identifier. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "RATE_LIMITED — Too many requests. Slow down and retry after the `Retry-After` interval. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "INTERNAL_ERROR — Something went wrong on our side. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "PROVIDER_UNAVAILABLE — Every source for this check is unavailable right now. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "PROVIDER_TIMEOUT — The source did not answer in time. (never billed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-price-inr": 3.5,
        "x-price-includes-gst": true
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "as_test_… / as_live_…"
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "const": false
          },
          "request_id": {
            "type": "string"
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "enum": [
                  "VALIDATION_FAILED",
                  "AUTH_INVALID_KEY",
                  "AUTH_SCOPE_DENIED",
                  "WALLET_INSUFFICIENT_BALANCE",
                  "RECORD_NOT_FOUND",
                  "RATE_LIMITED",
                  "PROVIDER_UNAVAILABLE",
                  "PROVIDER_TIMEOUT",
                  "INTERNAL_ERROR"
                ]
              },
              "type": {
                "type": "string",
                "enum": [
                  "invalid_request_error",
                  "authentication_error",
                  "authorization_error",
                  "billing_error",
                  "not_found_error",
                  "rate_limit_error",
                  "provider_error",
                  "api_error"
                ]
              },
              "message": {
                "type": "string"
              },
              "retryable": {
                "type": "boolean"
              },
              "docs_url": {
                "type": "string"
              },
              "fields": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "path": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "path",
                    "message"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "code",
              "type",
              "message",
              "retryable",
              "docs_url"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "charged": {
                "type": "boolean",
                "const": false
              },
              "amount_inr": {
                "type": "number",
                "const": 0
              },
              "latency_ms": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "attempts": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "charged",
              "amount_inr"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "success",
          "request_id",
          "error",
          "meta"
        ],
        "additionalProperties": false
      }
    }
  }
}