{
  "openapi": "3.1.1",
  "info": {
    "title": "Pradiota Developer Public Metadata Playground",
    "version": "1.0.0",
    "description": "Anonymous, read-only examples backed by the public MIGHTY geography catalog. A hard limit of 600 requests per minute applies per connected Core peer, per instance. A best-effort 30 requests per minute limit also applies when a client address is reported; individual address enforcement depends on the edge supplying a trusted address. This playground does not grant access to tenant data or provide a provider-backed sandbox. Gated developer capability families and their approval states are unaffected."
  },
  "servers": [
    { "url": "/" }
  ],
  "security": [],
  "paths": {
    "/api/pradiota/core/developers/playground/v1/geo/states": {
      "get": {
        "operationId": "listPlaygroundStates",
        "summary": "List public Indian state and union territory metadata",
        "description": "Reads MIGHTY's public LGD geography catalog. Response examples are static illustrations; counts may change as the catalog is updated.",
        "x-mighty": {
          "availability": "PUBLIC_METADATA_DEMO",
          "owner": "MIGHTY Geo",
          "source": "Local Government Directory (LGD) - Sub-Districts",
          "authentication": "ANONYMOUS",
          "scope": "NONE",
          "sideEffects": "NONE",
          "idempotent": true,
          "rateLimit": "600/min per connected Core peer; best-effort 30/min per reported client address",
          "developerGrantRequired": false
        },
        "responses": {
          "200": {
            "description": "Published state catalog",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/StatesResponse" },
                "examples": { "staticExample": { "summary": "Static example", "description": "Illustrative response shape, not a current-count guarantee.", "value": {
                  "contract": "mighty.geo.admin-divisions.v1",
                  "source": "Local Government Directory (LGD) - Sub-Districts",
                  "sourceRef": "https://www.data.gov.in/resource/local-government-directory-lgd-sub-districts",
                  "fallbackUsed": false,
                  "states": [
                    { "code": "AP", "lgdCode": "28", "name": "Andhra Pradesh", "districtCount": 27, "mandalCount": 679 }
                  ]
                } } }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "403": { "$ref": "#/components/responses/Denied" },
          "429": { "$ref": "#/components/responses/RateLimited" },
          "502": { "$ref": "#/components/responses/UpstreamUnavailable" },
          "default": { "$ref": "#/components/responses/UpstreamUnavailable" }
        }
      }
    },
    "/api/pradiota/core/developers/playground/v1/geo/districts": {
      "get": {
        "operationId": "listPlaygroundDistricts",
        "summary": "List public districts in a state",
        "description": "Accepts one two-letter state code and reads MIGHTY's public LGD geography catalog. Response examples are static illustrations; contents may change with the catalog.",
        "x-mighty": {
          "availability": "PUBLIC_METADATA_DEMO",
          "owner": "MIGHTY Geo",
          "source": "Local Government Directory (LGD) - Sub-Districts",
          "authentication": "ANONYMOUS",
          "scope": "NONE",
          "sideEffects": "NONE",
          "idempotent": true,
          "rateLimit": "600/min per connected Core peer; best-effort 30/min per reported client address",
          "developerGrantRequired": false
        },
        "parameters": [
          {
            "name": "state",
            "in": "query",
            "required": true,
            "description": "Two-letter state code; lowercase input is normalized to uppercase.",
            "schema": { "type": "string", "pattern": "^[A-Za-z]{2}$", "minLength": 2, "maxLength": 2 },
            "example": "AP"
          }
        ],
        "responses": {
          "200": {
            "description": "Published district catalog for the selected state",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/DistrictsResponse" },
                "examples": { "staticExample": { "summary": "Static example", "description": "Illustrative response shape, not a current district list.", "value": {
                  "contract": "mighty.geo.admin-divisions.v1",
                  "source": "Local Government Directory (LGD) - Sub-Districts",
                  "sourceRef": "https://www.data.gov.in/resource/local-government-directory-lgd-sub-districts",
                  "fallbackUsed": false,
                  "state": "Andhra Pradesh",
                  "districts": [
                    { "code": "745", "name": "Alluri Sitharama Raju", "mandalCount": 22 }
                  ]
                } } }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "403": { "$ref": "#/components/responses/Denied" },
          "429": { "$ref": "#/components/responses/RateLimited" },
          "502": { "$ref": "#/components/responses/UpstreamUnavailable" },
          "default": { "$ref": "#/components/responses/UpstreamUnavailable" }
        }
      }
    },
    "/api/pradiota/core/developers/playground/v1/openapi.json": {
      "get": {
        "operationId": "getPlaygroundOpenApi",
        "summary": "Read this playground's OpenAPI contract",
        "description": "Returns this public, self-hosted OpenAPI 3.1.1 document; it does not grant access to other MIGHTY service families.",
        "x-mighty": {
          "availability": "PUBLIC_METADATA_DEMO",
          "owner": "MIGHTY Developers",
          "authentication": "ANONYMOUS",
          "scope": "NONE",
          "sideEffects": "NONE",
          "idempotent": true,
          "rateLimit": "600/min per connected Core peer; best-effort 30/min per reported client address",
          "developerGrantRequired": false
        },
        "responses": {
          "200": {
            "description": "OpenAPI 3.1.1 document",
            "content": {
              "application/json": { "schema": {
                "type": "object",
                "required": ["openapi", "info", "paths"],
                "properties": {
                  "openapi": { "type": "string", "const": "3.1.1" },
                  "info": { "type": "object" },
                  "paths": { "type": "object" }
                }
              } }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "403": { "$ref": "#/components/responses/Denied" },
          "429": { "$ref": "#/components/responses/RateLimited" }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "CatalogMetadata": {
        "type": "object",
        "required": ["contract"],
        "properties": {
          "contract": { "type": "string", "const": "mighty.geo.admin-divisions.v1" },
          "source": { "type": "string" },
          "sourceRef": { "type": "string", "format": "uri" },
          "sourceUpdatedAt": { "type": "string" },
          "fallbackUsed": { "type": "boolean" }
        }
      },
      "State": {
        "type": "object",
        "additionalProperties": false,
        "required": ["code", "name", "districtCount", "mandalCount"],
        "properties": {
          "code": { "type": "string" },
          "lgdCode": { "type": "string" },
          "name": { "type": "string" },
          "districtCount": { "type": "integer", "minimum": 0 },
          "mandalCount": { "type": "integer", "minimum": 0 }
        }
      },
      "District": {
        "type": "object",
        "additionalProperties": false,
        "required": ["code", "name", "mandalCount"],
        "properties": {
          "code": { "type": "string" },
          "name": { "type": "string" },
          "mandalCount": { "type": "integer", "minimum": 0 }
        }
      },
      "StatesResponse": {
        "allOf": [
          { "$ref": "#/components/schemas/CatalogMetadata" },
          {
            "type": "object",
            "required": ["states"],
            "properties": {
              "states": { "type": "array", "maxItems": 64, "items": { "$ref": "#/components/schemas/State" } }
            }
          }
        ]
      },
      "DistrictsResponse": {
        "allOf": [
          { "$ref": "#/components/schemas/CatalogMetadata" },
          {
            "type": "object",
            "required": ["state", "districts"],
            "properties": {
              "state": { "type": "string" },
              "districts": { "type": "array", "maxItems": 256, "items": { "$ref": "#/components/schemas/District" } }
            }
          }
        ]
      }
    },
    "responses": {
      "BadRequest": {
        "description": "The request query or body is not supported.",
        "content": {
          "application/json": {
            "example": { "status": "INVALID_PLAYGROUND_REQUEST" },
            "schema": {
              "type": "object",
              "additionalProperties": false,
              "required": ["status"],
              "properties": { "status": { "type": "string", "const": "INVALID_PLAYGROUND_REQUEST" } }
            }
          }
        }
      },
      "Denied": {
        "description": "The public route policy denied this request.",
        "content": {
          "application/json": {
            "example": { "status": "PLAYGROUND_REQUEST_DENIED" },
            "schema": {
              "type": "object",
              "additionalProperties": false,
              "required": ["status"],
              "properties": { "status": { "type": "string", "const": "PLAYGROUND_REQUEST_DENIED" } }
            }
          }
        }
      },
      "RateLimited": {
        "description": "The 600/min Core peer limit or best-effort 30/min reported client address limit was exceeded.",
        "headers": { "Retry-After": { "schema": { "type": "integer", "minimum": 1 } } },
        "content": {
          "application/json": {
            "example": { "status": "PLAYGROUND_RATE_LIMITED" },
            "schema": {
              "type": "object",
              "additionalProperties": false,
              "required": ["status"],
              "properties": { "status": { "type": "string", "const": "PLAYGROUND_RATE_LIMITED" } }
            }
          }
        }
      },
      "UpstreamUnavailable": {
        "description": "The upstream status is preserved for HTTP errors. A transport or invalid catalog response yields 502.",
        "content": {
          "application/json": {
            "example": { "status": "PLAYGROUND_UPSTREAM_UNAVAILABLE" },
            "schema": {
              "type": "object",
              "additionalProperties": false,
              "required": ["status"],
              "properties": { "status": { "type": "string", "const": "PLAYGROUND_UPSTREAM_UNAVAILABLE" } }
            }
          }
        }
      }
    }
  }
}
