Monitoring API · v1.0.0

Location monitoring

Watch a radius around an address, with sex-offender coverage live and criminal records coming.

Livehttps://api.offendersearch.appSandboxhttps://sandbox.offendersearch.app

Watch a radius around an address

A location monitor stands watch over a place rather than a person. You give it a centre and a radius, and each day it evaluates which records fall inside that radius — alerting you as records move in (new), change while inside it (changed), or move out or come off a registry (removed).

A location monitor
{
  "product": "sex-offender",
  "type": "location",
  "location": { "address": "100 Main St, Austin, TX 78701",
                "lat": 30.2711, "lng": -97.7437, "radiusMiles": 1 },
  "channels": { "email": "alerts@example.com" }
}

The radius is evaluated around lat/lng, so send the coordinates. On its own, a ZIP code or “City, ST” as address is placed at its centre; a street address without coordinates is refused with a 422, so a monitor is never created that cannot be evaluated. address is stored with the monitor and names it on a removed line of the alert email when you set no label. radiusMiles defaults to 3 and accepts any value above 0 up to 100.

By coordinates
{
  "product": "sex-offender",
  "type": "location",
  "location": { "lat": 30.2711, "lng": -97.7437, "radiusMiles": 2 },
  "channels": { "email": "alerts@example.com", "webhookUrl": "https://example.com/hooks/os" }
}

The LocationCriteria object — location monitor request fields

The centre and radius a location monitor watches: location on POST /v1/monitors. Returned on the monitor as location.

Returned or accepted by POST /v1/monitors.

FieldTypeDescription
address
optional
string or nullA street address or area, stored with the monitor as you sent it (trimmed). On its own, a ZIP code or "City, ST" is placed at its centre; a street address must come with lat and lng or the request is a 422. The radius is evaluated around the coordinates.
Example "100 Main St, Austin, TX 78701"
lat
optional
number or nullLatitude of the centre, in decimal degrees.
Example 30.2711
lng
optional
number or nullLongitude of the centre, in decimal degrees.
Example -97.7437
radiusMiles
optional · default 3
numberRadius in miles. Greater than 0 and at most 100; outside that range is a 422.
Example 1

Coverage

producttype: "location"
sex-offenderLive. Sex-offender location monitoring is available today.
criminalComing soon. See below.

Criminal location monitoring is coming soon

Criminal-record location monitoring will arrive as location coverage across criminal records expands. It is documented here so you can plan for it, but it is not billable yet. A POST /v1/monitors with product: "criminal" and type: "location" does not error — it returns a not_yet_available acknowledgement, so your integration can handle the transition without special-casing an error path.

200 OK — not yet available
// POST /v1/monitors  {"product":"criminal","type":"location", …}
{
  "status": "not_yet_available",
  "message": "Location monitoring for criminal records is coming soon — it activates as location coverage across criminal records expands. Person monitoring is available for criminal records today."
}
The response is a 200 acknowledgement, not a 4xx. No monitor is created and nothing is billed. Treat status: "not_yet_available" as a signal to hold that watch until the product is live.

The address you register

The centre of a location monitor is the subscriber’s own input. It is stored encrypted at rest and isolated to your account, and it is used to evaluate proximity each day and to name the monitor in its own alerts. See Access, keys & data handling.

Product overview