Skip to main content
GET
/
api
/
canary
/
products
List Products
curl --request GET \
  --url https://api.cashful.africa/api/canary/products \
  --header 'Authorization: Bearer <token>'
{
  "data": [
    {
      "id": "product_001",
      "merchantId": "merchant_456",
      "name": "Airtime",
      "description": "Mobile phone airtime",
      "amount": 5000,
      "currency": "ZAR",
      "active": true,
      "imageId": "file_abc123xyz",
      "imageUrl": "https://my-bucket.s3.af-south-1.amazonaws.com/merchant_123/1736951234567-a1b2c3-airtime.png",
      "metadata": {
        "category": "telecom"
      },
      "createdAt": "2025-01-15T10:30:00.000Z",
      "updatedAt": "2025-01-15T10:30:00.000Z"
    },
    {
      "id": "product_002",
      "merchantId": "merchant_456",
      "name": "Data Bundle",
      "description": "1GB data bundle",
      "amount": 10000,
      "currency": "ZAR",
      "active": true,
      "imageId": "file_def456uvw",
      "imageUrl": "https://my-bucket.s3.af-south-1.amazonaws.com/merchant_123/1736951234567-x9y8z7-data-bundle.png",
      "metadata": {
        "category": "telecom",
        "size": "1GB"
      },
      "createdAt": "2025-01-14T09:20:00.000Z",
      "updatedAt": "2025-01-14T09:20:00.000Z"
    }
  ],
  "pagination": {
    "limit": 50,
    "offset": 0,
    "total": 25,
    "hasMore": false
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Query Parameters

limit
number

Maximum number of records to return

Example:

50

offset
number

Number of records to skip

Example:

0

merchantId
string

The ID of the merchant whose products are being requested. If not provided, the products of the authenticated merchant will be returned.

active
boolean

Filter by active status

Response

Successfully retrieved products

data
object[]
required
pagination
object
required