https://mirrapaysolution.com/api/public/v1/productsList your MIRRA catalogue
Returns the active, approved catalogue items belonging to the presenting key's merchant account and environment — enough to render product cards, and the price_id you send back when the customer checks out. Another merchant's catalogue is never visible.
Required scope: products:read
Query parameters
| Field | Type | Meaning |
|---|---|---|
limitOptional | integer (1–100) | Page size. Defaults to 50. |
offsetOptional | integer ≥ 0 | Rows to skip. Defaults to 0. |
activeOptional | true | false | Defaults to true. Pass false to review paused items. |
searchOptional | string (≤120) | Matches the item name or SKU. |
Request
curl "https://mirrapaysolution.com/api/public/v1/products?limit=50" \
-H "Authorization: Bearer $MIRRA_API_KEY"{
"data": [
{
"object": "product",
"price_id": "84df4deb-e50b-4040-bcab-5ead5a6d6cd3",
"product_id": null,
"name": "Bamboo Lobster — 1 kg",
"description": "Fresh, packed on ice.",
"image_url": "https://cdn.example/lobster.jpg",
"price_minor": 5000,
"currency": "USD",
"sku": "LOBSTER-1KG",
"active": true,
"available": true,
"created_at": "2026-09-15T09:04:11.204Z",
"updated_at": "2026-09-15T09:04:11.204Z"
}
],
"has_more": false,
"livemode": true,
"request_id": "8f2a…"
}Response fields
| Field | Type | Meaning |
|---|---|---|
data[].price_idOptional | string (uuid) | Send this back in items when the customer checks out. |
data[].nameOptional | string | Item name. |
data[].descriptionOptional | string | null | Optional description. |
data[].image_urlOptional | string | null | Optional product image. |
data[].price_minorOptional | integer | Unit price in minor units (5000 means 50.00). |
data[].currencyOptional | string | Unit price currency. |
data[].skuOptional | string | null | Your own item reference. |
data[].availableOptional | boolean | Whether the item is sellable. |
has_moreOptional | boolean | True when another page exists. |
request_idOptional | string | Unique identifier for this call. |
Errors
| HTTP | Code | Meaning |
|---|---|---|
| 422 | invalid_request | limit, offset, active or search is out of range. |
| 401 | invalid_api_key | Missing, malformed or unrecognised mpk key. |
| 401 | api_key_revoked | The key was revoked. |
| 401 | api_key_mode_mismatch | A test key was used against live data or the reverse. |
| 403 | insufficient_scope | The key lacks the required scope. |
| 403 | integration_disabled | The website integration is not active. |
| 403 | live_mode_not_enabled | A live key was used while the account is not currently approved for live payments. |
| 429 | rate_limited | 120 requests per 60 seconds per key exceeded. |
| 500 | internal_error | Unexpected failure. Retry and quote request_id. |
