User Agreement
The State of Iowa and its agencies, officials and employees make no warranty, representation or guaranty as to the content, accuracy, timeliness or completeness of the information provided herein. The State of Iowa, and the Department
of Administrative Services, Information Technology Enterprise expressly disclaim any and all liability for any loss or injury caused, in whole or in part, by its actions, omissions, or negligence in procuring, compiling or
providing the information contained in this site, including without limitation, liability with respect to any use of this site, or the information contained herein. Reliance on the information contained on this site, is solely
at your own risk. The information may change or be altered at any time.
The following terms of service apply to the interfaces described on this page.
- Users should not make more than 50 requests per hour.
- There is a 10 second time limit for each request. If your query returns too many results you will receive an error.
- Users should cache data for quick reuse, but any cached data should not be held for longer than 14 days.
- Users may NOT cache latitude and longitude data obtained with location searches for any reason.
- Users may NOT reuse latitude and longitude data for any reason other than immediate placement on a map.
Usage of the interfaces described on this page shows understanding and acceptance of these terms.
Recent Changes
09/2012 - The API will now return a maximum of 100 results from a single request.
Users should pass the per_page and page parameters for every request.
The /api/registrant/ service has been updated to better match the /api/search response.
List of Recently Updated Registrants:
You may get the RSS, XML, or JSON view of the recently updated registrants.
Retrieve a Registrant Record:
Using the registrant number from any API search result, you may request:
- https://www.iowasexoffender.gov/api/registrant/(REGISTRANT).xml or
- https://www.iowasexoffender.gov/api/registrant/(REGISTRANT).json
example: https://www.iowasexoffender.gov/api/registrant/01234.json
This method is faster than doing another search, and returns more data.
Search Interfaces:
You may get a RSS, XML, or JSON view of search results.
Accepted parameters for search interfaces (GET/POST) and API criteria:
- lastname - string - search registrants last name*
- firstname - string - search registrants first name*
- isor - numeric string - search by registrant oci number
- gender - 1 character m/f - search registrant gender*
- city - string - search by city*
- surroundingcity - 1 character int (bool) - search nearby matched cities
- state - string - search using full state name*
- stateabbr - string - search using state abbreviation*
- countyname - string - search by county name*
- countyid - string - search by county id (00 - 99)*
- postalcode - numeric string - search by postal code*
- surroundingpostal - 1 character int (bool) - search nearby matched postal codes
- age - numeric string - search by age ( in years +/- 3)
- height - numeric string - search by height* ( in inches +/- 3)
- weight - numeric string - search by weight* (in pounds +/- 20)
- mostwanted - 1 character int (bool) - fetch list of most wanted registrants
- value of 1 = search wanted registrants
- value of 0 or no value set = search all registrants
- By location (address)
search by street, city, state and postal code or
search by city, state and postal code or
search by postal code
- useraddress - street address
- usercity - city
- userstate - state
- userpostal - postal code
- range - REQUIRED - numeric range in miles
- OR By location (lat/lon)
- lat - latitude decimal max 12(10)
- lon - longitude decimal max 12(10)
- range - REQUIRED - numeric range in miles
- updated - string - a string representing the "since" date
- example: "today" - everything updated today ( since 00:00:00 CST )
- example: "yesterday" - everything updated in the last two days ( since 00:00:00 CST yesterday)
- example: "previous sunday" - everything updated since the previous sunday ( since 00:00:00 CST on the previous sunday)
* - These items may be used in a "does not match" lookup, by including an exclamation point as the first character of the criteria.
location search example: https://www.iowasexoffender.gov/api/search/results.json?useraddress=1305%20East%20Walnut%20Street&usercity=Des%20Moines&userstate=Iowa&userpostal=50319&range=1
NOTICE: If you narrow your criteria to one registrant, you will receive additional information, such as conviction, alias, and skin markings.
Results Format
JSON Object and XML Format
- results - number of results
- object.results for JSON
- <response><results>n</results></response> for XML
- records
- object.records for JSON
- <response><records>item NodeList</records></response> for XML
Hash() if JSON, item NodeList if XML
- registrant - registrant id - system identity
- oci - registrant oci number
- last_name - registrant's last name
- first_name - registrant's first name
- middle_name - registrant's middle name
- gender - registrant's gender
- tier - registrant's tier information
- race - registrant's race
- hair_color - registrant's hair color
- eye_color - registrant's eye color
- height_inches - registrant's height, in inches
- weight_pounds - registrant's weight, in pounds
- address - formatted registrant's address
- line_1 - line 1 of registrant's address
- line_2 - line 2 of registrant's address
- city - registrant's city
- state - registrant's state
- postal_code - registrant's postal code
- county - registrant's county of residence
- birthdate - registrant's date of birth
- lat - address latitude
- lon - address longitude
- victim_minors - number of victims who were minors
- victim_adults - number of victims who were adults
- victim_unknown - number of victims who whose age is unknown
- registrant_cluster - number of other registrants living at this address and/or lat and lon
- photo - url to registrant's most recent photo
- convictions - only available when you request 25 or less per page
when 25 or more registrants are returned this will not be present
Array() of Hash()es if JSON, item NodeList if XML
- conviction - conviction text
- registrant_age - age of registrant at time of offense
- Victims - 0 to n
Array() of Hash()es if JSON, item NodeList if XML
- gender - victim gender
- age - victim agegroup
- aliases - only available when you request 25 or less per page
when 25 or more registrants are returned this will not be present
Array() of Hash()es if JSON, item NodeList if XML
- last_name - alias last name
- first_name - alias first name
- middle_name - alias middle name
- skin_markings - only available when you request 25 or less per page
when 25 or more registrants are returned this will not be present
Array() if JSON, item NodeList if XML
- marking value
- distance - distance from searched location in miles
only available when a location (user address or lat/lon) is executed
when non-location lookups occur this will contain the value "Not Available"
- last_changed - date registrant was updated
Paging
To apply a limit and enable paging, pass the "per_page" param and optionally, the "page" param. If not passed, page will default to 1.
- https://www.iowasexoffender.gov/api/search/results.json?updated=today&per_page=20&page=1
3 new items will be added to the response:
- page - numeric, current page of response
- pages - numeric, total number of pages in response
- onpage - numeric, number of rows on the current page (0-Limit)
If you request 25 or fewer items per page, the conviction, alias, most wanted flag, and skin markings will also be returned.
Sorting
To apply a sort order pass the "sort" and "order" params.
- https://www.iowasexoffender.gov/api/search/results.json?updated=today&sort=last_name&order=desc
- You may sort by:
- registrant - registrant id - system identity
- oci - registrant oci number
- last_name - registrant's last name
- first_name - registrant's first name
- middle_name - registrant's middle name
- gender - registrant's gender
- height - registrant's height, in inches
- weight - registrant's weight, in pounds
- address - registrant's address
- birthdate - registrant's date of birth
- Order may be desc or asc
Error Format
JSON Object and XML Format
- results - number of results will show 0
- object.results for JSON
- <response><results>0</results></response> for XML
- records - will be null
- object.records for JSON
- <response><records /></response> for XML
- error - will be present, with a value of 1
- object.error for JSON
- <response><error>1</error></response> for XML
- message - will be present, string error message
- object.message for JSON
- <response><message>string</message></response> for XML
JavaScript API Prototype (BETA)
Javascript Cross Domain IOWA.SOR API
more info
hide info
You may link to or download and modify the JavaScript located here: https://www.iowasexoffender.gov/js/api.js
Example Usage:
<script type="text/javascript" src="https://www.iowasexoffender.gov/js/api.js"></script>
<script type="text/javascript">
var search = new IOWA.SOR();
var criteria = new IOWA.SOR.CRITERIA();
criteria.set('city','des moines'); // any item described in the query section may be used
criteria.limit(10); // records per "page"
criteria.page(1); // default is 1, start on any page
// execute search, passing the service url, criteria, and a callback function
search.execute('http://www.iowasexoffenders.com/api/search/results.json',criteria, function (response) {
// response contains full response object as described in the api info page
});
</script>