Skip to main content
GET
/
v3
/
gift-cards
/
catalog
Get Product Catalog
curl --request GET \
  --url https://api.oneclickdz.com/v3/gift-cards/catalog \
  --header 'X-Access-Token: <api-key>'
{
  "success": true,
  "totalCategories": 123,
  "totalProducts": 123,
  "data": {
    "categories": [
      {
        "title": "<string>",
        "products": [
          {
            "id": "<string>",
            "title": "<string>",
            "enabled": true,
            "region": "<string>"
          }
        ]
      }
    ]
  },
  "meta": {
    "timestamp": "<string>"
  }
}

Overview

Returns complete catalog of gift cards and digital products organized by categories (Gaming, Streaming, etc.).
Cache this data for at least 24 hours. Catalog changes infrequently.

Response

success
boolean
required
Request status
totalCategories
integer
Total number of categories in the catalog
totalProducts
integer
Total number of products across all categories
data
object
required
meta
object

Examples

curl https://api.oneclickdz.com/v3/gift-cards/catalog \
  -H "X-Access-Token: YOUR_API_KEY"

Response Example

### Response Example

```json
{
  "success": true,
  "totalCategories": 14,
  "totalProducts": 62,
  "data": {
    "categories": [
      {
        "title": "PSN",
        "products": [
          {
            "id": "6126393c6f57860f925a1983",
            "title": "PSN Germany",
            "enabled": true,
            "region": "germany"
          },
          {
            "id": "612619816f57860f9259eee3",
            "title": "PSN UK",
            "enabled": true,
            "region": "united-kingdom"
          },
          {
            "id": "60111eba751a26110ab5b209",
            "title": "PSN US",
            "enabled": true,
            "region": "united-states-america"
          }
        ]
      },
      {
        "title": "Game Stores",
        "products": [
          {
            "id": "6037a862b8d036107c61d312",
            "title": "Steam USD",
            "enabled": true,
            "region": "united-states-america"
          },
          {
            "id": "6038ffd52a60b8107c134e39",
            "title": "Steam EUR",
            "enabled": true,
            "region": "european-union"
          },
          {
            "id": "60b6f304ad371a16a4347e11",
            "title": "Roblox",
            "enabled": true
          }
        ]
      }
    ]
  },
  "meta": {
    "timestamp": "2025-10-29T00:36:52.615Z"
  }
}

## Building Product UI

```javascript
// Example: Building a category-based UI
function renderCatalog(catalog) {
  return catalog.categories.map((category) => ({
    categoryName: category.name,
    products: category.products
      .filter((p) => p.enabled)
      .map((p) => ({
        id: p.id,
        name: p.title,
        imageUrl: `/images/products/${p.id}.png`,
      })),
  }));
}

Caching Strategy

// Cache for 24 hours
const cache = {
  data: null,
  timestamp: 0,
  ttl: 24 * 60 * 60 * 1000, // 24 hours
};

async function getCatalog() {
  const now = Date.now();

  if (cache.data && now - cache.timestamp < cache.ttl) {
    return cache.data;
  }

  const response = await fetch(
    "https://api.oneclickdz.com/v3/gift-cards/catalog",
    {
      headers: { "X-Access-Token": process.env.API_KEY },
    }
  );

  cache.data = await response.json();
  cache.timestamp = now;

  return cache.data;
}

Best Practices

Cache Catalog

Cache for 10+ minutes to reduce API calls

Filter Enabled

Only show products where enabled: true

Check Region

Filter by region if targeting specific markets

Organize by Category

Use categories for better UX

Next Steps

After getting the catalog:
1

Display Products

Show products to users organized by category
2

Check Product Details

Use /checkProduct/:id to get pricing and stock
3

Place Order

Use /placeOrder to purchase selected product