Skip to content
API reference/Analyze an item
API reference

Analyze an item

Identify a product, assess its condition, and estimate its resale value from photos.

POST/v1/analyze1 credit / analysis

Analyze is synchronous: the request returns a complete identification and resale pricing result. Supply photos of one item, with optional context to help identify it.

Endpoint

text
https://api.platform.sellraze.com/v1/analyze

Headers

HeaderRequiredDescription
AuthorizationYesBearer YOUR_API_KEY. See Authentication.
Content-TypeYesapplication/json.
Idempotency-KeyNoA nonempty key, at most 256 bytes, without surrounding whitespace. Reuse for retries of the same analysis.

Request body

FieldTypeDescription
imagesarray · required1–6 image objects. All photos must show the same item.
images[].urlstring · requiredPublic HTTPS image URL, at most 4,096 characters. See image requirements.
hintstring · optionalContext for identification, such as model, size, or visible details. At most 500 UTF-8 bytes.
currencystring · optionalUSD. Defaults to USD; other currencies are not currently supported.

The JSON request body must not exceed 32 KiB. Send image URLs, not file uploads or base64-encoded image data.

Terminal
curl https://api.platform.sellraze.com/v1/analyze \
  --request POST \
  --header "Authorization: Bearer $SELLRAZE_API_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: item-501-analysis-001' \
  --data '{
    "images": [{ "url": "https://example.com/item-front.jpg" }],
    "hint": "Levi’s 501 jeans, size 32x30",
    "currency": "USD"
  }'

Replace the example image URL and use a new idempotency key for each new analysis.

Response

A complete analysis returns 200 OK with item, pricing, and usage. The X-Request-ID response header identifies this request attempt.

Item

FieldTypeDescription
item.namestringDescriptive product name.
item.brandstring or nullIdentified brand, or null when unavailable.
item.conditionstring or nullnew, like-new, good, fair, or null.
item.condition_notesstring or nullFree-form description of the item’s condition.
item.defectsstring arrayVisible defects. Returns [] when empty.

Pricing

FieldTypeDescription
pricing.currencystringUSD.
pricing.suggested_priceintegerSuggested listing price in minor units. 3500 means $35.00.
pricing.confidencestringhigh, medium, or low.
pricing.basisstringsold_comps or engine.
pricing.sold_compsarrayAccepted sold comparables actually used for pricing. Empty for engine pricing.

Sold comparables

Each object in pricing.sold_comps contains:

FieldTypeDescription
namestringOriginal source listing title.
marketplacestringebay.
sold_priceintegerSale price in the currency’s minor units.
currencystringUSD.
sold_atstringSale date in YYYY-MM-DD format. No time of day is implied.
source_conditionstring or nullOriginal marketplace wording, such as Pre-Owned.
listing_urlstringHTTPS link to the source listing.

Usage

FieldTypeDescription
usage.credits_chargedinteger1 for a successful new analysis; 0 for a completed idempotent replay.

See the quickstart response example for a complete JSON response.

Pricing fallback

If accepted sold comparables are unavailable, a complete result can use engine pricing:

JSON
{
  "currency": "USD",
  "suggested_price": 3500,
  "confidence": "low",
  "basis": "engine",
  "sold_comps": []
}

This example represents the pricing object only. An engine-based result is a successful analysis and costs one credit. Treat its price as a lower-confidence estimate.

Errors and retries

Errors return a problem JSON body with a machine-readable code. See Handling errors for the status codes and recovery actions.