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. |
JSON Schema
{
"$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.
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.