DOEMAP / DEVELOPERS
Research API
Search public missing-person and unidentified-person records, inspect public case evidence, and retrieve cross-source research leads.
GETTING STARTED
Authenticate requests
Create a key from the Developer page after Developer Access is enabled. Send it on every request using the Bearer scheme. Keep the key on a server; never embed it in a website, mobile app, or URL.
curl "https://api.doemap.site/api/cases?recordType=unidentified&limit=25" \
-H "Authorization: Bearer YOUR_DEVELOPER_API_KEY"Keys are shown only once. You can create up to five active keys per account and revoke keys from API keys & usage.
REFERENCE
Available endpoints
CASES
Search case records
GET /api/cases
Returns a paginated data array with total, pagination, source availability, and aggregate stats.
recordTypemissing or unidentifiedsourcenamus or doe-networksexfemale, male, or unknownstatusmissing, unidentified, solved, or unknownstateState name or code matching the case record; searches last-contact or found statefoulPlayOnlytrue to filter for foul-play indicatorsyearMin, yearMaxInclusive year bounds for last-contact or found dateageMin, ageMaxInclusive age bounds, from 0 to 120dateFrom, dateToDate bounds; use ISO date or datetime valuescenterLat, centerLng, radiusMilesFilter approximate mapped locations; radius is 1–5,000 milespage, limitPositive integers; limit is capped at 15,000curl "https://api.doemap.site/api/cases?source=namus&sex=female&state=TX&page=1&limit=25" \
-H "Authorization: Bearer YOUR_DEVELOPER_API_KEY"CASE DETAILS
Evidence and Doe Network details
GET /api/cases/evidence requires caseId, caseNumber, source, and recordType.
GET /api/cases/doe-details requires caseId, caseNumber, and recordType. This route is for Doe Network records.
curl "https://api.doemap.site/api/cases/evidence?caseId=namus-123&caseNumber=123&source=namus&recordType=unidentified" \
-H "Authorization: Bearer YOUR_DEVELOPER_API_KEY"The response provides normalized evidence fields and a reportedDetails array of additional publicly reported source fields (label and value). Fields not published by the source are omitted; use the case record's sourceUrl to verify current information.
{
"physicalDescription": "…",
"circumstances": "…",
"reportedDetails": [
{ "label": "Investigating agencies · Name", "value": "…" }
]
}RESEARCH LEADS
Find cross-source matches
GET /api/matches requires a caseId query parameter. The response includes ranked candidates and a note describing the comparison.
curl "https://api.doemap.site/api/matches?caseId=namus-123" \
-H "Authorization: Bearer YOUR_DEVELOPER_API_KEY"Ranked suggestions are research leads, not identifications. Verify any lead with the original agency or source.
RELATED COVERAGE
Look up related news
GET /api/stories/news requires caseNumber and source. The optional state accepts a 2–3 letter state code.
curl "https://api.doemap.site/api/stories/news?caseNumber=123&source=namus&state=TX" \
-H "Authorization: Bearer YOUR_DEVELOPER_API_KEY"Returns an articles array with title, URL, domain, and date seen when available. News results are provided by GDELT and may be empty.
BILLING AND OPERATION
Usage, limits, and errors
Developer Access is $29.99 USD per month and includes 100,000 requests per account per UTC month, shared across all active API keys. Responses include X-API-Usage-Limit, X-API-Usage-Remaining, and X-API-Usage-Reset headers.
Requests are also subject to endpoint-specific short-window rate limits. Common responses include 400 for invalid parameters, 401 for missing or invalid credentials, 403 when Developer Access is inactive, 429 when a request limit is reached, and 502 when a public data source is unavailable.
Doemap is an independent research tool. Public records may be incomplete or out of date, and locations may be approximate. Confirm information with the original sources; do not use proximity or match rankings as confirmation of identity.