placestack-com · Schema

Permit

A building or trade permit, with its decision.

CompanyReal EstateDataAPIGeospatialProperty

Properties

Name Type Description
object string The object's type. Always `permit`.
id string A permit id.
number object Permit number, as published. Null when not published.
type object Permit type, as published. Null when not published.
status object Status, as published.
jurisdiction object The jurisdiction that issues the permit.
within array The jurisdictions that contain `jurisdiction`, largest first.
agency object The office that handled the permit. Null when not published.
description object Description of the work, as published. Null when not published.
parcels array Parcels the permit concerns. Empty when none are matched, which is common when only an address is published.
addresses array Addresses on the permit. Empty when none are published.
parties array People and companies named on the permit. Empty when none are published.
dates object Key dates. A null date means not published, not that the step did not happen.
valuation object Declared value of the work. Null when not published.
fees array Fees, by category. Empty when none are published.
decision object The decision: issued on its issue date, or refused. Null while the permit is pending.
document object The published record. Null when not recorded.
as_of object Date of the most recent update to this permit. Null when not recorded.
href string The object's path in the API.
View JSON Schema on GitHub

JSON Schema

placestack-com-permit-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/placestack-com/json-schema/placestack-com-permit-schema.json",
  "title": "Permit",
  "description": "A building or trade permit, with its decision.",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/placestack-com-openapi.json#/components/schemas/Permit",
  "properties": {
    "object": {
      "type": "string",
      "const": "permit",
      "title": "Object",
      "description": "The object's type. Always `permit`.",
      "default": "permit"
    },
    "id": {
      "type": "string",
      "pattern": "^pmt_[0-7][0-9a-hjkmnp-tv-z]{25}$",
      "title": "Id",
      "description": "A permit id."
    },
    "number": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Number",
      "description": "Permit number, as published. Null when not published."
    },
    "type": {
      "anyOf": [
        {
          "$ref": "#/$defs/Code"
        },
        {
          "type": "null"
        }
      ],
      "description": "Permit type, as published. Null when not published."
    },
    "status": {
      "anyOf": [
        {
          "$ref": "#/$defs/Code"
        },
        {
          "type": "null"
        }
      ],
      "description": "Status, as published."
    },
    "jurisdiction": {
      "$ref": "#/$defs/application__JurisdictionRef",
      "description": "The jurisdiction that issues the permit."
    },
    "within": {
      "items": {
        "$ref": "#/$defs/application__Within"
      },
      "type": "array",
      "title": "Within",
      "description": "The jurisdictions that contain `jurisdiction`, largest first."
    },
    "agency": {
      "anyOf": [
        {
          "$ref": "#/$defs/Agency"
        },
        {
          "type": "null"
        }
      ],
      "description": "The office that handled the permit. Null when not published."
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description",
      "description": "Description of the work, as published. Null when not published."
    },
    "parcels": {
      "items": {
        "$ref": "#/$defs/ParcelRef"
      },
      "type": "array",
      "title": "Parcels",
      "description": "Parcels the permit concerns. Empty when none are matched, which is common when only an address is published."
    },
    "addresses": {
      "items": {
        "$ref": "#/$defs/Address"
      },
      "type": "array",
      "title": "Addresses",
      "description": "Addresses on the permit. Empty when none are published."
    },
    "parties": {
      "items": {
        "$ref": "#/$defs/Party"
      },
      "type": "array",
      "title": "Parties",
      "description": "People and companies named on the permit. Empty when none are published."
    },
    "dates": {
      "$ref": "#/$defs/PermitDates",
      "description": "Key dates. A null date means not published, not that the step did not happen."
    },
    "valuation": {
      "anyOf": [
        {
          "$ref": "#/$defs/Valuation"
        },
        {
          "type": "null"
        }
      ],
      "description": "Declared value of the work. Null when not published."
    },
    "fees": {
      "items": {
        "$ref": "#/$defs/Fee"
      },
      "type": "array",
      "title": "Fees",
      "description": "Fees, by category. Empty when none are published."
    },
    "decision": {
      "anyOf": [
        {
          "$ref": "#/$defs/Decision"
        },
        {
          "type": "null"
        }
      ],
      "description": "The decision: issued on its issue date, or refused. Null while the permit is pending."
    },
    "document": {
      "anyOf": [
        {
          "$ref": "#/$defs/Document"
        },
        {
          "type": "null"
        }
      ],
      "description": "The published record. Null when not recorded."
    },
    "as_of": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ],
      "title": "As Of",
      "description": "Date of the most recent update to this permit. Null when not recorded."
    },
    "href": {
      "type": "string",
      "title": "Href",
      "description": "The object's path in the API."
    }
  },
  "type": "object",
  "required": [
    "object",
    "id",
    "number",
    "type",
    "status",
    "jurisdiction",
    "within",
    "agency",
    "description",
    "parcels",
    "addresses",
    "parties",
    "dates",
    "valuation",
    "fees",
    "decision",
    "document",
    "as_of",
    "href"
  ],
  "$defs": {
    "Address": {
      "properties": {
        "raw": {
          "type": "string",
          "title": "Raw",
          "description": "Full address on one line: every line it is published on, in order, joined with a comma."
        },
        "recipient": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Recipient",
          "description": "Care-of or attention line, as published. Null when there is none."
        },
        "street_line_1": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Street Line 1",
          "description": "First street line: house number and street, or a PO box. Null when not published."
        },
        "street_line_2": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Street Line 2",
          "description": "Second street line: apartment, suite, unit or building. Null when there is none."
        },
        "street_number": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Street Number",
          "description": "House number. Null when not published."
        },
        "street_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Street Name",
          "description": "Street name, without its type. Null when not published."
        },
        "unit": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Unit",
          "description": "Unit number. Null when there is none."
        },
        "locality": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Locality",
          "description": "City, town or village. Null when not published."
        },
        "region": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Region",
          "description": "State, as its two-letter abbreviation. Null when not published."
        },
        "postal_code": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Postal Code",
          "description": "ZIP or postal code. Null when not published."
        },
        "point": {
          "anyOf": [
            {
              "$ref": "#/$defs/parcel__Point"
            },
            {
              "type": "null"
            }
          ],
          "description": "Location of the address point, as published. Null when not published."
        }
      },
      "type": "object",
      "required": [
        "raw"
      ],
      "title": "Address",
      "description": "A postal address, as published, with its parts where they are published separately."
    },
    "Agency": {
      "properties": {
        "name": {
          "type": "string",
          "title": "Name",
          "description": "Office name, as published."
        },
        "type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Type",
          "description": "Office type, such as `building`, `planning`, `zoning_board` or `commission`. Null when not published."
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "title": "Agency",
      "description": "The office or board that handled a permit or case."
    },
    "Code": {
      "properties": {
        "code": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Code",
          "description": "Code, as published."
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description",
          "description": "Meaning of the code, as published. Null when not published."
        },
        "standard": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Standard",
          "description": "Standard value, shared across jurisdictions. Null when not yet classified."
        }
      },
      "type": "object",
      "title": "Code",
      "description": "A coded value, as published, with its standard equivalent."
    },
    "Condition": {
      "properties": {
        "text": {
          "type": "string",
          "title": "Text",
          "description": "Condition text, as published."
        },
        "scope": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Scope",
          "description": "What the condition applies to, as published. Null when not stated."
        },
        "timing": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Timing",
          "description": "When the condition must be met, such as `before_permit`, `before_occupancy` or `ongoing`. Null when not stated."
        },
        "due": {
          "anyOf": [
            {
              "type": "string",
              "format": "date"
            },
            {
              "type": "null"
            }
          ],
          "title": "Due",
          "description": "Due date. Null when not stated."
        }
      },
      "type": "object",
      "required": [
        "text"
      ],
      "title": "Condition",
      "description": "A condition of approval."
    },
    "Decision": {
      "properties": {
        "outcome": {
          "$ref": "#/$defs/Code",
          "description": "Outcome, as published. On a permit this is its status, so a permit issued and since expired reads `Expired`."
        },
        "decided_on": {
          "anyOf": [
            {
              "type": "string",
              "format": "date"
            },
            {
              "type": "null"
            }
          ],
          "title": "Decided On",
          "description": "Decision date. Null when not published."
        },
        "effective_from": {
          "anyOf": [
            {
              "type": "string",
              "format": "date"
            },
            {
              "type": "null"
            }
          ],
          "title": "Effective From",
          "description": "Effective date. Null when not published."
        },
        "effective_to": {
          "anyOf": [
            {
              "type": "string",
              "format": "date"
            },
            {
              "type": "null"
            }
          ],
          "title": "Effective To",
          "description": "End date. Null while in effect."
        },
        "conditions": {
          "items": {
            "$ref": "#/$defs/Condition"
          },
          "type": "array",
          "title": "Conditions",
          "description": "Conditions of approval, as published. Empty when there are none. A listed condition is not necessarily met."
        }
      },
      "type": "object",
      "required": [
        "outcome",
        "conditions"
      ],
      "title": "Decision",
      "description": "The decision on a permit or case."
    },
    "Document": {
      "properties": {
        "url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Url",
          "description": "URL of the published record. Null when not published."
        },
        "retrieved": {
          "anyOf": [
            {
              "type": "string",
              "format": "date"
            },
            {
              "type": "null"
            }
          ],
          "title": "Retrieved",
          "description": "Date the record was retrieved. Null when not recorded."
        }
      },
      "type": "object",
      "title": "Document",
      "description": "The published record of a permit or case."
    },
    "Fee": {
      "properties": {
        "category": {
          "type": "string",
          "title": "Category",
          "description": "Fee category, such as `building`, `zoning`, `plan_review` or `impact`. `total` is all fees combined, present only when no fee is published by category."
        },
        "total": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Total",
          "description": "Amount charged. Null when not published."
        },
        "paid": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Paid",
          "description": "Amount paid. Null when not published."
        },
        "unpaid": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Unpaid",
          "description": "Amount outstanding. Null when not published."
        },
        "waived": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Waived",
          "description": "Amount waived. Null when not published."
        },
        "currency": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Currency",
          "description": "ISO 4217 currency code. Null when no amount is published."
        }
      },
      "type": "object",
      "required": [
        "category"
      ],
      "title": "Fee",
      "description": "Fees in one category."
    },
    "ParcelRef": {
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^prc_[0-7][0-9a-hjkmnp-tv-z]{25}$",
          "title": "Id",
          "description": "A parcel id."
        },
        "number": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Number",
          "description": "Primary parcel number. Null when not published."
        },
        "href": {
          "type": "string",
          "title": "Href",
          "description": "The object's path in the API."
        }
      },
      "type": "object",
      "required": [
        "id",
        "href"
      ],
      "title": "ParcelRef",
      "description": "A parcel a permit or case concerns."
    },
    "Party": {
      "properties": {
        "name": {
          "type": "string",
          "title": "Name",
          "description": "Name, as published."
        },
        "role": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Role",
          "description": "Role, such as `applicant`, `owner`, `contractor`, `architect`, `engineer` or `representative`. Null when not published."
        },
        "organization": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Organization",
          "description": "Company or organization represented. Null when not published."
        },
        "license": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "License",
          "description": "License number. Null when not published."
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "title": "Party",
      "description": "A person or company named on a permit or case."
    },
    "PermitDates": {
      "properties": {
        "applied": {
          "anyOf": [
            {
              "type": "string",
              "format": "date"
            },
            {
              "type": "null"
            }
          ],
          "title": "Applied",
          "description": "Application date. Null when not published."
        },
        "issued": {
          "anyOf": [
            {
              "type": "string",
              "format": "date"
            },
            {
              "type": "null"
            }
          ],
          "title": "Issued",
          "description": "Issue date. Null when not issued or not published."
        },
        "decided": {
          "anyOf": [
            {
              "type": "string",
              "format": "date"
            },
            {
              "type": "null"
            }
          ],
          "title": "Decided",
          "description": "Decision date: the issue date, or the date of a denial. Null when not decided."
        },
        "expires": {
          "anyOf": [
            {
              "type": "string",
              "format": "date"
            },
            {
              "type": "null"
            }
          ],
          "title": "Expires",
          "description": "Expiration date. Null when not published."
        },
        "completed": {
          "anyOf": [
            {
              "type": "string",
              "format": "date"
            },
            {
              "type": "null"
            }
          ],
          "title": "Completed",
          "description": "Completion date of the work. Null when not published."
        }
      },
      "type": "object",
      "title": "PermitDates",
      "description": "Key dates of a permit, as published."
    },
    "Valuation": {
      "properties": {
        "amount": {
          "type": "number",
          "title": "Amount",
          "description": "Amount, in `currency`."
        },
        "currency": {
          "type": "string",
          "title": "Currency",
          "description": "ISO 4217 currency code."
        }
      },
      "type": "object",
      "required": [
        "amount",
        "currency"
      ],
      "title": "Valuation",
      "description": "The declared value of the work."
    },
    "application__JurisdictionRef": {
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^jur_[0-7][0-9a-hjkmnp-tv-z]{25}$",
          "title": "Id",
          "description": "A jurisdiction id."
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "The jurisdiction's common name."
        },
        "type": {
          "type": "string",
          "title": "Type",
          "description": "Kind of jurisdiction, in local terms, such as `county`, `parish`, `city` or `town`."
        },
        "fips": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Fips",
          "description": "The Census GEOID. Null outside the US."
        },
        "href": {
          "type": "string",
          "title": "Href",
          "description": "The object's path in the API."
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "type",
        "href"
      ],
      "title": "JurisdictionRef",
      "description": "The jurisdiction a permit or case was filed with."
    },
    "application__Within": {
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^jur_[0-7][0-9a-hjkmnp-tv-z]{25}$",
          "title": "Id",
          "description": "A jurisdiction id."
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "The jurisdiction's common name."
        },
        "tier": {
          "type": "string",
          "title": "Tier",
          "description": "Level of government. One of `national`, `region` (a state or province), `subregion` (a county or district) or `local` (a city, town, village or township)."
        },
        "type": {
          "type": "string",
          "title": "Type",
          "description": "Kind of jurisdiction, in local terms, such as `county`, `parish`, `city` or `town`."
        },
        "fips": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Fips",
          "description": "The Census GEOID. Null outside the US."
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "tier",
        "type"
      ],
      "title": "Within",
      "description": "A jurisdiction that contains another."
    },
    "parcel__Point": {
      "properties": {
        "lat": {
          "type": "number",
          "title": "Lat",
          "description": "Latitude, in WGS 84."
        },
        "lon": {
          "type": "number",
          "title": "Lon",
          "description": "Longitude, in WGS 84."
        }
      },
      "type": "object",
      "required": [
        "lat",
        "lon"
      ],
      "title": "Point",
      "description": "A point in WGS 84."
    }
  }
}

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for schemas

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

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/placestack-com-permit"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

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

Get an API key

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

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