changedInput schema / properties / buyerGender / description
Previous value: -"Buyer gender — overrides isWomanBuyer when set. \"joint\" = man+woman jointly owned."New value: +"\"female\" (a woman), \"joint\" (a man and a woman together) or \"male\" (default; two women: female). Changes the price only where a state gives women a concession. Overrides isWomanBuyer."
addedInput schema / properties / city
Added value: +{
+ "description": "City or town, e.g. \"Pune\". Decides the rate where the state prices by location (MH, KA, WB, MP, HR): Pune 7%, Mumbai 6%.",
+ "maxLength": 60,
+ "minLength": 1,
+ "pattern": "^[A-Za-z0-9 .,'’()\\--ऀ-ॿ]+$",
+ "type": "string"
+}
addedInput schema / properties / firstSale
Added value: +{
+ "description": "True for the FIRST sale of a flat, from the builder (not the buyer's first home); false for a resale. Changes the duty only where a state has a first-sale rate (KA). Omit when unknown: a resale is priced, and said where it matters. Absent: constructionStatus under_construction ⇒ true, resale ⇒ false, ready_to_move decides nothing (may be a resale).",
+ "type": "boolean"
+}
changedInput schema / properties / isUrban / description
Previous value: -"Whether property is in an urban/metro area — gates metro-cess surcharges (e.g., Mumbai LBT, BBMP cess)."New value: +"Urban (default) or rural. Used for the location when city and localBody are absent."
addedInput schema / properties / localBody
Added value: +{
+ "description": "Where the property is, in a state that prices by it (MH, KA, WB, MP, HR): gram_panchayat (village), municipal_council (town) or municipal_corporation (city); overrides city. Omit when unknown (a corporation is priced, and said).",
+ "enum": [
+ "municipal_corporation",
+ "municipal_council",
+ "gram_panchayat"
+ ],
+ "type": "string"
+}
changedInput schema / properties / propertyType / description
Previous value: -"Property type — applies state-specific multiplier (commercial/agricultural)."New value: +"residential (default), plot (bare land; a residential-only concession does not reach it), commercial or agricultural."
changedInput schema / properties / propertyType / enum
Previous value: -[
- "residential",
- "commercial",
- "agricultural"
-]New value: +[
+ "residential",
+ "commercial",
+ "agricultural",
+ "plot"
+]
addedInput schema / properties / propertyValue / maximum
Added value: +10000000000
removedInput schema / properties / state / default
Removed value: -"Tamil Nadu"
changedInput schema / properties / state / description
Previous value: -"Indian state — accepts ISO code (\"MH\"), URL slug (\"maharashtra\"), or display name (\"Maharashtra\"). All 28 states + 8 UTs supported."New value: +"Indian state — ISO code (\"MH\"), slug (\"maharashtra\") or name (\"Maharashtra\"). Required."
changedInput schema / properties / state / minLength
Previous value: -2New value: +1
addedInput schema / properties / state / pattern
Added value: +"^[A-Za-z0-9 .,'’()\\--ऀ-ॿ]+$"
changedInput schema / required
Previous value: -[
- "propertyValue"
-]New value: +[
+ "propertyValue",
+ "state"
+]
addedOutput schema / properties / assumptions
Added value: +{
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "message"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
addedOutput schema / properties / location
Added value: +{
+ "additionalProperties": true,
+ "properties": {
+ "assumed": {
+ "type": "boolean"
+ },
+ "localBody": {
+ "enum": [
+ "municipal_corporation",
+ "municipal_council",
+ "gram_panchayat"
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "place": {
+ "additionalProperties": true,
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "slug": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "slug",
+ "name"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "source": {
+ "enum": [
+ "local_body",
+ "city",
+ "is_urban",
+ "default",
+ "not_applicable"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "place",
+ "localBody",
+ "source",
+ "assumed"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+}
changedOutput schema / properties / rateEffectiveDate / type
Previous value: -"string"New value: +[
+ "string",
+ "null"
+]
addedOutput schema / properties / rateVerification
Added value: +{
+ "additionalProperties": true,
+ "properties": {
+ "lastVerifiedAt": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "sourceUrl": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "status": {
+ "enum": [
+ "verified",
+ "partial",
+ "unverified"
+ ],
+ "type": "string"
+ },
+ "unverifiedComponents": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "status",
+ "lastVerifiedAt",
+ "sourceUrl",
+ "unverifiedComponents"
+ ],
+ "type": "object"
+}
addedOutput schema / properties / registrationCapApplied
Added value: +{
+ "type": "boolean"
+}
addedOutput schema / properties / rulesVersion
Added value: +{
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / stampDutyBase
Added value: +{
+ "type": "integer"
+}
addedOutput schema / properties / stateCode
Added value: +{
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / stateName
Added value: +{
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / surcharges
Added value: +{
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "amount": {
+ "type": "integer"
+ },
+ "legalBasis": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "ratePct": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "name",
+ "ratePct",
+ "amount"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
changedOutput schema / required
Previous value: -[
- "propertyValue",
- "state",
- "supported",
- "stampDuty",
- "registrationFee",
- "total",
- "rateBasis",
- "rateEffectiveDate",
- "attribution",
- "disclaimer",
- "cards"
-]New value: +[
+ "propertyValue",
+ "state",
+ "supported",
+ "stateCode",
+ "stateName",
+ "stampDuty",
+ "stampDutyBase",
+ "surcharges",
+ "registrationFee",
+ "registrationCapApplied",
+ "total",
+ "rateBasis",
+ "location",
+ "rateVerification",
+ "assumptions",
+ "rulesVersion",
+ "rateEffectiveDate",
+ "attribution",
+ "disclaimer",
+ "cards"
+]