Zoning Documentation
    • Dark
      Light
    • PDF

    Zoning Documentation

    • Dark
      Light
    • PDF

    Article summary

    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).

    OAS 3.1 Specification

    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}

    Pro Tip:
    The LightBox Parcel ID is retrieved from either the Parcel API with a WKT or on the geocode response. 

    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

    ParameterTypeDescriptionUsage
    countryCodepathTwo-digit country code, e.g., US.required
    idpathLightBox Parcel ID LightBox IDrequired

    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

    ParameterTypeDescriptionUsage
    countryCodepathTwo-digit country code, e.g., US.required
    idpathLightBox Site ID LightBox IDrequired

    Response

    Media type: application/json

    Query By Address

    Query zoning by address.

    GET /zoning/address

    Pro Tip:
    You can use this endpoint as a one request vs a double request, first to the Geocoder, then to Demographics, based on the latitude and longitude. 
    Geocode response not related to a parcel record
    If the address that is searched is not related to a parcel record you will receive a 404 response.

    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

    ParameterTypeDescriptionUsage
    textqueryComplete address stringrequired

    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

    ParameterTypeDescriptionUsage
    zoompathTile zoom level, which can be a minimum of '13' and a maximum or '21.'required
    xpathTile column.required
    ypathTile row.required
    colorqueryLine or label color in RGB format.
    optional
    outlineColorqueryOutline color in RGB format used for label requests only.
    optional
    sizequeryUsed for specifying the size of a label, or boundary.
    optional
    lablequerytrue 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

    ParameterTypeDescriptionUsage
    bboxqueryA bounding box expressed in the NAD83 projected coordinate system.required
    widthqueryWidth of the result imagerequired
    heightqueryHeight of the result imagerequired
    colorqueryLine or label color in RGB format.
    optional
    outlineColorqueryOutline color in RGB format used for label requests only.
    optional
    sizequeryUsed for specifying the size of a label, or boundary.
    optional
    labelquerytrue 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

    FieldTypeDescription
    $metadata.intersectfloatThe percent of the parcel that is intersected by the zoning polygon.
    $metadata.vintage.ordinancedateDate when the ordinance information was last updated.
    $metadata.vintage.zoningdateDate when the zoning boundary information was last updated.
    $metadata.ordinanceUrl
    URL to the original ordinance for the jurisdiction.
    parcel.$refstringParcel reference.
    parcel.fipsstringFederal 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.idstringLightBox Parcel 'ID.'
    jurisdiction.idstringZoning jurisdiction ID.
    jurisdiction.typestringZoning jurisdiction type.
    jurisdiction.namestringZoning jurisdiction name.
    typestringZoning type.
    categorystringLightBox applied zoning category.
    subcategorystringLightBox applied zoning subcategory.
    permittedstringZoning permitted use.
    code.valuestringZoning code value.
    code.valueUnformattedstringZoning code value unformatted.
    code.labelstringZoning code label.
    district.valuestringDistrict value.
    district.labelstringDistrict label.
    description.valuestringZoning description.
    description.labelstringZoning label.
    summary.valuestringZoning summary.
    summary.labelstringZoning summary label.
    densityFloorArea.valuestringZoning density floor area ratio value.
    densityFloorArea.descriptionstringZoning density floor area ratio full description.
    densityFloorArea.labelstringZoning density floor area ratio label.
    maximumSiteCoverage.percentfloatMaximum site coverage percentage.
    maximumSiteCoverage.descriptionstringMaximum site coverage percentage description.
    maximumSiteCoverage.labelstringMaximum site coverage percentage label.
    minimumLotArea.perUnitfloatMinimum lot area per dwelling unit.
    minimumLotArea.perLotfloatMinimum lot area per lot.
    minimumLotArea.descriptionstringMinimum lot area description.
    minimumLotArea.labelstringMinimum lot area label.
    frontSetback.distanceintegerFront setback distance.
    frontSetback.descriptionstringFront setback description.
    frontSetback.labelstringFront setback label.
    sideSetback.distanceintegerSide setback distance.
    sideSetback.descriptionstringSide setback description.
    sideSetback.labelstringSide setback label.
    rearSetback.distanceintegerRear setback distance.
    rearSetback.descriptionstringRear setback description.
    rearSetback.labelstringRear setback label.
    maximumBuildingHeight.heightfloatMaximum building height.
    maximumBuildingHeight.maxStoriesstringMaximum building height in stories.
    maximumBuildingHeight.timesBuildableAreaintegerMaximum building height in times buildable area.
    maximumBuildingHeight.descriptionstringMaximum building height description.
    maximumBuildingHeight.labelstringMaximum building height label.



    HTTP Error Codes

    HTTP Response status codes along with a brief summary of their commonly accepted usage. These status codes are returned by LightBox APIs for each request:
    200
    The request succeeded.
    201
    The object was created successfully
    202Accepted, no content
    204Successful, 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.
    503Service Unavailable.





    Was this article helpful?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.