List sellers
Lists the sellers of your account, one page at a time.
Returns the sellers of your account in pages, from the newest to the oldest by default. Use it to sync your records with ours or to build a list on your screen.
Sorting
sort picks the order. One parameter; a leading minus means descending.
sort | Order |
|---|---|
-createdAt | newest first (default) |
createdAt | oldest first |
name | by name, A to Z, ignoring letter case |
-name | by name, Z to A |
Ties are broken by id, so the order is stable across pages.
curl "$BACKEND_URL/v1/sellers?sort=name&pageSize=50" \
-H "Authorization: Bearer mk_your_api_key"Filtering
externalId returns only the seller with that external id, compared exactly. It is unique within your account, so data has one item or none, and pagination.totalItems is 1 or 0. It is the way to find your customer's record from your own id without storing ours.
curl "$BACKEND_URL/v1/sellers?externalId=customer-123" \
-H "Authorization: Bearer mk_your_api_key"metadata[key]=value filters by the seller's metadata. See Metadata.
Go through all pages
- Ask for page 1 (
page=1). UsepageSizefor the size (1 to 100, default 20). - Read the
paginationof the response:totalPagestells how many pages there are, andhasNexttells if there is one after this. - While
hasNextcomes backtrue, ask forpage + 1.
# first page
curl "$BACKEND_URL/v1/sellers?page=1&pageSize=50" \
-H "Authorization: Bearer mk_your_api_key"
# next page
curl "$BACKEND_URL/v1/sellers?page=2&pageSize=50" \
-H "Authorization: Bearer mk_your_api_key"With 3 sellers and pageSize=2, page 1 brings 2 sellers in data and this pagination:
{
"page": 1,
"pageSize": 2,
"totalItems": 3,
"totalPages": 2,
"hasNext": true,
"hasPrev": false
}A page after the last one
Asking for a page past the end (in the example, page=3) is not an error. The response is 200 with data: [] and a pagination with the real totals, which show where the list ends.
Common errors
400 VALIDATION_ERROR:pagebelow 1,pageSizeoutside 1 to 100, a value that is not an integer, asortoutside the table above, or an emptyexternalId.detailspoints at the wrong parameter (path: ["page"]).
A seller created while you read
If a seller is created while you go through the pages, the others move down one position. The last seller of a page shows up again at the start of the next one. Use the id so you don't process the same seller twice.
api_keyAuthorizationBearer <token>API key (mk_...)
page?integerPage number, starting at 1. Defaults to 1. A page beyond pagination.totalPages is not an error: it returns empty data.
1 <= value <= 90071992547409911pageSize?integerItems per page, from 1 to 100. Defaults to 20.
1 <= value <= 10020sort?stringOrder of the listing. -createdAt (default): newest first. createdAt: oldest first. name: A to Z, ignoring case. -name: Z to A. Ties are broken by id, so the order is stable across pages.
"-createdAt""-createdAt""createdAt""name""-name"externalId?stringOnly the seller with this externalId, compared exactly (it is unique within your account, so data has one item or none). Omit it to list every seller.
1 <= length <= 120metadata?Only the sellers whose metadata matches, written as metadata[key]=value. A stored string, number or boolean must be equal. A number compares by value: metadata[stores]=3 and metadata[stores]=3.0 both find the number 3. metadata[active]=true finds the boolean true. A string must match the text exactly, case included: metadata[stores]=3 also finds the string "3", but not "3.0". A stored array matches when it contains the value. Repeat a key to accept any of its values (OR): metadata[plan]=pro&metadata[plan]=max. Different keys must all match (AND). A key that holds an object, or a key the seller does not have, never matches. Up to 10 keys, 20 values per key, each value 1 to 500 characters.
properties <= 10One page of sellers in the order sort asks for (newest first by default), narrowed by the filters. pagination carries the totals of the filtered listing; a page beyond pagination.totalPages returns empty data, not 404.
application/json- response
One page of sellers.
data*array<>The sellers of this page, newest first.
pagination*Where this page sits in the whole listing: the totals and whether there are pages before and after it.
curl -X GET "https://example.com/v1/sellers"{ "data": [ { "id": "8a2e5b90-1c44-4d7a-b3f2-5e6a7c8d9f02", "name": "Globex Imports", "externalId": null, "metadata": {}, "connections": [], "createdAt": "2026-10-06T14:31:00.000Z", "updatedAt": "2026-10-06T14:31:00.000Z" }, { "id": "3d1c8a52-7f0e-4b0a-8a65-9c1b2f6d7e01", "name": "Acme Store", "externalId": "customer-123", "metadata": { "plan": "pro", "region": "south", "tags": [ "vip", "b2b" ] }, "connections": [ { "id": "9a1b2c3d-4e5f-4a6b-8c7d-0e1f2a3b4c5d", "marketplace": "mercadolivre", "marketplaceDisplayName": "Mercado Livre", "status": "active" } ], "createdAt": "2026-10-06T14:30:00.000Z", "updatedAt": "2026-10-06T14:30:00.000Z" } ], "pagination": { "page": 1, "pageSize": 2, "totalItems": 3, "totalPages": 2, "hasNext": true, "hasPrev": false }}