Back to ITADpricing

API Documentation

Access real-time refurbished device pricing data programmatically. Available on Professional and Business plans.

Authentication

All API requests require an API key passed via the X-API-Key header. You can generate an API key from your dashboard.

Header
X-API-Key: itad_live_a1b2c3d4e5f6...

Base URL

URL
https://itadpricing.com/api/v1

Endpoints

GET/api/v1/search

Search refurbished device prices across all sources.

Query Parameters

qstring (required)Search query, minimum 3 characters (e.g. "iPhone 15 Pro")
countrystringCountry code filter (e.g. "NL", "DE", "UK"). Default: "all"
gradestringGrade filter (e.g. "Excellent", "Very Good", "Good", "Fair"). Default: "all"
limitintegerMax results to return (1-500). Default: 100

Response Schema

JSON
{
  "products": [
    {
      "model": "Apple iPhone 15 Pro 256GB",
      "brand": "Apple",
      "category": "phones",
      "grade": "Very Good",
      "consumer_price": 849.00,
      "currency": "EUR",
      "country": "NL",
      "source": "Certified Marketplace NL",
      "in_stock": true,
      "last_seen": "2026-04-01"
    }
  ],
  "meta": {
    "query": "iPhone 15 Pro",
    "country": "all",
    "grade": "all",
    "total": 142,
    "plan": "business",
    "requests_today": 15,
    "daily_limit": 10000
  }
}

Code Examples

cURL

bash
curl -H "X-API-Key: itad_live_YOUR_KEY_HERE" \
  "https://itadpricing.com/api/v1/search?q=iPhone+15+Pro&country=NL&limit=50"

Python

python
import requests

response = requests.get(
    "https://itadpricing.com/api/v1/search",
    headers={"X-API-Key": "itad_live_YOUR_KEY_HERE"},
    params={"q": "iPhone 15 Pro", "country": "NL", "limit": 50},
)
data = response.json()

for product in data["products"]:
    print(f"{product['model']}: €{product['consumer_price']}")

JavaScript

javascript
const response = await fetch(
  "https://itadpricing.com/api/v1/search?q=iPhone+15+Pro&country=NL&limit=50",
  { headers: { "X-API-Key": "itad_live_YOUR_KEY_HERE" } }
);
const data = await response.json();

data.products.forEach((product) => {
  console.log(`${product.model}: €${product.consumer_price}`);
});

Webhooks

Business plan users can register webhook endpoints to receive real-time notifications when price alerts trigger. Webhooks are signed with HMAC-SHA256 for verification.

Signature verification

Every webhook request includes an X-ITADpricing-Signature header. To verify: compute SHA256(your_webhook_secret) to get your signing key, then check HMAC-SHA256(signing_key, request_body) matches the signature value.

Event types

EventDescription
alert.triggeredA price alert condition was met
price.updatedTracked product price changed
product.newNew product added to catalog

Delivery includes 3 automatic retries with exponential backoff. Endpoints that fail 10 consecutive times are automatically disabled.

Rate Limits

PlanRequests/day
Professional1,000
Business10,000

Error Codes

CodeMeaning
400Invalid query. Check your parameters
401Missing or invalid API key
403API access not available on your plan
429Daily rate limit exceeded
500Server error. Try again later

Ready to get started?

Generate your API key from the dashboard and start querying prices in minutes.

Get Your API Key