Developer Documentation

SafeOrStolen API Documentation

Integrate stolen item verification directly into your applications, websites, and business workflows with our comprehensive REST API.

Overview

The SafeOrStolen API allows developers, businesses, and enterprises to integrate stolen item verification directly into their applications, websites, and workflows. Our REST API provides programmatic access to the same databases that power our web and mobile applications, including NCIC, GSMA, carrier blacklists, BikeIndex, NICB, and over 100 other data sources worldwide.

Perfect for marketplace platforms, point-of-sale systems, pawn shops, dealerships, and any business that needs to verify items are not stolen before purchase or accepting them as trade-ins. The API supports verification of phones using IMEI numbers, vehicles using VIN numbers, electronics using serial numbers, bicycles, firearms, and more.

API access is included with Professional plans at twenty-nine dollars and ninety-nine cents per month and Enterprise plans at ninety-nine dollars per month. Enterprise customers receive unlimited API calls, dedicated support, and custom integration assistance from our engineering team.

Authentication

All API requests require authentication using an API key. Include your API key in the Authorization header using Bearer token authentication. API keys are generated from your account dashboard and should be kept secure at all times. Never commit API keys to public repositories or expose them in client-side code where users can access them.

Authorization: Bearer YOUR_API_KEY_HERE

Your API key provides access to all verification endpoints based on your subscription tier. Professional plans include one thousand API calls per day, while Enterprise plans have unlimited usage with no rate limiting whatsoever.

Base URL

All API requests should be made to our secure HTTPS endpoint. We do not support unencrypted HTTP connections for security reasons.

https://api.safeorstolen.com/v1

POST /verify/imei

Phone Verification

Verify if a phone IMEI number is stolen, blacklisted, or reported lost. This endpoint checks carrier blacklists, the GSMA Device Registry, insurance claims databases, and law enforcement databases across multiple countries. Returns comprehensive device information, blacklist status, carrier lock status, and any theft reports associated with the device.

Request Example

POST /v1/verify/imei
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY

{
  "imei": "355366077259891",
  "check_blacklist": true,
  "check_stolen": true
}

Response Example

{
  "status": "clean",
  "confidence": 95,
  "imei": "355366077259891",
  "device": {
    "manufacturer": "Apple",
    "model": "iPhone 14 Pro",
    "color": "Space Black"
  },
  "blacklist_status": "not_blacklisted",
  "stolen_reports": 0,
  "sources_checked": 47,
  "timestamp": "2026-02-01T18:30:00Z"
}

POST /verify/vin

Vehicle Verification

Check vehicle VIN for theft records, salvage titles, active recalls, and odometer fraud. This endpoint queries NMVTIS (National Motor Vehicle Title Information System), state DMV databases, NICB (National Insurance Crime Bureau), and insurance claim history. Returns comprehensive vehicle history including theft status, title brands, accident history, and safety recalls.

Request Example

POST /v1/verify/vin
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY

{
  "vin": "1HGBH41JXMN109186",
  "check_nmvtis": true,
  "check_recalls": true
}

Response Example

{
  "status": "clean",
  "confidence": 98,
  "vin": "1HGBH41JXMN109186",
  "vehicle": {
    "year": 2021,
    "make": "Honda",
    "model": "Accord",
    "trim": "EX-L"
  },
  "stolen": false,
  "salvage": false,
  "odometer_fraud": false,
  "recalls": [],
  "sources_checked": 23,
  "timestamp": "2026-02-01T18:30:00Z"
}

POST /verify/serial

Electronics Verification

Verify electronics, tools, appliances, cameras, and other items using serial numbers. Searches law enforcement databases, manufacturer registries, insurance claims, and user-reported stolen items. Supports laptops, tablets, power tools, cameras, gaming consoles, musical instruments, and virtually any item with a unique serial number.

Request Example

POST /v1/verify/serial
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY

{
  "serial": "C02XG0FDH7JY",
  "device_type": "laptop",
  "manufacturer": "Apple"
}

Response Example

{
  "status": "clean",
  "confidence": 87,
  "serial": "C02XG0FDH7JY",
  "device_type": "laptop",
  "manufacturer": "Apple",
  "stolen_reports": 0,
  "sources_checked": 12,
  "timestamp": "2026-02-01T18:30:00Z"
}

Rate Limits

API rate limits are based on your subscription tier to ensure fair usage for all customers:

  • Free tier: Ten requests per day through the web interface only, no API access
  • Starter plan: One hundred requests per day at four dollars and ninety-nine cents per month
  • Professional plan: One thousand requests per day at twenty-nine dollars and ninety-nine cents per month
  • Enterprise plan: Unlimited requests at ninety-nine dollars per month

Rate limits reset at midnight UTC. If you exceed your limit, the API returns a 429 Too Many Requests status code. Upgrade to Enterprise for unlimited API access with no rate limiting.

Error Codes

The API uses standard HTTP status codes to indicate the success or failure of requests:

  • 200 OK: Request successful, verification complete
  • 400 Bad Request: Invalid parameters, check IMEI or VIN format
  • 401 Unauthorized: Invalid or missing API key
  • 429 Too Many Requests: Rate limit exceeded, upgrade plan or wait
  • 500 Internal Server Error: Server error, contact support

All error responses include a descriptive message in the response body explaining what went wrong and how to fix the issue.

Code Examples

cURL

curl -X POST https://api.safeorstolen.com/v1/verify/imei \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"imei":"355366077259891"}'

Python

import requests

headers = {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
}

data = {'imei': '355366077259891'}

response = requests.post(
    'https://api.safeorstolen.com/v1/verify/imei',
    headers=headers,
    json=data
)

result = response.json()
print(f"Status: {result['status']}")
print(f"Confidence: {result['confidence']}%")

JavaScript (Node.js)

const response = await fetch(
  'https://api.safeorstolen.com/v1/verify/imei',
  {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      imei: '355366077259891'
    })
  }
);

const result = await response.json();
console.log('Status:', result.status);
console.log('Confidence:', result.confidence + '%');

Getting Your API Key

Follow these steps to get started with the SafeOrStolen API:

  1. Sign up for a Professional plan at twenty-nine dollars and ninety-nine cents per month or Enterprise plan at ninety-nine dollars per month
  2. Navigate to your Dashboard after logging in
  3. Click on "API Keys" in the sidebar menu
  4. Click "Generate New API Key"
  5. Copy your API key immediately as it is only shown once
  6. Store your API key securely and treat it like a password

If you lose your API key, you can revoke it and generate a new one from the dashboard. For security best practices, we recommend rotating API keys every ninety days.

API Support

Need help with API integration? Our dedicated developer support team is here to assist you with any questions or issues:

  • Email: api@safeorstolen.com
  • Documentation: docs.safeorstolen.com
  • Enterprise Support: Dedicated Slack channel for Enterprise customers

Enterprise customers receive priority support with guaranteed response times within four hours during business hours.

Ready to Integrate?

Start verifying stolen items programmatically with our comprehensive API.