Developer  /  API docs

EZ Locate official REST API v1 documentation.

Overview

This describes the resources that make up the official REST API v1. If you have any problems or requests, please contact us.

Schema

All API access is over HTTPS, and accessed from https://ezlocate.app/api. All data is sent and received as JSON.

curl -i https://ezlocate.app/api

Blank fields are included as null instead of being omitted.
All timestamps return in ISO 8601 format:

YYYY-MM-DDTHH:MM:SSZ

Authentication

The API uses access_token to authorize. Requests that requires authentication will return 403 Forbidden.

Basic Authentication

curl -u "username:access_token" https://ezlocate.app/api

Sent through header

Passing a base 64 encoded username:access_token through the request header.

curl -H "Authorization: Basic XXXXXX" https://ezlocate.app/api

Parameters

Many API methods take optional parameters. For GET requests, any parameters not specified as a segment in the path can be passed as an HTTP query string parameter:

curl -i -H "Authorization: Basic XXXXXX" https://ezlocate.app/api/orders?since=today

For POST, PATCH, PUT, and DELETE requests, parameters not included in the URL should be encoded as JSON with a Content-Type of application/json:

curl -i -H "Authorization: Basic XXXXXX" -d '{"ref":"12345","address":"Somewhere in the middle, TX 1234"}' https://ezlocate.app/api/orders

HTTP verbs

Where possible, API v1 strives to use appropriate HTTP verbs for each action.

Verb Description
GET Used for retrieving resources.
POST Used for creating resources.
PATCH Used for updating resources with partial JSON data. For instance, an Order resource has notes attribute. A PATCH request may accept one or more of the attributes to update the resource. PATCH is a relatively new and uncommon HTTP verb, so resource endpoints also accept POST requests.
PUT Used for replacing resources or collections.
DELETE Used for deleting resources.

Pagination

Requests that return multiple items will be paginated to 30 items by default. You can specify further pages with the ?page parameter. For some resources, you can also set a custom page size up to 100 with the ?per_page parameter. Note that for technical reasons not all endpoints respect the ?per_page parameter.

curl 'https://ezlocate.app/api/orders?page=2&per_page=100'

Note that page numbering is 1-based and that omitting the ?page parameter will return the first page.

Note: It's important to form calls with Link header values instead of constructing your own URLs.

The Link header includes pagination information:

Link: <https://ezlocate.app/orders?page=3&per_page=100>; rel="next",
  <https://ezlocate.app/orders?page=50&per_page=100>; rel="last"

The example includes a line break for readability.

This Link response header contains one or more Hypermedia link relations, some of which may require expansion as URI templates.

The possible rel values are:

Name Description
next The link relation for the immediate next page of results.
last The link relation for the last page of results.
first The link relation for the first page of results.
prev The link relation for the immediate previous page of results.

Rate limiting

For API requests using Basic Authentication, you can make up to 5000 requests per hour, per access_token.

ALL requests are authenticated.

The returned HTTP headers of any API request show your current rate limit status:

curl -i https://ezlocate.app/orders/:id
HTTP/1.2 200 OK
Date: Mon, 01 Jul 2019 17:27:06 GMT
Status: 200 OK
X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 3200
X-RateLimit-Reset: 1562003273
Header Name Description
X-RateLimit-Limit The maximum number of requests you're permitted to make per hour.
X-RateLimit-Remaining The number of requests remaining in the current rate limit window.
X-RateLimit-Reset The time at which the current rate limit window resets in UTC epoch seconds.

If you need the time in a different format, any modern programming language can get the job done. For example, if you open up the console on your web browser, you can easily get the reset time as a JavaScript Date object.

new Date(1562003273 * 1000)
// => Mon Jul 01 2019 13:47:53 GMT-0400 (EDT)

If you exceed the rate limit, an error response returns:

HTTP/1.2 403 Forbidden
Date: Tue, 20 Aug 2019 14:50:41 GMT
Status: 403 Forbidden
X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1377013266
{
   "message": "API rate limit exceeded",
   "documentation_url": "https://ezlocate.app/docs/developer#rate-limiting"
}

Staying within the rate limit

If you exceed your rate limit using Basic Authentication, you can likely fix the issue by caching API responses and using conditional requests.

User agent required

All API requests MUST include a valid User-Agent header. Requests with no User-Agent header will be rejected. We request that you use your EZ Locate username, or the name of your application, for the User-Agent header value. This allows us to contact you if there are problems.

Here's an example:

User-Agent: My-Awesome-App

cURL sends a valid User-Agent header by default. If you provide an invalid User-Agent header via cURL (or via an alternative client), you will receive a 403 Forbidden response:

HTTP/1.2 403 Forbidden
Date: Tue, 20 Aug 2019 14:50:41 GMT
Status: 403 Forbidden
{
   "message": "Please make sure your request has a User-Agent header",
   "documentation_url": "https://ezlocate.app/docs/developer#user-agent-required"
}

Orders

The order resource.

List Orders

List the available orders of the client.

GET /orders

Parameters

Name Type Description
sort string What to sort results by. Can be either created, updated. Default: created
direction string The direction of the sort. Can be either asc or desc. Default: desc
since string Only orders updated at or after this time are returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

Response

HTTP/1.2 200 OK
Link: <https://ezlocate.app/api/orders?page=2>; rel="next",
    <https://ezlocate.app/api/orders?page=3>; rel="last"
[
    {
        "id": 4120,
        "ref": "863334",
        "ref_2": null,
        "completed_at": null,
        "created_at": "2019-06-18T05:13:25+0800",
        "entities": [
            {
                "id": 7481,
                "order_id": 4120,
                "created_at": "2019-06-18T05:13:25+0800",
                "addons": [
                    {
                        "id": 27569,
                        "status": "pending",
                        "completed_at": null,
                        "created_at": "2019-06-18T05:13:25+0800",
                        "service": {
                            "id": 1,
                            "name": "Verification",
                            "product": "Address Cleansing"
                        }
                    },
                    {
                        "id": 27570,
                        "status": "pending",
                        "completed_at": null,
                        "created_at": "2019-06-18T05:13:25+0800",
                        "service": {
                            "id": 2,
                            "name": "Geocoding",
                            "product": "Address Cleansing"
                        }
                    },
                    ...
                ],
                "properties": {
                    "id": 6750,
                    "ref": null,
                    "updated": null,
                    "lat": null,
                    "lng": null,
                    "street_1": "5128 W Yesenia Harbors Locks",
                    "street_2": "BLDG 3339",
                    "city": "Louietown",
                    "state": "KY",
                    "zip": "64865",
                    "created_at": "2019-06-18T05:13:25+0800",
                    "formatted_address": "5128 W Yesenia Harbors Locks, BLDG 3339, Louietown, KY 64865",
                    "points": 0,
                    "type": "Residential"
                },
                "type": "address",
                "attributes": []
            },
            {
                "id": 7482,
                "order_id": 4120,
                "created_at": "2019-06-18T05:13:25+0800",
                "addons": [
                    {
                        "id": 27578,
                        "status": "pending",
                        "completed_at": null,
                        "created_at": "2019-06-18T05:13:25+0800",
                        "service": {
                            "id": 18,
                            "name": "Multi Source Client Reviewed",
                            "product": "People Finding"
                        }
                    }
                ],
                "properties": {
                    "id": 2494,
                    "portfolio_id": null,
                    "ref": null,
                    "firstname": "Astrid",
                    "middlename": null,
                    "lastname": "Heller",
                    "dob": "1995-06-18",
                    "dod": null,
                    "ssn": "590617387",
                    "created_at": "2019-06-18T05:13:25+0800",
                    "addresses": [
                        {
                            "id": 6750,
                            "ref": null,
                            "updated": null,
                            "lat": null,
                            "lng": null,
                            "street_1": "5128 W Yesenia Harbors Locks",
                            "street_2": "BLDG 3339",
                            "city": "Louietown",
                            "state": "KY",
                            "zip": "64865",
                            "created_at": "2019-06-18T05:13:25+0800",
                            "formatted_address": "5128 W Yesenia Harbors Locks, BLDG 3339, Louietown, KY 64865",
                            "points": 0,
                            "type": "Residential"
                        }
                    ],
                    "vehicles": [],
                    "contacts": [
                        {
                            "id": 3959,
                            "type": "Phone",
                            "value": "1-670-758-9955 x9294",
                            "active_at": null,
                            "created_at": "2019-06-18T05:13:25+0800"
                        }
                    ],
                    "properties": [],
                    "active_address": {
                        "id": 6750,
                        "ref": null,
                        "updated": null,
                        "lat": null,
                        "lng": null,
                        "street_1": "5128 W Yesenia Harbors Locks",
                        "street_2": "BLDG 3339",
                        "city": "Louietown",
                        "state": "KY",
                        "zip": "64865",
                        "created_at": "2019-06-18T05:13:25+0800",
                        "formatted_address": "5128 W Yesenia Harbors Locks, BLDG 3339, Louietown, KY 64865",
                        "points": 0,
                        "type": "Residential"
                    }
                },
                "type": "person",
                "attributes": []
            },
            ...
        ],
        "completed": false,
        "notes": [
            {
                "id": 3702,
                "content": "Batch #27 created via batch locate",
                "created_at": "2019-06-18T05:13:25+0800",
                "user": {
                    "id": 356,
                    "username": "lodev09",
                    "created_at": "2018-11-14T02:18:31+0800",
                    "name": " ",
                    "avatar_url": "https://www.gravatar.com/avatar/ad71ba828efb290bd39d04989b39040d?s=48&d=identicon&r=g"
                }
            }
        ]
    },
    ...
]

Get a single order

Get a single order by if you secured an id.

GET /orders/:id

Response

Status: 200 OK
{
    "id": 4120,
    "ref": "863334",
    "ref_2": null,
    "completed_at": null,
    "created_at": "2019-06-18T05:13:25+0800",
    "entities": [
        {
            "id": 7481,
            "order_id": 4120,
            "created_at": "2019-06-18T05:13:25+0800",
            "addons": [
                {
                    "id": 27569,
                    "status": "pending",
                    "completed_at": null,
                    "created_at": "2019-06-18T05:13:25+0800",
                    "service": {
                        "id": 1,
                        "name": "Verification",
                        "product": "Address Cleansing"
                    }
                },
                {
                    "id": 27570,
                    "status": "pending",
                    "completed_at": null,
                    "created_at": "2019-06-18T05:13:25+0800",
                    "service": {
                        "id": 2,
                        "name": "Geocoding",
                        "product": "Address Cleansing"
                    }
                },
                ...
            ],
            "properties": {
                "id": 6750,
                "ref": null,
                "updated": null,
                "lat": null,
                "lng": null,
                "street_1": "5128 W Yesenia Harbors Locks",
                "street_2": "BLDG 3339",
                "city": "Louietown",
                "state": "KY",
                "zip": "64865",
                "created_at": "2019-06-18T05:13:25+0800",
                "formatted_address": "5128 W Yesenia Harbors Locks, BLDG 3339, Louietown, KY 64865",
                "points": 0,
                "type": "Residential"
            },
            "type": "address",
            "attributes": []
        },
        {
            "id": 7482,
            "order_id": 4120,
            "created_at": "2019-06-18T05:13:25+0800",
            "addons": [
                {
                    "id": 27578,
                    "status": "pending",
                    "completed_at": null,
                    "created_at": "2019-06-18T05:13:25+0800",
                    "service": {
                        "id": 18,
                        "name": "Multi Source Client Reviewed",
                        "product": "People Finding"
                    }
                }
            ],
            "properties": {
                "id": 2494,
                "portfolio_id": null,
                "ref": null,
                "firstname": "Astrid",
                "middlename": null,
                "lastname": "Heller",
                "dob": "1995-06-18",
                "dod": null,
                "ssn": "590617387",
                "created_at": "2019-06-18T05:13:25+0800",
                "addresses": [
                    {
                        "id": 6750,
                        "ref": null,
                        "updated": null,
                        "lat": null,
                        "lng": null,
                        "street_1": "5128 W Yesenia Harbors Locks",
                        "street_2": "BLDG 3339",
                        "city": "Louietown",
                        "state": "KY",
                        "zip": "64865",
                        "created_at": "2019-06-18T05:13:25+0800",
                        "formatted_address": "5128 W Yesenia Harbors Locks, BLDG 3339, Louietown, KY 64865",
                        "points": 0,
                        "type": "Residential"
                    }
                ],
                "vehicles": [],
                "contacts": [
                    {
                        "id": 3959,
                        "type": "Phone",
                        "value": "1-670-758-9955 x9294",
                        "active_at": null,
                        "created_at": "2019-06-18T05:13:25+0800"
                    }
                ],
                "properties": [],
                "active_address": {
                    "id": 6750,
                    "ref": null,
                    "updated": null,
                    "lat": null,
                    "lng": null,
                    "street_1": "5128 W Yesenia Harbors Locks",
                    "street_2": "BLDG 3339",
                    "city": "Louietown",
                    "state": "KY",
                    "zip": "64865",
                    "created_at": "2019-06-18T05:13:25+0800",
                    "formatted_address": "5128 W Yesenia Harbors Locks, BLDG 3339, Louietown, KY 64865",
                    "points": 0,
                    "type": "Residential"
                }
            },
            "type": "person",
            "attributes": []
        },
        ...
    ],
    "completed": false,
    "notes": [
        {
            "id": 3702,
            "content": "Batch #27 created via batch locate",
            "created_at": "2019-06-18T05:13:25+0800",
            "user": {
                "id": 356,
                "username": "lodev09",
                "created_at": "2018-11-14T02:18:31+0800",
                "name": " ",
                "avatar_url": "https://www.gravatar.com/avatar/ad71ba828efb290bd39d04989b39040d?s=48&d=identicon&r=g"
            }
        }
    ]
}

Create a single order

Create a order through a POST request with the required fields.

The address parameter can either be an object or a string. For the object type, street_1, city, state and zip fields are required. You can provide the latitude and the longitude value to the address parameter if available. For string type, pass the formatted address.

POST /orders

Parameters

Name Type Description
notes string Additional notes of the order.
ref string Client custom reference number.
address object The address associated with the order. addons property is not required. Default: [1]
person object The person associated with the order. method property is not required. Default: 12
asset object The asset associated with the order. search property is required.

The addons , method and search properties in each type of product are defined by the following.

ID Name Product
1 Verification Address Cleansing
2 Geocoding Address Cleansing
3 Medical Facility Check Address Cleansing
4 Urban Check Address Cleansing
5 Military Check Address Cleansing
6 Reservation Check Address Cleansing
7 Correctional Check Address Cleansing
8 Danger Check Address Cleansing
9 Venue Check Address Cleansing
10 Single Source Automated People Finding
11 Multi Source Automated People Finding
12 Multi Source Reviewed People Finding
13 Deep Multi Source Reviewed People Finding
14 Bank Asset Location
15 Vehicles Asset Location
16 Employer Asset Location
17 Known Associates Asset Location
18 Multi Source Client Reviewed People Finding
19 PO Box check Address Cleansing

The address paramter

The address parameter will look something like this

{
    "street_1": "1334 S Wolf Summit Road",
    "street_2": "FL 168",
    "city": "West Sister",
    "state": "AZ",
    "zip": "52437",
    "type": "Business",
    "addons": [1, 2, 9, 19]
}

The person parameter

The person parameter will look something like this. Alternatively, you can pass the addons property to specify the address cleansing services to be used for new addresses found by EZ Locate. Default to 1 - Verification.

{
    "firstname": "Cedrick",
    "lastname": "Schoen",
    "ssn": "745-57-5293",
    "dob": "06/27/1996",
    "phone": "(648) 582-8988",
    "method": 12,
    "addons": [1, 2, 9]
}

Putting it all together, the entire order object will look something like this.

{
    "notes": "Cumque optio aut sed itaque voluptates molestiae est in. Rerum eos error vel enim eaque est. Quo asperiores possimus dolores et culpa.",
    "ref": "919013",
    "address": {
        "street_1": "1334 S Wolf Summit Road",
        "street_2": "FL 168",
        "city": "West Sister",
        "state": "AZ",
        "zip": "52437",
        "type": "Business",
        "addons": [1, 2, 9, 19]
    },
    "person": {
        "firstname": "Cedrick",
        "lastname": "Schoen",
        "ssn": "745-57-5293",
        "dob": "06/27/1996",
        "phone": "(648) 582-8988",
        "method": 12,
        "addons": [1, 2]
    }
}

Response

Status: 201 Created
Location: https://ezlocate.app/api/orders/4329
{
    "id": 4329,
    "ref": "919013",
    "completed_at": null,
    "created_at": "2019-06-27T00:34:00+0800",
    "entities": [
        {
            "id": 7972,
            "order_id": 4329,
            "created_at": "2019-06-27T00:34:00+0800",
            "addons": [
                {
                    "id": 30376,
                    "status": "pending",
                    "completed_at": null,
                    "created_at": "2019-06-27T00:34:00+0800",
                    "service": {
                        "id": 1,
                        "name": "Verification",
                        "product": "Address Cleansing"
                    }
                },
                {
                    "id": 30377,
                    "status": "pending",
                    "completed_at": null,
                    "created_at": "2019-06-27T00:34:00+0800",
                    "service": {
                        "id": 2,
                        "name": "Geocoding",
                        "product": "Address Cleansing"
                    }
                },
                {
                    "id": 30384,
                    "status": "pending",
                    "completed_at": null,
                    "created_at": "2019-06-27T00:34:01+0800",
                    "service": {
                        "id": 9,
                        "name": "Venue Check",
                        "product": "Address Cleansing"
                    }
                },
                {
                    "id": 30385,
                    "status": "pending",
                    "completed_at": null,
                    "created_at": "2019-06-27T00:34:01+0800",
                    "service": {
                        "id": 19,
                        "name": "PO Box Check",
                        "product": "Address Cleansing"
                    }
                }
            ],
            "properties": {
                "id": 7130,
                "ref": null,
                "updated": null,
                "lat": null,
                "lng": null,
                "street_1": "1334 S Wolf Summit Road",
                "street_2": "FL 168",
                "city": "West Sister",
                "state": "AZ",
                "zip": "52437",
                "pobox": null,
                "created_at": "2019-06-27T00:34:00+0800",
                "formatted_address": "1334 S Wolf Summit Road, FL 168, West Sister, AZ 52437",
                "points": 0,
                "type": "Business",
                "venue": null
            },
            "type": "address",
            "attributes": []
        },
        {
            "id": 7973,
            "order_id": 4329,
            "created_at": "2019-06-27T00:34:01+0800",
            "addons": [
                {
                    "id": 30386,
                    "status": "pending",
                    "completed_at": null,
                    "created_at": "2019-06-27T00:34:01+0800",
                    "service": {
                        "id": 12,
                        "name": "Multi Source EZL Reviewed",
                        "product": "People Finding"
                    }
                }
            ],
            "properties": {
                "id": 2605,
                "portfolio_id": null,
                "ref": null,
                "firstname": "Cedrick",
                "middlename": null,
                "lastname": "Schoen",
                "dob": "1996-06-27",
                "dod": null,
                "created_at": "2019-06-27T00:34:01+0800",
                "ssn": "745-57-5293",
                "addresses": [
                    {
                        "id": 7130,
                        "ref": null,
                        "updated": null,
                        "lat": null,
                        "lng": null,
                        "street_1": "1334 S Wolf Summit Road",
                        "street_2": "FL 168",
                        "city": "West Sister",
                        "state": "AZ",
                        "zip": "52437",
                        "pobox": null,
                        "created_at": "2019-06-27T00:34:00+0800",
                        "formatted_address": "1334 S Wolf Summit Road, FL 168, West Sister, AZ 52437",
                        "points": 0,
                        "type": "Business",
                        "venue": null
                    }
                ],
                "vehicles": [],
                "contacts": [
                    {
                        "id": 4305,
                        "type": "Phone",
                        "value": "(648) 582-8988",
                        "active_at": null,
                        "created_at": "2019-06-27T00:34:01+0800"
                    }
                ],
                "properties": [],
                "active_address": {
                    "id": 7130,
                    "ref": null,
                    "updated": null,
                    "lat": null,
                    "lng": null,
                    "street_1": "1334 S Wolf Summit Road",
                    "street_2": "FL 168",
                    "city": "West Sister",
                    "state": "AZ",
                    "zip": "52437",
                    "pobox": null,
                    "created_at": "2019-06-27T00:34:00+0800",
                    "formatted_address": "1334 S Wolf Summit Road, FL 168, West Sister, AZ 52437",
                    "points": 0,
                    "type": "Business",
                    "venue": null
                }
            },
            "type": "person",
            "attributes": []
        }
    ],
    "completed": false,
    "notes": [
        {
            "id": 3909,
            "content": "Cumque optio aut sed itaque voluptates molestiae est in. Rerum eos error vel enim eaque est. Quo asperiores possimus dolores et culpa.",
            "created_at": "2019-06-27T00:34:00+0800",
            "user": {
                "id": 1,
                "username": "lodev09",
                "created_at": "2019-06-20T00:59:44+0800",
                "name": "Jovanni Lo",
                "avatar_url": "https://www.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?s=48&d=identicon&r=g",
                "url": "https://ezlocate.app/users/system"
            }
        }
    ]
}

Batch locate

Batch locate requires the form data content type header:

Content-Type: multipart/form-data

The API supports comma/pipe delimited files (.csv), .xlsx or similar data files.

You can also supply the mapping parameter to map the columns. The API will try to detect the correct mappings if not supplied.

POST /orders/batches

Parameters

Name Type Description
mapping object The mapping object
file @file The uploaded file.

Response

Status: 201 Created
Location: https://ezlocate.app/api/orders/batches/161
{
    "id": 161,
    "processed": 2,
    "exceptions": [],
    "filename": "BATCH_bg9ylFQ777GYLdnk.csv",
    "mapping": "",
    "completed_at": null,
    "created_at": "2019-06-15T16:23:28+0800"
}

Get a single batch

You can retrieve a single batch that was previously created.

GET /orders/batches/:id

Response

Status: 200 OK
{
    "id": 159,
    "token": "b83d308c7b23c8b8bd407892d3d230b67cbd68ffaa9e5bccd9b0379b71728d9a",
    "filename": "REQUEST_20190614_zPo3m02bFPA8ZSYw.csv",
    "completed_at": "2019-06-13T16:58:04+0800",
    "created_at": "2019-06-14T00:57:10+0800",
    "actor_user": {
        "id": 1,
        "username": "lodev09",
        "created_at": "2019-01-29T01:11:56+0800",
        "name": "Jovanni Lo",
        "avatar_url": "https://www.gravatar.com/avatar/b6b307d6680bb64cb6f1fd99a9fe43fc?s=48&d=identicon&r=g"
    },
    "mapping": null
}

List items from batch

List the items that were created for a batch.

GET /orders/batches/:id/items

Response

Status: 200 OK
[
    {
        "id": 4120,
        "ref": "863334",
        "ref_2": null,
        "completed_at": null,
        "created_at": "2019-06-18T05:13:25+0800",
        "entities": [...],
        "completed": false,
        "notes": []
    },
    {
        "id": 4121,
        "ref": "904916",
        "ref_2": null,
        "completed_at": null,
        "created_at": "2019-06-18T05:13:25+0800",
        "entities": [...],
        "completed": false,
        "notes": []
    }
]

Webhooks

Webhooks allow you to subscribe to certain events on EZ Locate. When one of those events is triggered, we'll send a HTTP POST payload to the webhook's configured URL.

Events

When configuring a webhook, you can choose which events you would like to receive payloads for. You can even opt-in to all current and future events. Only subscribing to the specific events you plan on handling is useful for limiting the number of HTTP requests to your server. You can change the list of subscribed events through the API or UI anytime.

Each event corresponds to a certain set of actions that can happen to your data. For example, if you subscribe to the entities event you'll receive detailed payloads every time an entity is updated, status changed, result received, etc.

The available events are:

Name Description
orders Any time an order is created, deleted, completed or updated.
item_results Any time an order item’s result is updated, deleted and completed.
order_entities Any time an entity is added and updated.
order_notes Any time a note is added to an order.
item_review Any time an order item is done or ready for review
order_person_vehicles Any time a vehicle of a person is added, modified

Payloads

Each event type has a specific payload format with the relevant event information.

In addition to the fields documented for each event, webhook payloads may include the user who performed the event (sender).

Delivery headers

HTTP POST payloads that are delivered to your webhook's configured URL endpoint will contain several special headers:

Header Description
X-EZLocate-Event Name of the event type that triggered the delivery.
X-EZLocate-Delivery A GUID to identify the delivery.
X-EZLocate-Signature The HMAC hex digest of the response body. This header will be sent if the webhook is configured with a secret. The HMAC hex digest is generated using the sha1 hash function and the secret as the HMAC key.

Example delivery

POST /payload HTTP/1.2
X-EZLocate-Delivery: 491e4a14-869f-4d25-92b3-f1a4b500d698
X-EZLocate-Signature: sha1=522d278de0594822b0bf2a9a611c444b8d278688
X-EZLocate-Event: item_results
Content-Type: application/json
{
    "action": "completed",
    "result": {
        "id": "1",
        "data": "EZL1050",
        "description": "Attributes: EZL1050 The sub premise (suite) unit number was added or changed."
    },
    "item": {
        "id": 73,
        "status": "completed",
        "completed_at": "2018-12-15T04:11:22+0800",
        "created_at": "2018-12-15T03:56:14+0800",
        "service": {
            "id": 1,
            "name": "Verification",
            "product": "Address Cleansing"
        }
    },
    "entity": {
        "id": 10,
        "order_id": 10,
        "created_at": "2018-12-15T03:56:14+0800",
        "properties": {
            "id": 2052,
            "updated": 0,
            "lat": null,
            "lng": null,
            "street_1": "502 Bronco Trail",
            "street_2": "",
            "city": "Oak Point",
            "state": "TX",
            "zip": "75068",
            "created_at": "2018-12-15T03:56:14+0800",
            "points": "2"
        },
        "type": "address",
        "attributes": [
            {
                "code": "EZL1050",
                "name": "Sub Premise Number Change",
                "desc": "The sub premise (suite) unit number was added or changed."
            }
        ]
    },
    "order": {
        "id": 10,
        "ref": "14",
        "completed_at": null,
        "created_at": "2018-12-15T03:56:14+0800",
        "notes": []
    }
}

PHP SDK

EZ Locate API v1 is also available in PHP. You can download it here.