Watch Scanner API

AI-powered watch identification from images

Introduction

The Watch Scanner API provides AI-powered watch identification from image URLs. Send an image, get detailed information about the watch including brand, model, reference number, similar models, and pricing estimates.

Base URL: https://identification.nepita.io

Authentication

All API requests require an API key. Include your API key in the request body:

{
  "api_key": "your-32-character-api-key",
  "image_url": "https://example.com/watch.jpg"
}

Contact the API administrator to obtain your API key.

Endpoints

POST /scan

Identify a watch from an image URL.

Request Body

Field Type Required Description
image_url string (URL) Yes Direct URL to watch image (JPEG, PNG, WebP)
api_key string Yes Your API authentication key (32+ chars)
pricing integer No Include pricing estimates (1 = yes, 0 = no). Default: 1

Example Request

curl -X POST https://identification.nepita.io/scan \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "https://example.com/rolex-submariner.jpg",
    "api_key": "8M4pvjbPVtyuL3DUvPf9GnOS0xm1RkTS",
    "pricing": 1
  }'

GET /health

Check API health status.

Example Request

curl https://identification.nepita.io/health

Example Response

{
  "status": "healthy",
  "timestamp": "2024-01-15T10:30:00Z",
  "service": "Watch Scanner API",
  "supabase": "connected"
}

Response Format

Successful responses return a JSON object with the following structure:

Field Type Description
status string "success" or "error"
session_id string (UUID) Unique identifier for this scan
timestamp string (ISO 8601) When the scan was processed
input_url string The image URL you provided
results object Identification results (see below)
processing_time_ms integer Processing time in milliseconds

Results Object

Field Type Description
detected_brand string Watch brand (e.g., "Rolex", "Patek Philippe")
detected_model string Model reference (e.g., "116610LN")
detected_collection string Collection name (e.g., "Submariner")
additional_comments string Brief descriptive notes
top_tokens array[string] Key features extracted from image
matches array[object] Similar watches from database
pricing object Market price estimates (USD, EUR, RMB)
similar_model_N_* various Top 3 similar models (reference, image, similarity)

Examples

Successful Response

{
  "status": "success",
  "session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "timestamp": "2024-01-15T10:30:45.123Z",
  "input_url": "https://example.com/watch.jpg",
  "results": {
    "detected_brand": "Rolex",
    "detected_model": "116610LN",
    "detected_collection": "Submariner",
    "additional_comments": "Black dial, ceramic bezel",
    "top_tokens": ["rolex", "submariner", "ceramic", "black", "automatic"],
    "pricing": {
      "price_min_usd": 12000,
      "price_median_usd": 14500,
      "price_max_usd": 17000,
      "price_min_eur": 11000,
      "price_median_eur": 13300,
      "price_max_eur": 15600,
      "price_min_rmb": 88000,
      "price_median_rmb": 106000,
      "price_max_rmb": 125000
    },
    "similar_model_1_reference": "116610LN",
    "similar_model_1_image": "https://...",
    "similar_model_1_similarity": 0.95
  },
  "processing_time_ms": 3450
}

Tip: Pricing is computed in real-time based on current market data. Allow an additional 5-10 seconds for pricing when enabled.

Error Response

{
  "status": "error",
  "message": "Invalid API key",
  "session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "timestamp": "2024-01-15T10:30:45.123Z"
}

Try It Out

Use the interactive API explorer below to test endpoints directly from your browser: