---
url: https://docs.dataflair.ai/dataflair/toplist-api/brands-endpoint.md
description: >-
  List every active brand in the tenant and see how the shape differs from a
  brand inside a toplist.
---

# Brands endpoint

## `GET /api/v1/brands`

Returns every active brand in the tenant, paginated (default 15 per page, max 100, alphabetical by
name). **Unlike the toplist endpoints, this one is not scoped to your specific site.** It returns
every active brand across the whole tenant account, including brands that may never appear on your
site's toplists. Use it if you need the full brand catalog independent of any specific toplist (for
example, to look up a brand your own system already knows about by ID), but don't assume the result
set matches "brands visible on my site."

```bash
curl "https://{your-tenant-domain}/api/v1/brands" \
  -H "Authorization: Bearer <token>" \
  -H "Accept: application/json"
```

### Response shape

```jsonc
{
  "data": [
    {
      "type": "brand",
      "id": 341,
      "externalId": "brand-341",
      "name": "Lucky Spin Casino",
      "slug": "lucky-spin-casino",
      "rating": 4.6,
      "logo": {
        "rectangular": "https://cdn.dataflair.ai/brands/341/logo-rect.png",
        "square": "https://cdn.dataflair.ai/brands/341/logo-square.png",
        "backgroundColor": "#101820"
      },
      "licenses": ["Curacao"],
      "paymentMethods": ["UPI", "Visa", "Mastercard"],
      "restrictedCountries": ["United States", "France"],
      "languages": { "website": ["en", "hi"], "support": ["en"], "livechat": ["en"] },
      "offers": [
        {
          "type": "offer",
          "id": 5820,
          "offerTypeId": 1,
          "offerTypeName": "Welcome Bonus",
          "offerText": "100% up to ₹20,000 + 100 Free Spins",
          "currencies": ["INR"],
          "hasFreeSpin": true,
          "bonusWageringRequirement": 35,
          "bonusExpiryDate": "2026-12-31",
          "bonusCode": "LUCKY100",
          "minimumDeposit": 500,
          "maxPayout": null,
          "maxBonusAmount": "20000.00",
          "isStickyBonus": false,
          "trackers": [
            {
              "id": 88,
              "campaignName": "India Launch",
              "trackerLink": "https://track.example.com/click?c=88",
              "tcLink": "https://example-operator.com/terms",
              "pageType": "LP",
              "geos": { "countries": ["India"], "markets": [] }
            }
          ]
        }
      ]
    }
  ],
  "links": { "first": "...", "last": "...", "prev": null, "next": "..." },
  "meta": { "current_page": 1, "per_page": 15, "total": 47, "last_page": 4 }
}
```

Note what's absent compared to the embedded toplist brand: no `classificationTypes` field, per the
inconsistency called out below. And note what's present here that isn't on the embedded brand: the
full `offers` array, with each offer's `trackers` nested inside it.

**This is not the same shape as the brand embedded in each toplist item (see
[Toplists endpoints](/dataflair/toplist-api/toplists-endpoint)), and it's not a strict superset, so don't
assume you can swap one for the other without checking field-by-field.** It adds fields the embedded
brand doesn't have, most notably the brand's full `offers` array (with each offer's trackers nested
inside it), but it also drops at least one field the embedded brand does have:
`classificationTypes` isn't returned by this endpoint at all. If you're already consuming toplists
and only need what's already embedded there, you likely don't need this endpoint at all.

One inconsistency worth knowing about if you use both endpoints: the bonus/offer fields here use
**camelCase** (`hasFreeSpin`, `bonusWageringRequirement`, `bonusCode`, `minimumDeposit`, and so on),
while the equivalent fields on an offer embedded inside a toplist item use **snake\_case**
(`has_free_spins`, `bonus_wagering_requirement`, `bonus_code`, `minimum_deposit`, ...). Same
concepts, different casing depending on which endpoint you hit. Don't write one shared parser
expecting identical field names from both.

This endpoint wraps its payload in the same `{"data": [...], "links": {...}, "meta": {...}}`
envelope as the toplist listing endpoint: see the response-wrapping note on
[Toplists endpoints](/dataflair/toplist-api/toplists-endpoint).
