NAV Navbar
Examples
  • Introduction
  • Authentication
  • Account Information
  • Parcel Attributes and Geometries
  • Parcel Boundary Map Tiles
  • ArcGIS
  • Errors
  • Introduction

    Welcome to the ReportAll Overlay API! We offer parcel-based, tile-based, and ArcGIS style endpoints for use in any application you may have in mind.

    Authentication

    All of our endpoints require authentication. You can choose to use either the client key we provide to you, or a generated token by using our auth endpoint.

    The client key is provided using: ...&client=[client_key]...

    To provide a token use: ...&token=[token]...

    Token-based Authentication

    To retrieve a token, use this code:

    curl "https://reportallusa.com/api/auth.php?client=ffffffffff&timestamp=1524751569"
    
    {
      "status": "OK",
      "token": "xPBn6y9wBBxxcK2527AHY0YJ2c17k8nU5FAsuvW1_9Qv09NZ4b6BaQZ7lNUHZyl1"
    }
    

    Make sure to replace ffffffffff and 1524751569 with your real client key and desired timestamp.

    Using our auth endpoint, you can supply your client key and an expiration timestamp and receive an encrypted token for use in all of our endpoints

    HTTP Request

    GET https://reportallusa.com/api/auth.php?

    Auth parameters

    Parameter Description
    client Your ReportAll client key
    timestamp A UNIX timestamp of when this token should expire

    Result Fields

    Field Description
    status Status of your request, can be OK, or error
    token Encrypted token for use in authentication in our API

    Account Information

    curl "http://reportallusa.com/api/account.php?client=[client_key]"
    
    {
      "status": "OK",
      "client": "[client_key]",
      "expires_at": 1525177229,
      "quotas": {
        "/api/parcels.php" : {
          "period": "hour",
          "requests": 100,
          "usage": 0,
          "remaining": 100
        },
        "/dyn/tile.py": {
          "period": "day",
          "requests": 10000,
          "usage": 0,
          "remaining": 10000
        }
      }
    }
    

    If you're designing an application using our API, you may want to have a more automated way to keep on top of your quota usage. Using our accounts endpoint can give you that information.

    HTTP Request

    GET https://reportallusa.com/api/account.php?

    Query Parameters

    Parameter Description
    client Your ReportAll client key. Note this endpoint does not take a token for security purposes.

    Result Fields

    Field Description
    status Status of the request, can be OK or error
    client Your client key
    expires_at When your account expires or renews.
    quotas An associative array, keyed off of each resource name available to you. Resource IDs can be one of /dyn/tile.py or /api/parcels.php. See below for what each resource contains.

    Resource Fields

    Field Description
    period The renewal period for this resource. Can be one of alltime, month, day, hour.
    requests The total number of requests you can make in a given period.
    usage How many requests you have made during this current period.
    remaining The difference between requests and usage.

    Parcel Attributes and Geometries

    Address Queries

    To supply the address and region as separate parameters:

    curl "https://reportallusa.com/api/parcels.php?client=[client_key] \ 
      &v=2&region=Geauga%20County,%20OH&address=100%20Short%20Court"
    
    curl "https://reportallusa.com/api/parcels.php?client=[client_key] \
      &v=2&region=Parma,%20Ohio&address=4603%20Brookpark%20Rd"
    

    To supply the address region in a single q parameter:

    curl "https://reportallusa.com/api/parcels.php?client=[client_key] \ 
      &v=2&q=100%20Short%20Court,%20geauga,%20oh"
    
    curl "https://reportallusa.com/api/parcels.php?client=[client_key] \ 
      &v=2&q=1950%20Lucy%20Lane,%20Riverside%20County,%20California"
    

    Note: %20 is the url encoded value for a space character

    {
      "status": "OK",
      "count": 1,
      "page": 1,
      "rpp": 1,
      "results": [
        {
          "omitted for example"
        },
      ],
      "query": "client=[client_key]&v=2&region=Geauga%20County,%20OH&address=100%20Short%20Court"
    }
    

    If you request building footprints, a new entry in results will be available for any records we have data for:

    "results": [
      {
        ...
        "buildings_poly": [
          { "geom_as_wkt": ... }
        ]
      }
    ]
    

    This endpoint allows you to specify a region and an address, either separately or as a query string. It will return an array of all matching records, their attributes, and the geometry in WKT format.

    HTTP Request

    GET https://reportallusa.com/api/parcels.php?

    POST https://reportallusa.com/api/parcels.php

    Query Parameters

    Parameter Default Required Description
    client/token none true Your client key or generated token.
    v none true API version. Current version is 3.
    region none false Geographic region to search in, can be County, State, or Zip code.
    address none false Address to search for.
    return_buildings none false Set to true to receive building footprint polygons in your result records. Version 3 feature only.
    q none false Full text address query.
    rpp 10 false Results per page. If you have more results than this parameter, the API will paginate. Also see note.
    page 1 false Result page, if there are more results than specified in the rpp parameter.

    Result Fields

    Field Description
    status Status of your request, can be OK or error.
    count Number of records returned by your search query.
    page Current results page.
    rpp Currently used results per page.
    results An array containing rpp number of results. Can be paginated through by specifying the page query parameter.
    query An echo of the query you issued.

    Parcel ID Queries

    curl "https://reportallusa.com/api/parcels.php?client=[client_key] \
      &v=2&region=Cuyahoga%20County,%20Ohio&parcel_id=44327012"
    

    Multiple parcels can be specified by separating them with a semicolon:

    curl "https://reportallusa.com/api/parcels.php?client=client_key]&v=2 \ 
      &region=Cuyahoga%20County,%20Ohio&parcel_id=44327012;44327010;44327013"
    
    {
      "status": "OK",
      "count": 3,
      "page": 1,
      "rpp": 10,
      "results": [
        {
          "omitted for example"
        },
      ],
      "query": "client=[client_key]&v=2&region=Cuyahoga%20County,%20Ohio&parcel_id=44327012;44327010;44327013"
    }
    

    If you request building footprints, a new entry in results will be available for any records we have data for:

    "results": [
      {
        ...
        "buildings_poly": [
          { "geom_as_wkt": ... }
        ]
      }
    ]
    

    Parcel Id queries return the parcel record whose assessor-assigned Parcel Id (also known as Parcel Identification Number (PIN) or Assessor's Parcel Number (APN)) matches a given parameter.

    HTTP Request

    GET https://reportallusa.com/api/parcels.php?

    POST https://reportallusa.com/api/parcels.php

    Query Parameters

    Parameter Default Required Description
    client/token none true Your client key or generated token.
    v none true API version. Current version is 3.
    region none true Geographic region to search in, can be County, State, or Zip code.
    parcel_id none true Semi-colon separated list of Parcel IDs
    return_buildings none false Set to true to receive building footprint polygons in your result records. Version 3 feature only.
    rpp 10 false Results per page. If you have more results than this parameter, the API will paginate. Also see note.
    page 1 false Result page, if there are more results than specified in the rpp parameter.

    Result Fields

    Field Description
    status Status of your request, can be OK or error.
    count Number of records returned by your search query.
    page Current results page.
    rpp Currently used results per page.
    results An array containing rpp number of results. Can be paginated through by specifying the page query parameter.
    query An echo of the query you issued.

    Owner Name Queries

    curl "https://reportallusa.com/api/parcels.php?client=[client_key] \
      &v=2&region=Cuyahoga%20County,%20Ohio&owner=Smith"
    

    Multiple owners can be specified by separating them with a semicolon:

    curl "https://reportallusa.com/api/parcels.php?client=[client_key] \
      &v=2&region=Cuyahoga%20County,%20Ohio&owner=Smith;Jones"
    
    {
      "status": "OK",
      "count": 5194,
      "page": 1,
      "rpp": 10,
      "results": [
        {
          "omitted for example"
        },
      ],
      "query": "client=[client_key]&v=2&region=Cuyahoga%20County,%20Ohio&owner=Smith;Jones"
    }
    

    If you request building footprints, a new entry in results will be available for any records we have data for:

    "results": [
      {
        ...
        "buildings_poly": [
          { "geom_as_wkt": ... }
        ]
      }
    ]
    

    Owner Name queries return the parcel record(s) whose owner name matches a given parameter. The owner name format is "Lastname Firstname". If a single word in given (e.g. "Smith"), an exact match search on last name (surname) is performed. If more than one word is given (e.g. "Smith J"), a prefix match is performed. To perform a prefix match on a single word, add a star to the end of the word (e.g. "Smit*").

    HTTP Request

    GET https://reportallusa.com/api/parcels.php?

    POST https://reportallusa.com/api/parcels.php

    Query Parameters

    Parameter Default Required Description
    client/token none true Your client key or generated token.
    v none true API version. Current version is 3.
    region none true Geographic region to search in, can be County, State, or Zip code.
    owner none true Semi-colon separated list of Parcel IDs
    return_buildings none false Set to true to receive building footprint polygons in your result records. Version 3 feature only.
    rpp 10 false Results per page. If you have more results than this parameter, the API will paginate. Also see note.
    page 1 false Result page, if there are more results than specified in the rpp parameter.

    Result Fields

    Field Description
    status Status of your request, can be OK or error.
    count Number of records returned by your search query.
    page Current results page.
    rpp Currently used results per page.
    results An array containing rpp number of results. Can be paginated through by specifying the page query parameter.
    query An echo of the query you issued.

    Point Queries

    In web mercator coordinates using a spatial_intersect=POINT(x y) parameter:

    curl "https://reportallusa.com/api/parcels.php?client=[client_key] \
      &v=2&spatial_intersect=POINT(-7804647.3396951%205055285.6724133)"
    

    In WGS84 Lon/Lat coordinates using a spatial_intersect=POINT(lon lat)&si_srid=4326 parameter:

    curl "https://reportallusa.com/api/parcels.php?client=[client_key] \
      &v=2&spatial_intersect=POINT(-70.110502%2041.2905919)&si_srid=4326"
    
    {
      "status": "OK",
      "count": 1,
      "page": 1,
      "rpp": 10,
      "results": [
        {
          "omitted for example"
        },
      ],
      "query": "client=[client_key]&v=2&spatial_intersect=POINT(-7804647.3396951%205055285.6724133)"
    }
    

    If you request building footprints, a new entry in results will be available for any records we have data for:

    "results": [
      {
        ...
        "buildings_poly": [
          { "geom_as_wkt": ... }
        ]
      }
    ]
    

    Point queries return the parcel record whose polygon contains the given query point. (In rare cases such as some condominium parcels, more than one record can be returned.) There are two point query formats, depending on whether you wish to supply a point in the web mercator coordinate system or the WGS84 Lon/Lat coordinate system.

    HTTP Request

    GET https://reportallusa.com/api/parcels.php?

    POST https://reportallusa.com/api/parcels.php

    Query Parameters

    Parameter Default Required Description
    client/token none true Your client key or generated token.
    v none true API version. Current version is 3.
    spatial_intersect none true A spatial intersect Point in either web mercator or WGS84 formats
    return_buildings none false Set to true to receive building footprint polygons in your result records. Version 3 feature only.
    rpp 10 false Results per page. If you have more results than this parameter, the API will paginate. Also see note.
    page 1 false Result page, if there are more results than specified in the rpp parameter.

    Result Fields

    Field Description
    status Status of your request, can be OK or error.
    count Number of records returned by your search query.
    page Current results page.
    rpp Currently used results per page.
    results An array containing rpp number of results. Can be paginated through by specifying the page query parameter.
    query An echo of the query you issued.

    Nearest Parcel Queries

    In web mercator coordinates using a spatial_nearest=POINT(x y) or spatial_nearest=POLYGON((...)) parameter:

    curl "https://reportallusa.com/api/parcels.php?client=[client_key] \
      &v=2&spatial_nearest=POINT(-7804647.3396951%205055285.6724133)"
    

    In WGS84 Lon/Lat coordinates using a spatial_nearest=POINT(x y)&sn_srid=4326 or spatial_nearest=POLYGON((...))&sn_srid=4326 parameter:

    curl "https://reportallusa.com/api/parcels.php?client=[client_key] \
      &v=2&spatial_nearest=POINT(-70.110502%2041.2905919)&sn_srid=4326"
    
    {
      "status": "OK",
      "count": 10,
      "page": 1,
      "rpp": 10,
      "results": [
        {
          "omitted for example"
        },
      ],
      "query": "client=[client_key]&v=2&spatial_nearest=POINT(-7804647.3396951%205055285.6724133)"
    }
    

    If you request building footprints, a new entry in results will be available for any records we have data for:

    "results": [
      {
        ...
        "buildings_poly": [
          { "geom_as_wkt": ... }
        ]
      }
    ]
    

    Near parcel queries return the parcel records closest to the given query point, in increasing order of distance. There are two nearest parcel query formats, depending on whether you wish to supply a geometry in the web mercator coordinate system or the WGS84 Lon/Lat coordinate system.

    HTTP Request

    GET https://reportallusa.com/api/parcels.php?

    POST https://reportallusa.com/api/parcels.php

    Query Parameters

    Parameter Default Required Description
    client/token none true Your client key or generated token.
    v none true API version. Current version is 3.
    spatial_nearest none true A spatial intersect Point or Polygon in either web mercator or WGS84 formats for which to find nearest parcels
    return_buildings none false Set to true to receive building footprint polygons in your result records. Version 3 feature only.
    rpp 10 false Results per page. If you have more results than this parameter, the API will paginate. Also see note.
    page 1 false Result page, if there are more results than specified in the rpp parameter.

    Result Fields

    Field Description
    status Status of your request, can be OK or error.
    count Number of records returned by your search query.
    page Current results page.
    rpp Currently used results per page.
    results An array containing rpp number of results. Can be paginated through by specifying the page query parameter.
    query An echo of the query you issued.

    Polygon Queries

    In web mercator coordinates using a spatial_intersect=POLYGON((...)) parameter:

    curl "https://reportallusa.com/api/parcels.php?client=[client_key] \
      &v=2&spatial_intersect=POLYGON((-9663128.4741915%203962254.4093738,-9663128.4741915%203962386.9798447,-9663033.5250705%203962386.9798447,-9663033.5250705%203962254.4093738,-9663128.4741915%203962254.4093738))"
    

    In WGS84 Lon/Lat coordinates using a spatial_intersect=POLYGON((...))&si_srid=4326 parameter:

    curl "https://reportallusa.com/api/parcels.php?client=[client_key] \
      &v=2&spatial_intersect=POLYGON((-86.8053600077677%2033.5029528113281,-86.8053600077677%2033.5039458470498,-86.8045070653017%2033.5039458470498,-86.8045070653017%2033.5029528113281,-86.8053600077677%2033.5029528113281))&si_srid=4326"
    
    {
      "status": "OK",
      "count": 8,
      "page": 1,
      "rpp": 10,
      "results": [
        {
          "omitted for example"
        },
      ],
      "query": "client=[client_key]&v=2&spatial_intersect=POLYGON((-9663128.4741915%203962254.4093738,-9663128.4741915%203962386.9798447,-9663033.5250705%203962386.9798447,-9663033.5250705%203962254.4093738,-9663128.4741915%203962254.4093738))"
    }
    

    If you request building footprints, a new entry in results will be available for any records we have data for:

    "results": [
      {
        ...
        "buildings_poly": [
          { "geom_as_wkt": ... }
        ]
      }
    ]
    

    There are two polygon query formats, depending on whether you wish to supply a polygon in the web mercator coordinate system or the WGS84 Lon/Lat coordinate system.

    HTTP Request

    GET https://reportallusa.com/api/parcels.php?

    POST https://reportallusa.com/api/parcels.php

    Query Parameters

    Parameter Default Required Description
    client/token none true Your client key or generated token.
    v none true API version. Current version is 3.
    spatial_intersect none true A spatial intersect Polygon in either web mercator or WGS84 formats.
    return_buildings none false Set to true to receive building footprint polygons in your result records. Version 3 feature only.
    rpp 10 false Results per page. If you have more results than this parameter, the API will paginate. Also see note.
    page 1 false Result page, if there are more results than specified in the rpp parameter.

    Result Fields

    Field Description
    status Status of your request, can be OK or error.
    count Number of records returned by your search query.
    page Current results page.
    rpp Currently used results per page.
    results An array containing rpp number of results. Can be paginated through by specifying the page query parameter.
    query An echo of the query you issued.

    Available Filters

    We offer a wide assortment of additional filters that you can use to narrow down your result set. Any of the filters in the table below can be applied to our Address, Owner Name, or Parcel ID endpoints. Either append them in to your GET query string, or add them to your JSON POST body.

    Filters

    Filter Description
    trans_date_min Transfer date, minimum. In the form of MM-DD-YYYY.
    trans_date_max Transfer date, maximum. In the form of MM-DD-YYYY.
    sale_price_min Sale price, minimum.
    sale_price_max Sale price, maximum.
    bldg_sqft_min Building square footage, minimum.
    bldg_sqft_max Building square footage, maximum.
    story_height_min Number of stories, minimum. A value of 1 to 6.
    story_height_max Number of stories, maximum. A value of 1 to 6.
    ngh_code Neighborhood code. A numeric value, can be separated by semicolons.
    land_use_code Land use code. Numeric value.
    acreage_min Deeded acreage, minimum.
    acreage_max Deeded acreage, maximum.
    calc_acreage_min Calculated acreage, minimum.
    calc_acreage_max Calculated acreage, maximum.
    school_dist_id School district ID. A numeric value.

    Parcel Boundary Map Tiles

    Javascript API

    Google Maps:

    <!-- Notice: Set the key= parameter below to your own Google Maps API Key. -->
    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=[google_api_key]"></script>
    <!-- Notice: Set the client= parameter below to your own Real Estate Portal USA Parcel Overlays client key. -->
    <script type="text/javascript" src="https://reportallusa.com/overlay/js.php?v=3&map=Google&client=[client_key]"></script>
    
    var mapOptions = {
      center: new google.maps.LatLng(48.03, -122.4),
      zoom: 15,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
    REP.Layer.Google.Initialize(map, {'Return_Buildings': true});
    

    Bing Maps:

    <script type="text/javascript" src="http://www.bing.com/api/maps/mapcontrol?callback=repInitBingMap" async defer></script>
    <!-- Notice: Set the client= parameter below to your own Real Estate Portal USA Parcel Overlays client key. -->
    <script type="text/javascript" src="https://reportallusa.com/overlay/js.php?v=3&map=Bing&client=[client_key]"></script>
    
    map = new Microsoft.Maps.Map(document.getElementById("mapDiv"), {credentials: bingMapsKey, center: new Microsoft.Maps.Location(48.03, -122.4), zoom: 15, mapTypeId: "r"});
    var tileSource = new Microsoft.Maps.TileSource({uriConstructor: REP.Layer.Bing.parcelsURIConstructor, minZoom: 15, maxZoom: 21});
    var tileLayer = new Microsoft.Maps.TileLayer({mercator: tileSource, visible: true});
    //map.entities.push(tileLayer);
    map.layers.insert(tileLayer);
    

    OpenLayers 3:

    <script src="//openlayers.org/en/v3.4.0/build/ol.js"></script>
    <script type="text/javascript" src="https://reportallusa.com/overlay/js.php?v=3&map=OpenLayers3&client=[client_key]"></script>
    
    map = new ol.Map({
      target: 'map',
      controls: [new ol.control.Zoom()],
      layers: [
        new ol.layer.Tile({
          source: new ol.source.OSM()
        }),
        new ol.layer.Tile({
          source: new ol.source.XYZ({
            url: REP.Layer.OpenLayers3.parcelsPrefixedURL(REP.ClientKey)
          }),
          maxResolution: REP.Layer.OpenLayers3.parcelsMaxResolution(),
          extent: REP.Layer.OpenLayers3.parcelsExtent()
        })
      ],
      view: new ol.View({
        center: ol.proj.transform([-122.4, 48.03], 'EPSG:4326', 'EPSG:3857'),
        zoom: 15
      })
    });
    

    Using our parcel boundary tile Javascript API, you can overlay our data in your existing web map. To use it, simply include our Javascript library then add our tile layer to your map as shown on the right.

    Library URL

    https://reportallusa.com/overlay/js.php

    Library Parameters

    Parameter Description
    v Version, 3 is the current version of our API
    map Which mapping solution you're currently using. Available options are Google, Bing, OpenLayers2, and OpenLayers3
    client\token Your ReportAll client key, or generated token

    REST API

    curl "https://reportallusa.com/dyn/tile.py?map=siteroot/Base_Layers.map \
      &layer=Parcels&mode=tile&tilemode=gmap&tile=X+Y+Z&client=[client_key]"
    

    Boundary map tiles can be accessed directly from our server using a REST endpoint.

    HTTP Request

    GET https://reportallusa.com/dyn/tile.py?

    Query Parameters

    Parameter Description
    map Must be siteroot/Base_Layers.map
    layer Must be Parcels
    mode Must be tile
    tilemode Must be gmap
    tile Requested tile in the form of X+Y+Z, where X is the tile's X coordinate, Y is the tile's Y coordinate, and Z is the tile's Z (zoom) coordinate, in the Google Maps coordinate system.
    palette_recolor Optional, accepts a value in the form of r%20g%20b ("%20" is a urlencoded space) where r, g, and b are numbers between 0 and 255 (inclusive), indicating the amount of red, green, and blue in the desired color.
    client/token Your client key or generated token

    ArcGIS

    Javascript-based Maps

    Add our tile layer to your ESRI map:

    var tiled = new ArcGISTiledMapServiceLayer("https://reportallusa.com/api/rest_services/client=[client_key]/Parcels/MapServer");
    map.addLayer(tiled);
    

    Query our parcel attributes with a click:

    var queryTask = new QueryTask("https://reportallusa.com/api/rest_services/client=[client_key]/Parcels/MapServer/0");
    
    // Build query filter.
    var query = new Query();
    query.returnGeometry = true;
    query.outSpatialReference = { "wkid": 102100 };
    
    map.infoWindow.resize(275, 325);
    
    var currentClick = null;
    
    // Listen for map click event and launch point query task.
    map.on("click", function (evt) {
      map.graphics.clear()
      map.infoWindow.hide();
      query.spatialRelationship = Query.SPATIAL_REL_INTERSECTS;
      query.geometry = evt.mapPoint;
      currentClick = evt.mapPoint;
      queryTask.execute(query);
    });
    
    // Listen for QueryTask complete event.
    queryTask.on("complete", function (evt) {
      var features = evt.featureSet.features;
      var symbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, new SimpleLineSymbol(SimpleFillSymbol.STYLE_SOLID, new Color([200, 0, 0]), 2), new Color([144, 238, 144, 0.6]));
      for (var i = 0; i < features.length; i++) {
        var graphic = features[i];
        graphic.setSymbol(symbol);
        map.graphics.add(graphic);
      }
    
      if (features.length) {
        var firstGraphic = evt.featureSet.features[0];
        var attrs = firstGraphic.attributes;
        map.infoWindow.setTitle("Parcel " + attrs.parcel_id + " in " + attrs.county_name + ", " + attrs.state_abbr);
        var fieldAliases = evt.featureSet.fieldAliases;
        var content = "";
        for (var attr_name in attrs) {
          if (attrs.hasOwnProperty(attr_name)) {
            var fieldAlias = attr_name;
            if (fieldAliases.hasOwnProperty(attr_name)) {
              fieldAlias = fieldAliases[attr_name];
            }
            content += "<div><b>" + fieldAlias + ": </b>" + attrs[attr_name] + "</div>\n";
          }
        }
        map.infoWindow.setContent(content);
        var currentClickScreen = map.toScreen(currentClick);
        map.infoWindow.show(currentClickScreen, map.getInfoWindowAnchor(currentClickScreen));
      }
    });
    

    Using our ESRI compatible API, you can integrate our parcel geometry and attributes directly in your web application! Overlay our geometries directly on the map, and retrieve the attributes by clicking on any displayed parcels.

    Tiled Map Service Layer Endpoint

    https://reportallusa.com/api/rest_services/client=[client_key]/Parcels/MapServer

    Query Task Endpoint

    https://reportallusa.com/api/rest_services/client=[client_key]/Parcels/MapServer/0

    ArcMap and ArcGIS Pro Software

    Documentation coming soon.

    Errors

    If an error occurs in processing your request, the REST API will return a JSON response of the form: {"status": "error", "message": "..."}

    The ReportAll API uses the following HTTP error status codes:

    Error Code Meaning
    404 Not Found -- The specified endpoint could not be found.
    405 Method Not Allowed -- You tried to access an endpoint with an invalid method.
    429 Too Many Requests -- Your account has triggered our rate limiting code.
    500 Internal Server Error -- We had a problem with our server. Try again later.