Glowjakt Themes API

The Themes API from Glowjakt — 2 operation(s) for themes.

GitHub OpenAPI

Operations 2

GET /api/themes Published gift and event pages for this market #
GET /api/themes/{slug} One gift or event page with its products #

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-themes-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-themes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Glowjakt Public Themes 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: Themes
paths:
  /api/themes:
    get:
      operationId: listThemes
      summary: Published gift and event pages for this market
      description: Curated product lists for gift recipients and shopping events (for example gifts for dad, Advent calendars, Black Friday price drops), plus upcoming event dates. Only published pages are listed; fetch a page's products with GET /api/themes/{slug}.
      responses:
        '200':
          description: Pages and upcoming events
          content:
            application/json:
              schema:
                type: object
                properties:
                  pages:
                    type: array
                    items:
                      type: object
                      properties:
                        key:
                          type: string
                          description: Concept key, the same across markets (e.g. pappa, black-friday).
                        slug:
                          type: string
                        kind:
                          type: string
                          enum:
                          - blend
                          - price_drop
                          - hub
                        title:
                          type:
                          - string
                          - 'null'
                        in_season:
                          type: boolean
                        next_event_date:
                          type:
                          - string
                          - 'null'
                          format: date
                  events:
                    type: array
                    items:
                      type: object
                      properties:
                        key:
                          type: string
                        page_key:
                          type: string
                        label:
                          type: string
                        event_date:
                          type:
                          - string
                          - 'null'
                          format: date
                        season_from:
                          type: string
                          format: date
                        season_to:
                          type: string
                          format: date
      tags:
      - Themes
  /api/themes/{slug}:
    get:
      operationId: getTheme
      summary: One gift or event page with its products
      description: 'kind=blend: in-stock products interleaved in rounds from the page''s product groups; within a group ranked by number of stores, then price. kind=price_drop: in-stock products whose lowest price today is at least the page''s minimum drop below the lowest price of the last four completed weeks, ranked by drop; reference_price and drop_percent are set, and only offers with recorded prices in that window count. kind=hub: no products. 20 products per page. Ranked by price data only; not influenced by payments from stores.'
      parameters:
      - $ref: '#/components/parameters/Slug'
      - name: page
        in: query
        schema:
          type: integer
          default: 1
          minimum: 1
          maximum: 100
      - name: sort
        in: query
        schema:
          type: string
          enum:
          - blend
          - price_asc
          - price_desc
          default: blend
      responses:
        '200':
          description: Page with products (an empty product list is a valid page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThemePage'
        '404':
          description: Unknown or unpublished page
      tags:
      - Themes
components:
  parameters:
    Slug:
      name: slug
      in: path
      required: true
      description: URL slug as returned by search/list endpoints.
      schema:
        type: string
  schemas:
    ThemeProduct:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        brand:
          type:
          - string
          - 'null'
        slug:
          type:
          - string
          - 'null'
          description: Product slug for GET /api/products/{slug}.
        price:
          type: number
          description: Lowest in-stock price in the market currency.
        currency:
          type:
          - string
          - 'null'
        store_name:
          type:
          - string
          - 'null'
        affiliate_url:
          type:
          - string
          - 'null'
          description: Link to the store (via a /go/ redirect).
        offer_count:
          type:
          - integer
          - 'null'
        content_value:
          type:
          - number
          - 'null'
          description: 'Germany only: package content for the unit price (Grundpreis); null elsewhere.'
        content_unit:
          type:
          - string
          - 'null'
          description: 'Germany only: unit of content_value (e.g. ml, g).'
        group_index:
          type: integer
        round:
          type: integer
        reference_price:
          type:
          - number
          - 'null'
          description: 'price_drop pages: lowest price of the last four completed weeks.'
        drop_percent:
          type:
          - number
          - 'null'
          description: 'price_drop pages: drop from reference_price, in percent, rounded down to one decimal.'
    ThemePage:
      type: object
      properties:
        key:
          type: string
        slug:
          type: string
        kind:
          type: string
          enum:
          - blend
          - price_drop
          - hub
        title:
          type:
          - string
          - 'null'
        h1:
          type:
          - string
          - 'null'
        description:
          type:
          - string
          - 'null'
        in_season:
          type: boolean
          description: True while one of the page's events is in season; title, h1 and description then carry the seasonal variant.
        page:
          type: integer
        size:
          type: integer
        total:
          type: integer
        products:
          type: array
          items:
            $ref: '#/components/schemas/ThemeProduct'