docs
Get startedTroubleshootingPaymentsWebhooksAgent paymentsSwop MCPOviIdentity (swop.id)SwivyRPC (preview)API reference

Products

GET /products. List the products in your Swop store.

List products

GEThttps://apps.apiswop.co/api/v5/merchant/products

Scope: commerce.read

Returns your products, newest first.

Query parameters

ParameterTypeDefaultNotes
pageinteger1
limitinteger501 to 200
statusstringlive productsarchived to list archived products instead
productTypestringallFilter by type, e.g. physical or digital
curl "https://apps.apiswop.co/api/v5/merchant/products?limit=20" \
  -H "Authorization: Bearer $SWOP_MERCHANT_KEY"

Response

{
  "state": "success",
  "success": true,
  "message": "Products fetched",
  "data": {
    "items": [
      {
        "_id": "66a1b2c3d4e5f6a7b8c9d0e1",
        "status": "live",
        "productType": "physical",
        "title": "Swop Classic Card",
        "description": "An NFC card that opens your Swop page.",
        "images": [{ "url": "https://…", "alt": "Swop Classic Card" }],
        "primaryImage": "https://…",
        "price": { "amount": 25, "currency": "USDC" },
        "payoutToken": "USDC",
        "royaltyPercentage": 0,
        "inventory": { "track": true, "available": null, "sold": 0, "sku": "66a1b2c3d4e5f6a7b8c9d0e1" },
        "variants": [],
        "fulfillment": { "requiresShipping": true, "shippingCost": 5, "trackingEnabled": true },
        "tags": [],
        "keywords": [],
        "createdAt": "2026-09-01T12:00:00.000Z",
        "updatedAt": "2026-10-01T12:00:00.000Z"
      }
    ],
    "total": 1,
    "page": 1,
    "limit": 20
  }
}

The product object

FieldTypeMeaning
_idstringThe product ID. Send it as productId in a checkout.
statusstringlive or archived
productTypestringe.g. physical, digital
title, descriptionstring
images[], primaryImageImage URLs
price.amountnumberList price in USDC. The buyer pays this.
price.currencystringUSDC
royaltyPercentagenumberRoyalty paid on this product, if any
inventory.availablenumber | nullRemaining stock, or null for unlimited
inventory.skustringSame as _id
variants[]arrayOption groups (for example Color, Size). Send a choice for each in selectedOptions.
fulfillment.requiresShippingbooleanWhether the buyer's address is required
fulfillment.shippingCostnumberShipping per unit, in USDC
createdAt, updatedAtISO 8601

On this page