Glowjakt Brands API

The Brands API from Glowjakt — 3 operation(s) for brands.

GitHub OpenAPI

Operations 3

GET /api/brands Top brands by product count #
GET /api/brands/{slug} Single brand with description #
GET /api/brands/{slug}/market Brand presence on this market: product count, stock, stores, price range… #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/glowjakt-se:glowjakt-se-brands-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

glowjakt-se-brands-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Glowjakt Public Brands API
  version: 1.0.0
  summary: Nordic beauty price comparison — read-only public API
  description: Glowjakt compares beauty product prices across 40+ stores in Sweden, Norway, Denmark, Finland and Germany (the German market is branded Glowscout). Products are matched by EAN barcode, so comparisons are exact. Prices refresh daily from store feeds. Each market has its own API host (see servers) with its own catalog and currency. Glowjakt never charges stores for listing and sells no sponsored placements. This specification covers the curated read-only surface intended for AI agents and integrations. Please respect rate limits; contact us for high-volume use. An MCP server is also available at https://mcp.glowjakt.se/mcp — see https://mcp.glowjakt.se/docs.
  contact:
    name: Glowjakt (Sejder AB)
    email: kontakt@glowjakt.se
    url: https://glowjakt.se/se/om-oss/
servers:
- url: https://api.glowjakt.se
  description: Sweden (SEK) — glowjakt.se
- url: https://api.glowjakt.no
  description: Norway (NOK) — glowjakt.no
- url: https://api.glowjagt.dk
  description: Denmark (DKK) — glowjagt.dk
- url: https://api.glowjakt.fi
  description: Finland (EUR) — glowjakt.fi
- url: https://api.glowscout.de
  description: Germany (EUR) — glowscout.de (Glowscout)
security: []
tags:
- name: Brands
paths:
  /api/brands:
    get:
      operationId: listBrands
      summary: Top brands by product count
      parameters:
      - name: limit
        in: query
        schema:
          type: integer
          default: 12
      responses:
        '200':
          description: Brand list
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BrandSummary'
      tags:
      - Brands
  /api/brands/{slug}:
    get:
      operationId: getBrand
      summary: Single brand with description
      parameters:
      - $ref: '#/components/parameters/Slug'
      responses:
        '200':
          description: Brand detail
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandDetail'
        '404':
          description: Unknown brand slug
      tags:
      - Brands
  /api/brands/{slug}/market:
    get:
      operationId: getBrandMarket
      summary: 'Brand presence on this market: product count, stock, stores, price range…'
      description: Aggregated view of one brand on this country's market (the API host decides the country). Counts are EAN-grouped products; 'in_stock' is the subset currently in stock somewhere. 404 when the brand has no product rows on this market. Refreshed nightly.
      parameters:
      - $ref: '#/components/parameters/Slug'
      responses:
        '200':
          description: Market summary for the brand
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandMarket'
        '404':
          description: Unknown brand slug, or no products on this market
      tags:
      - Brands
components:
  parameters:
    Slug:
      name: slug
      in: path
      required: true
      description: URL slug as returned by search/list endpoints.
      schema:
        type: string
  schemas:
    BrandDetail:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        slug:
          type: string
        description:
          type:
          - string
          - 'null'
        website:
          type:
          - string
          - 'null'
        certifications:
          type: array
          description: Third-party verified brand certifications from the Glowpedia fact base (Ecocert, Leaping Bunny, The Vegan Society...). Localized note explains each cert.
          items:
            type: object
            properties:
              name:
                type: string
              note:
                type: string
        claims:
          type:
          - array
          - 'null'
          description: The brand's OWN unverified marketing claims (localized strings). Always attribute to the brand — never present as verified facts.
          items:
            type: string
        glowpedia_url:
          type:
          - string
          - 'null'
          description: Market-localized URL to the brand article on Glowpedia (the beauty-brand encyclopedia). Null until the market edition is launched.
        guide_slug:
          type:
          - string
          - 'null'
          description: Slug of this brand's price guide when one exists in this market (GET /api/guides/{slug}); null otherwise.
    BrandMarket:
      type: object
      description: 'One brand''s presence on this country''s market (source: the same nightly price data as the product listings).'
      properties:
        country:
          type: string
          description: 'Market code: se, no, dk, fi or de'
        currency:
          type: string
          description: SEK, NOK, DKK or EUR
        slug:
          type: string
        name:
          type: string
        products:
          type: integer
          description: EAN-grouped products listed on this market
        in_stock:
          type: integer
          description: Products currently in stock at at least one store
        listings:
          type: integer
          description: Store listings across all products
        on_sale:
          type: integer
          description: Products whose lowest current price is below the store's own reference price
        stores:
          type: integer
        store_names:
          type: array
          items:
            type: string
          description: Up to eight stores, most listings first
        price:
          type: object
          properties:
            min:
              type:
              - number
              - 'null'
            median:
              type:
              - number
              - 'null'
            max:
              type:
              - number
              - 'null'
        categories:
          type: array
          items:
            type: object
            properties:
              slug:
                type: string
              count:
                type: integer
        subcategories:
          type: array
          items:
            type: object
            properties:
              path:
                type: string
              count:
                type: integer
        cheapest:
          type:
          - object
          - 'null'
          properties:
            name:
              type: string
            price:
              type:
              - number
              - 'null'
            store:
              type:
              - string
              - 'null'
            in_stock:
              type: boolean
            url:
              type: string
              description: Product page on the market site
        certifications:
          type: array
          items:
            type: object
        claims:
          type: array
          items:
            type: string
        attributes:
          type: array
          items:
            type: string
        brand_url:
          type: string
          description: Brand page on the market site
        ingredients:
          type:
          - object
          - 'null'
          description: Ingredient profile across the brand's products on this market, from parsed INCI lists. Shares use products with a known ingredient list as denominator.
          properties:
            products:
              type: integer
            with_inci:
              type: integer
              description: Products with a parsed ingredient list
            with_keys:
              type: integer
            top:
              type: array
              description: Most common key-ingredient groups (non-controversial), up to 8
              items:
                $ref: '#/components/schemas/IngredientRef'
            controversial:
              type: array
              description: Groups flagged as possibly affecting sensitive skin, up to 5
              items:
                $ref: '#/components/schemas/IngredientRef'
            shares:
              type: object
              properties:
                fragrance_free:
                  type:
                  - number
                  - 'null'
                animal_free:
                  type:
                  - number
                  - 'null'
                controversial_free:
                  type:
                  - number
                  - 'null'
            hub_url:
              type:
              - string
              - 'null'
              description: Ingredient hub on the market site
        as_of:
          type: string
          format: date
          description: Day the block was computed (cached up to 1 h).
        observed_at:
          type:
          - string
          - 'null'
          format: date
          description: Latest store-feed date among the brand's listings on this market — the data's observation day, distinct from as_of.
    BrandSummary:
      type: object
      properties:
        brand:
          type: string
        brand_slug:
          type: string
        count:
          type: integer
        website:
          type:
          - string
          - 'null'
        primary_logo_url:
          type:
          - string
          - 'null'
    IngredientRef:
      type: object
      properties:
        slug:
          type: string
        name:
          type: string
          description: Localized group name
        category:
          type:
          - string
          - 'null'
        tier:
          type:
          - integer
          - 'null'
        count:
          type: integer
          description: Products in the brand's range containing the group
        url:
          type:
          - string
          - 'null'
          description: Ingredient page on the market site, when published