Resell Scan
Guide for developers

Set up and use API access

Integrate Resell Scan through the available REST API. You create an API key, use bearer auth, and work with Collections, Products, and batch analyses.

Duration: approx. 15 minDifficulty: developerLast updated: May 15, 2025

What the API covers

The API provides access to Collections, Products, manual fields, and batch analyses. It does not replace the AI inventory endpoint: that has its own URLs and header.

1

Create an API key in the dashboard

Open “Developer” -> “API access” and create a new API key with name, optional description, and optional expiration date.

The full key is shown only right after creation.
Existing keys later show only prefix, status, usage, and permissions.
Keys can be disabled or deleted.
The page links directly to the API documentation at /api/v1/docs.

Store the key immediately

Store the API key in a password manager or as a server environment variable. Do not put it in a public repository.
2

Authenticate requests with bearer token

Send the API key in every request in the Authorization header. The API responds in JSON format.

Fetch Collections with cURLbash
curl https://app.resell-scan.de/api/v1/collections \
  -H "Authorization: Bearer $RESELL_SCAN_API_KEY" \
  -H "Content-Type: application/json"
Fetch examplets
const response = await fetch('https://app.resell-scan.de/api/v1/collections?limit=20', {
  headers: {
    Authorization: `Bearer ${process.env.RESELL_SCAN_API_KEY}`,
    'Content-Type': 'application/json',
  },
});

if (!response.ok) {
  throw new Error(`Resell Scan API error: ${response.status}`);
}

const data = await response.json();

Rate limits and permissions

Each API key has permissions for resources such as collections or products. Missing permissions return 403. Too many requests return 429.
3

Fetch Collections and Products

Usually start with Collections, choose a collectionId, and then load Products or manual fields.

GET/api/v1/collections

Fetch Collections, optionally with page, limit, and search.

GET/api/v1/collections/{collectionId}

Fetch one Collection in detail.

GET/api/v1/collections/{collectionId}/products

Fetch Products in a Collection, optionally with include_images and date filters.

GET/api/v1/collections/{collectionId}/manual-fields

Fetch manual fields for a Collection.

Fetch Products with imagesbash
curl "https://app.resell-scan.de/api/v1/collections/{collectionId}/products?include_images=true&limit=50" \
  -H "Authorization: Bearer $RESELL_SCAN_API_KEY"
4

Create or analyze Products

For existing Products, start /products/analyze. For new Products with images, use /products/createAndAnalyze.

POST/api/v1/products

Create Products without analysis.

POST/api/v1/products/analyze

Start analysis for existing Product IDs.

POST/api/v1/products/createAndAnalyze

Create Products with images and analyze them directly.

Create and analyze new Productsjson
{
  "collectionId": "00000000-0000-0000-0000-000000000000",
  "products": [
    {
      "images": [
        {
          "url": "https://example.com/product-front.jpg",
          "fileName": "product-front.jpg",
          "removeBackground": true
        }
      ],
      "manual_fields": {
        "purchasePrice": 12.5
      }
    }
  ]
}

Required fields also apply through the API

Manual required fields for the Collection must be included in the request. If required fields are missing, the API responds with a validation error.
5

Fetch status and results

After starting, you receive a batchId. Use it to fetch status and later the results.

GET/api/v1/products/analyze/{batchId}

Fetch status for a batch analysis.

GET/api/v1/products/analyze/{batchId}/results

Fetch results for a batch analysis.

Use webhooks for completed batches

If you do not want to poll, also set up a webhook for analysis.completed. Then your system is notified once a complete batch has finished.

At the end of this guide you can:

create and secure an API keyauthenticate requests with bearer tokenfetch Collections and Productscreate Products through the APIstart batch analysesfetch status and results by batchId
Open API docs