Skip to content
msMarketSDK

all endpoints

// api reference

Search

GET /v1/search/listings

Search published listings

Full text over title and description, with filters and sorting. Only published listings with something available are returned. Callable with a publishable key.

secret key, or a publishable key from a browser

GET /v1/search/listingsrequest
curl https://api.marketsdk.com/v1/search/listings \
  -H "Authorization: Bearer $MARKETSDK_KEY"
200 example response, listing list
{
  "object": "list",
  "data": [
    {
      "object": "listing",
      "id": "lst_034XtPDs7UJ0TXzTsdaHZa",
      "seller": "string",
      "category": null,
      "title": "string",
      "description": null,
      "price": {
        "amount": 4900,
        "currency": "USD"
      },
      "quantity": 0,
      "quantity_available": 0,
      "status": "draft",
      "attributes": {},
      "media": [
        {
          "object": null,
          "id": null,
          "listing": null,
          "status": null,
          "content_type": null,
          "size_bytes": null,
          "position": null,
          "url": null,
          "url_expires_at": null,
          "created_at": null
        }
      ],
      "metadata": {},
      "published_at": null,
      "expires_at": null,
      "removed_reason": null,
      "created_at": "2026-10-01T12:00:00.000Z",
      "updated_at": "2026-10-01T12:00:00.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

parameters

Parameters
fieldtypeabout
qstring, in queryFull text over title and description.
categorystring, in query
sellerstring, in query
min_priceinteger, in queryMinor units.
max_priceinteger, in queryMinor units.
attributesobject of strings, in queryAttribute filters, as attributes[key]=value for equality, or attributes[key][gte]=n and attributes[key][lte]=n for numbers. Numeric filters need a category.
sortone of: relevance, newest, price_asc, price_desc, in queryRelevance needs q. Default newest.
limitinteger, in querymin 1, max 100, default 20
cursorstring, in queryThe next_cursor of the previous page.

returns 200, listing list

fields
Response fields
fieldtypeabout
objectrequiredone of: list
datarequiredarray of listing
data[].objectrequiredone of: listing
data[].idrequiredstring
data[].sellerrequiredstring
data[].categoryrequiredstring or null
data[].titlerequiredstring
data[].descriptionrequiredstring or null
data[].pricerequiredmoney
data[].price.amountrequiredintegerInteger minor units.
data[].price.currencyrequiredstring
data[].quantityrequiredinteger
data[].quantity_availablerequiredintegerNot reserved by an open order.
data[].statusrequiredone of: draft, published, sold, expired, removed
data[].attributesrequiredobject of strings
data[].mediarequiredarray of media
data[].media[].objectrequiredone of: media
data[].media[].idrequiredstring
data[].media[].listingrequiredstring
data[].media[].statusrequiredone of: pending, ready
data[].media[].content_typerequiredstring
data[].media[].size_bytesrequiredinteger
data[].media[].positionrequiredinteger
data[].media[].urlrequiredstring or nullA signed link to the file, valid for an hour. Null until the upload completes.
data[].media[].url_expires_atrequiredtimestamp or null
data[].media[].created_atrequiredtimestamp
data[].metadatarequiredobject of strings
data[].published_atrequiredtimestamp or null
data[].expires_atrequiredtimestamp or null
data[].removed_reasonrequiredstring or null
data[].created_atrequiredtimestamp
data[].updated_atrequiredtimestamp
has_morerequiredbooleanWhether another page follows.
next_cursorrequiredstring or nullPass as starting_after (or cursor for search) to get the next page.

errors

  • 400The request is not valid.
  • 401No API key, or not a valid one.
  • 429Rate limited. See Retry-After.