List datasets

get/v1/datasets

Returns a page of the datasets that belong to the organization behind your private key, newest first, with live item counts for each one.

Use it to find a datasetId before calling any other dataset endpoint, or to build a catalogue picker in your own tooling.

Good to know

  • Rows are a summary: config, metadata and autoPublish are omitted. Call Retrieve dataset for the full record.
  • The items block is computed on every request from the catalogue and the ingest queue, so it is accurate but adds a little latency on very large accounts.
  • page and limit are parsed as integers. A value that does not parse (for example page=abc) is rejected rather than defaulted. Values above 200 for limit are rejected, not clamped.
  • The pagination block on this endpoint carries page, limit, total and hasMore only; there is no pages field.
Private keyapi.v1.datasets.listNo demo

Query parameters

2
pageinteger

1-based page number. Must be an integer of at least 1.

default: 1min: 1
limitinteger

Datasets per page. Must be an integer between 1 and 200; larger values are rejected.

default: 10min: 1max: 200

Response

200A page of datasets.
array<DatasetSummary>required

Datasets on this page, newest first.

datasetIdstring (uuid)required

Unique id of the dataset.

statusstringrequired

Lifecycle state of a dataset. - draft — newly created; not visible to search, chat or the widget. - active — live. Any number of datasets can be active at once. - archived — parked. Data is kept, items and sources are switched off.

One ofdraftactivearchived
default: "draft"
namestringrequired

Display name.

descriptionstring

Free-text description. May be an empty string.

targetGenderstringnullablerequired

The dataset's config.targetGender, or null when detection is on.

One ofmenswomens
createdAtstring (date-time)required

When the dataset was created.

updatedAtstring (date-time)required

When the dataset record was last written.

DatasetItemCountsrequired

Live counts of the records inside a dataset, split between processed items and the ingest queue.

DatasetListPaginationrequired

Page metadata returned by *List datasets*. Unlike the shared Pagination shape it has no pages field.

pageintegerrequired

The page that was returned (1-based).

e.g. 1
limitintegerrequired

Page size that was applied.

e.g. 10
totalintegerrequired

Total datasets in the organization.

e.g. 2
hasMorebooleanrequired

Whether a following page exists.

e.g. false

Errors

21

Every error is JSON with a single error string unless noted. Match on the status code; the message is for humans.

401
Organization not found. Please check the organizationId.

The organization that owns the key no longer exists.

422
Page must be a positive integer greater than or equal to 1.

page is below 1 or is not an integer (including values that fail to parse).

422
Limit must be a positive integer greater than or equal to 1.

limit is below 1 or is not an integer (including values that fail to parse).

422
Limit cannot exceed 200 datasets per request.

limit is greater than 200.

curl -X GET "https://stylor.ai/api/v1/datasets" \
  -H "Authorization: Bearer $STYLOR_API_KEY"
Response · 200
{
  "datasets": [
    {
      "datasetId": "c9b3c6c0-9b0f-4f42-bf3f-2b7a6b1b9d31",
      "status": "active",
      "name": "Spring 2026",
      "description": "Women's spring drop",
      "targetGender": "womens",
      "createdAt": "2026-03-02T09:14:31.208Z",
      "updatedAt": "2026-08-19T16:40:02.911Z",
      "items": {
        "active": 1284,
        "archived": 12,
        "pending": 0,
        "partial_update": 3,
        "processing": 0,
        "failed": 2
      }
    },
    {
      "datasetId": "5f1e9c1a-2d3b-4c8e-9a7f-0b6d4e2c1a99",
      "status": "draft",
      "name": "Menswear import",
      "description": "",
      "targetGender": null,
      "createdAt": "2026-02-11T12:00:00.000Z",
      "updatedAt": "2026-02-11T12:00:00.000Z",
      "items": {
        "active": 0,
        "archived": 0,
        "pending": 540,
        "partial_update": 0,
        "processing": 8,
        "failed": 0
      }
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 2,
    "hasMore": false
  }
}