- Print
- DarkLight
- PDF
Zoning Documentation
- Print
- DarkLight
- PDF
Purpose
Zoning data is a critical piece of decision-making for the CRE and builder/developer markets, giving insights into what a property is zoned for, zoning districts, setback requirements, floor area ration (FAR), building height, and more. This data, when coupled with SmartFabric, offers a customer a more robust view of parcels without the time-consuming, costly, and tedious collection of zoning information; and may even serve to bring this part of their workflow in-house (many companies will outsource this data collection to companies like PZR).
Features
- Return zoning information using a LightBox Parcel ID
Requirements
The LightBox APIs are hosted in the cloud and therefore have no platform requirements. Application requirements include:- A network connection to the LightBox API server
- Ability to parse JavaScript Object Notation (JSON) API responses
- Secure HTTPS connection
- LightBox authentication key
- LightBox authentication key
Connecting your account
When your LightBox user account is created, a unique API key is also generated. The API key should be kept secret at all times and can only be used for API requests. The key is required in all API calls.
To retrieve your unique API key:
- Log in to the LightBox Developer Portal
- Select Apps from the menu bar
- In your approved App, note your API key (under Consumer Key)
Performing API requests
All API requests must be made over secure HTTPS connections. Requests made over HTTP will fail.
The base URL of the API server that all API requests will be made to is: https://api.lightboxre.com/ followed by a version number https://api.lightboxre.com/v1
Authentication
LightBox APIs uses a token-based authentication. All requests to the LightBox APIs must be authenticated. The token to be passed via an HTTP header with key 'x-api-key' and value <Your authentication token>
Pass your unique API key in the authorization header of every LightBox API call. LightBox uses this information to authenticate your identify and determine whether you have sufficient permissions to complete the operation. curl -X GET -H ‘x-api-key: (api_key)’ https://api.lightboxre.com/
API Requests
Query by LightBox Parcel ID
Query for zoning records using a LightBox Parcel 'ID.'
GET /zoning/_on/parcel/{countryCode}/{id}
Example requests
curl -X GET -H ‘x-api-key: (api_key)’ https://api.lightboxre.com/v1/zoning/_on/parcel/us/0200EYAN6C9OGWBUD0IIIO
https://api.lightboxre.com/v1/zoning/_on/parcel/us/0200EYAN6C9OGWBUD0IIIO
Parameters
Parameter | Type | Description | Usage |
---|---|---|---|
countryCode | path | Two-digit country code, e.g., US. | required |
id | path | LightBox Parcel ID LightBox ID | required |
Response
Media type: application/json
Query by LightBox Site ID
Query for zoning records using a LightBox Site 'ID.'
GET /zoning/_on/site/{countryCode}/{id}
Example requests
curl -X GET -H ‘x-api-key: (api_key)’ https://api.lightboxre.com/v1/zoning/_on/site/us/09033U15BDJ3RUUOQWWNWV
https://api.lightboxre.com/v1/zoning/_on/site/us/09033U15BDJ3RUUOQWWNWV
Parameters
Parameter | Type | Description | Usage |
---|---|---|---|
countryCode | path | Two-digit country code, e.g., US. | required |
id | path | LightBox Site ID LightBox ID | required |
Response
Media type: application/json
Query By Address
Query zoning by address.
GET /zoning/address
Example Requests
curl -X GET -H ‘x-api-key: (api_key)’ https://api.lightboxre.com/v1/zoning/address?text=5201%20California%20Ave%2C%20Irvine%20CA
https://api.lightboxre.com/v1/zoning/address?text=5201%20California%20Ave%2C%20Irvine%20CA
Parameters
Parameter | Type | Description | Usage |
---|---|---|---|
text | query | Complete address string | required |
Response
Media type: application/json
Tile Request
Use within common map controls to show zoning as a tile overlay.
GET /zoning/us/tile/{zoom}/{x}/{y}
Example Requests
curl -X GET -H ‘x-api-key: (api_key)’ https://api.lightboxre.com/v1/zoning/us/tile/18/45050/104888
https://api.lightboxre.com/v1/zoning/us/tile/18/45050/104888
Parameters
Parameter | Type | Description | Usage |
---|---|---|---|
zoom | path | Tile zoom level, which can be a minimum of '13' and a maximum or '21.' | required |
x | path | Tile column. | required |
y | path | Tile row. | required |
color | query | Line or label color in RGB format. | optional |
outlineColor | query | Outline color in RGB format used for label requests only. | optional |
size | query | Used for specifying the size of a label, or boundary. | optional |
lable | query | true or false, specifies if you are returning a map display of the boundary or a label. | optional |
Response
Media type: image/png
Bounding Box Request
Use within common map controls to show zoning as a bounding box request.
GET /zoning/us/tile?bbox=-83.0434660625,40.0198659375,-83.04070793749999,40.0226240625&width=600&height=600
Example Requests
curl -X GET -H ‘x-api-key: (api_key)’ https://api.lightboxre.com/v1/zoning/us/tile?bbox=-83.0434660625,40.0198659375,-83.04070793749999,40.0226240625&width=600&height=600
https://api.lightboxre.com/v1/zoning/us/tile?bbox=-83.0434660625,40.0198659375,-83.04070793749999,40.0226240625&width=600&height=600
Parameters
Parameter | Type | Description | Usage |
---|---|---|---|
bbox | query | A bounding box expressed in the NAD83 projected coordinate system. | required |
width | query | Width of the result image | required |
height | query | Height of the result image | required |
color | query | Line or label color in RGB format. | optional |
outlineColor | query | Outline color in RGB format used for label requests only. | optional |
size | query | Used for specifying the size of a label, or boundary. | optional |
label | query | true or false, specifies if you are returning a map display of the boundary or a label. | optional |
Response
Media type: image/png
API Response
For each endpoint other than the tile requests the response will stay consistent.
{
"$ref": "string",
"$metadata": {
"geogcs": {
"epsg": 4326
},
"units": {
"area": "sqm",
"length": "m"
},
"recordSet": {
"totalRecords": 99,
"bbox": {
"xMax": -105.250409,
"xMin": -105.251916,
"yMax": 40.023629,
"yMin": 40.022576
}
}
},
"zonings": [
{
"$ref": "https://api.lightboxre.com/v1/zoning/_on/parcel/us/0200EYAN6C9OGWBUD0IIIO",
"$metadata": {
"intersect": 0.93,
"vintage": {
"ordinance": "2019-06-18T00:00:00.000Z",
"zoning": "2021-08-11T00:00:00.000Z"
},
"ordinanceUrl": "https://assets.bouldercounty.org/wp-content/uploads/2017/02/land-use-code-article-04.pdf"
},
"parcel": {
"$ref": "https://api.lightboxre.com/v1/parcels/us/0200EYAN6C9OGWBUD0IIIO",
"fips": "8013",
"id": "0200EYAN6C9OGWBUD0IIIO"
},
"jurisdiction": {
"id": "8013",
"type": "COUNTY",
"name": "BOULDER"
},
"type": "All",
"category": "OTHER",
"subctegory": "INSTITUTIONAL",
"permittedUse": "PERMITTED USES INCLUDE BUT ARE NOT LIMITED TO AGRICULTURE - OTHER, COMMERCIAL & RETAIL - OTHER",
"code": {
"value": "F",
"valueUnformatted": "f",
"label": "CODE"
},
"district": {
"value": "string",
"label": "string"
},
"description": {
"value": "string",
"label": "string"
},
"summary": {
"value": "string",
"label": "string"
},
"densityFloorArea": {
"value": null,
"description": null,
"label": "MAXIMUM FLOOR AREA RATIO"
},
"maximumSiteCoverage": {
"percent": null,
"description": null,
"label": "MAXIMUM LOT COVERAGE"
},
"minimumLotArea": {
"perUnit": null,
"perLot": 1524600,
"description": "Subdivided with Water and Sewer in a Community Service Area: 1524600 sq ft; Unsubdivided: 1524600 sq ft.",
"label": "MINIMUM LOT SIZE"
},
"frontSetback": {
"distance": 15,
"description": "15 ft",
"label": "SIDE SETBACK"
},
"sideSetback": {
"distance": 15,
"description": "15 ft",
"label": "SIDE SETBACK"
},
"rearSetback": {
"distance": 15,
"description": "15 ft",
"label": "SIDE SETBACK"
},
"maximumBuildingHeight": {
"height": 30,
"maxStories": "10",
"timesBuildableArea": 10,
"description": "30 ft",
"label": "HEIGHT"
}
}
]
}
Field Dictionary
Field | Type | Description |
---|---|---|
$metadata.intersect | float | The percent of the parcel that is intersected by the zoning polygon. |
$metadata.vintage.ordinance | date | Date when the ordinance information was last updated. |
$metadata.vintage.zoning | date | Date when the zoning boundary information was last updated. |
$metadata.ordinanceUrl | URL to the original ordinance for the jurisdiction. | |
parcel.$ref | string | Parcel reference. |
parcel.fips | string | Federal Information Processing Code for the state, as well as the Federal Information Processing Code for the county. The first two digits are the state code; the last three digits are county code. |
parcel.id | string | LightBox Parcel 'ID.' |
jurisdiction.id | string | Zoning jurisdiction ID. |
jurisdiction.type | string | Zoning jurisdiction type. |
jurisdiction.name | string | Zoning jurisdiction name. |
type | string | Zoning type. |
category | string | LightBox applied zoning category. |
subcategory | string | LightBox applied zoning subcategory. |
permitted | string | Zoning permitted use. |
code.value | string | Zoning code value. |
code.valueUnformatted | string | Zoning code value unformatted. |
code.label | string | Zoning code label. |
district.value | string | District value. |
district.label | string | District label. |
description.value | string | Zoning description. |
description.label | string | Zoning label. |
summary.value | string | Zoning summary. |
summary.label | string | Zoning summary label. |
densityFloorArea.value | string | Zoning density floor area ratio value. |
densityFloorArea.description | string | Zoning density floor area ratio full description. |
densityFloorArea.label | string | Zoning density floor area ratio label. |
maximumSiteCoverage.percent | float | Maximum site coverage percentage. |
maximumSiteCoverage.description | string | Maximum site coverage percentage description. |
maximumSiteCoverage.label | string | Maximum site coverage percentage label. |
minimumLotArea.perUnit | float | Minimum lot area per dwelling unit. |
minimumLotArea.perLot | float | Minimum lot area per lot. |
minimumLotArea.description | string | Minimum lot area description. |
minimumLotArea.label | string | Minimum lot area label. |
frontSetback.distance | integer | Front setback distance. |
frontSetback.description | string | Front setback description. |
frontSetback.label | string | Front setback label. |
sideSetback.distance | integer | Side setback distance. |
sideSetback.description | string | Side setback description. |
sideSetback.label | string | Side setback label. |
rearSetback.distance | integer | Rear setback distance. |
rearSetback.description | string | Rear setback description. |
rearSetback.label | string | Rear setback label. |
maximumBuildingHeight.height | float | Maximum building height. |
maximumBuildingHeight.maxStories | string | Maximum building height in stories. |
maximumBuildingHeight.timesBuildableArea | integer | Maximum building height in times buildable area. |
maximumBuildingHeight.description | string | Maximum building height description. |
maximumBuildingHeight.label | string | Maximum building height label. |
HTTP Error Codes
200 | The request succeeded. |
201 | The object was created successfully |
202 | Accepted, no content |
204 | Successful, no content |
204 | The server has successfully fulfilled the request and that there is no additional content to send in the response payload body. Typically returned on a DELETE |
400 | One or more of the request parameters were invalid. |
401 | The client must authenticate itself to get the requested response. Note: This could also be due to your trial key has expired. |
404 | The server cannot find the requested resource. This can also mean that the endpoint is valid but the resource itself does not exist. |
429 | Too many requests were made in a short period of time, or you have exceeded your request-lot pool. |
500 | The server has encountered an error it does not know how to handle. |
503 | Service Unavailable. |