{"openapi":"3.0.3","info":{"title":"Offenders.io Sex Offender Registry API","description":"Industry-leading API for searching the National Sex Offender Registry. Covers all 50 US states, territories, and tribes with 70+ fields per state. Features include name search, GIS radius search, extensive mode with state-level enrichment, fuzzy name matching, and batch processing.","version":"2.0.0","contact":{"name":"Offenders.io Support","email":"support@offenders.io","url":"https://offenders.io/contact-us/"},"termsOfService":"https://offenders.io/terms-of-services/","x-logo":{"url":"https://assets.offenders.io/logo.png"}},"servers":[{"url":"https://api.offenders.io","description":"Production"}],"externalDocs":{"description":"Full API Documentation","url":"https://offenders.io/how-to-integrate-with-offender-registry-api-complete-developer-guide/"},"security":[{"apiKey":[]}],"paths":{"/sexoffender":{"get":{"operationId":"searchOffenders","summary":"Search sex offender records","description":"Search the national sex offender registry by name, address, zip code, GPS coordinates, or free-text query. Supports fuzzy matching, extensive mode with state-level enrichment, and GIS radius search.","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string"},"description":"Your API key"},{"name":"firstName","in":"query","schema":{"type":"string"},"description":"First name of offender","example":"John"},{"name":"lastName","in":"query","schema":{"type":"string"},"description":"Last name of offender","example":"Smith"},{"name":"dob","in":"query","schema":{"type":"string","format":"date"},"description":"Date of birth (YYYY-MM-DD)","example":"1990-01-15"},{"name":"city","in":"query","schema":{"type":"string"},"description":"Residence city","example":"San Francisco"},{"name":"state","in":"query","schema":{"type":"string"},"description":"Residence state (full name or 2-letter code)","example":"California"},{"name":"zipcode","in":"query","schema":{"type":"string"},"description":"Residence zip code","example":"94104"},{"name":"lat","in":"query","schema":{"type":"number"},"description":"Latitude for GIS radius search","example":30.967},{"name":"lng","in":"query","schema":{"type":"number"},"description":"Longitude for GIS radius search","example":-91.116},{"name":"radius","in":"query","schema":{"type":"number","default":1,"maximum":100},"description":"Radius in miles for GIS search (default 1, max 100)"},{"name":"mode","in":"query","schema":{"type":"string","enum":["extensive"]},"description":"Set to 'extensive' for alias search, state-level enrichment, and additional response fields (aliases, locations, stateData). +$0.05/call."},{"name":"fuzzy","in":"query","schema":{"type":"boolean"},"description":"Enable fuzzy name matching — handles typos, partial names, nicknames, hyphenated names, and address abbreviations. +$0.02/call."},{"name":"q","in":"query","schema":{"type":"string"},"description":"Free-text search across names, aliases, address, city, and zip code. Use with fuzzy=true instead of firstName/lastName.","example":"John Smith San Francisco"},{"name":"prefixMatch","in":"query","schema":{"type":"string","enum":["firstName","lastName"]},"description":"Enable prefix matching on the specified name field"},{"name":"uuid","in":"query","schema":{"type":"string"},"description":"Pull a single record by UUID"},{"name":"personUuid","in":"query","schema":{"type":"string"},"description":"Pull a single record by Person UUID"},{"name":"faceId","in":"query","schema":{"type":"string"},"description":"Face ID from Facial Search API"},{"name":"createdAtStart","in":"query","schema":{"type":"string","format":"date"},"description":"Filter by first appearance in system (YYYY-MM-DD)"},{"name":"createdAtEnd","in":"query","schema":{"type":"string","format":"date"},"description":"Filter by first appearance in system (YYYY-MM-DD)"},{"name":"updatedAtStart","in":"query","schema":{"type":"string","format":"date"},"description":"Filter by last update in system (YYYY-MM-DD)"},{"name":"updatedAtEnd","in":"query","schema":{"type":"string","format":"date"},"description":"Filter by last update in system (YYYY-MM-DD)"},{"name":"page","in":"query","schema":{"type":"integer","default":1},"description":"Page number for GIS search pagination. Each page is billed as a separate API call."}],"responses":{"200":{"description":"Successful search","content":{"application/json":{"schema":{"type":"object","properties":{"offenders":{"type":"array","items":{"$ref":"#/components/schemas/Offender"}},"page":{"type":"integer","description":"Current page (GIS only)"},"totalPages":{"type":"integer","description":"Total pages (GIS only)"}}}}}},"400":{"description":"Bad request — missing or invalid parameters"},"401":{"description":"Unauthorized — missing or invalid API key"},"405":{"description":"Method not allowed"}}}}},"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"query","name":"key","description":"API key — get one free at https://offenders.io/pricing/"}},"schemas":{"Offender":{"type":"object","properties":{"name":{"type":"string","description":"Full name","example":"JOHN M DOE"},"firstName":{"type":"string","example":"JOHN"},"lastName":{"type":"string","example":"DOE"},"middleName":{"type":"string"},"aliases":{"type":"array","description":"Known aliases (Extensive Mode only)","items":{"$ref":"#/components/schemas/Alias"}},"dob":{"type":"string","format":"date-time","nullable":true,"example":"1990-01-15T00:00:00.000Z"},"address":{"type":"string","example":"123 MAIN ST"},"city":{"type":"string","example":"RICHMOND"},"state":{"type":"string","example":"Virginia"},"zipcode":{"type":"string","example":"23219"},"locations":{"type":"array","description":"All official addresses (Extensive Mode only)","items":{"$ref":"#/components/schemas/Location"}},"sex":{"type":"string","example":"Male"},"age":{"type":"string","example":"35"},"eyeColor":{"type":"string","example":"Brown"},"hairColor":{"type":"string","example":"Black"},"height":{"type":"string","example":"5 ft 10 in"},"weight":{"type":"string","example":"180 lbs."},"race":{"type":"string","example":"White"},"ethnicity":{"type":"string","example":"Non-Hispanic"},"marks":{"type":"string","description":"Tattoos, scars, marks","example":"TAT R ARM"},"riskLevel":{"type":"string","example":"Tier 3"},"crime":{"type":"string","example":"SEXUAL ASSAULT (01/15/2005)"},"registrationDate":{"type":"string","format":"date-time","nullable":true},"offenderUrl":{"type":"string","format":"uri","description":"URL to source state registry page"},"offenderImageUrl":{"type":"string","format":"uri","description":"Profile image URL from state registry"},"offenderImageUrlR2":{"type":"string","format":"uri","description":"Cached profile image URL"},"lat":{"type":"number","description":"Latitude (-1 if unknown)","example":37.5407},"lng":{"type":"number","description":"Longitude (-1 if unknown)","example":-77.436},"jurisdiction":{"type":"string","description":"State/jurisdiction code","example":"VA"},"isAbsconder":{"type":"boolean","nullable":true},"isPredator":{"type":"boolean","nullable":true},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time","nullable":true},"uuid":{"type":"string","format":"uuid"},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}},"stateData":{"$ref":"#/components/schemas/StateData"}}},"Alias":{"type":"object","properties":{"prefix":{"type":"string","nullable":true},"givenName":{"type":"string"},"middleName":{"type":"string","nullable":true},"surName":{"type":"string"},"suffix":{"type":"string","nullable":true}}},"Location":{"type":"object","properties":{"type":{"type":"string","example":"RES (Primary)"},"address":{"type":"string"},"city":{"type":"string"},"county":{"type":"string"},"state":{"type":"string"},"zipcode":{"type":"string"}}},"Source":{"type":"object","properties":{"id":{"type":"string","example":"nsopw"},"name":{"type":"string","example":"National Sex Offender Public Website"},"url":{"type":"string","format":"uri"}}},"StateData":{"type":"object","description":"State-specific registry data (Extensive Mode only). Availability varies by state.","properties":{"stateOffenderId":{"type":"string"},"status":{"type":"string","example":"Active"},"designation":{"type":"string","example":"Sexually Violent Offender"},"registrationEnds":{"type":"string"},"verificationRequirement":{"type":"string"},"lawAgency":{"type":"string"},"offenses":{"type":"array","items":{"type":"object","properties":{"offense":{"type":"string"},"convictionDate":{"type":"string"},"releaseDate":{"type":"string"},"statute":{"type":"string"},"victimAge":{"type":"string"},"victimSex":{"type":"string"},"jurisdiction":{"type":"string"},"caseNumber":{"type":"string"}}}},"vehicles":{"type":"string"},"names":{"type":"array","items":{"type":"string"}},"photos":{"type":"array","items":{"type":"object","properties":{"photoId":{"type":"string","nullable":true},"isCurrent":{"type":"string"},"datePosted":{"type":"string"}}}}}}}}}