> ## Documentation Index
> Fetch the complete documentation index at: https://socialquery.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Klarna Category Products

> Returns native product-category rows with regional prices, ratings and source-order pagination. Supports size 1–100, all seven documented sorts, bounded offsets, price ranges, one facet filter and subcategory paths. Applied filters are corroborated against source metadata. Cursors bind request context and check the preceding product; empty pages have no net charge.

Returns native product rows for a regional product category, such as `category_id=cl94` for Headphones. Get IDs from the category directory or category-children endpoint. Tree roots (`t` IDs) contain category groups rather than this product-list contract.

Each `items[].product` contains native ID, title, category, description, source path, price, rating, images, stock flag and condition when available. Null values stay unknown. Prices and stock flags are source snapshots, not merchant checkout quotes. UK, Swedish and Danish rows retain legacy relative paths with null absolute product URLs.

`size` is 1–100 (default 48); `offset` is 0–100,000 (default 0). `total` is the current source product-hit count, excluding separately returned unclassified merchant offers and merchandising carousels. `returned_count` counts this page. No local slice is passed off as native source pagination.

Send `data.next_cursor` verbatim with the same category ID for the next page. Region, size, sort and filters are restored when omitted, and must match if supplied. Cursors last one hour and verify the preceding product's ID. Source reordering can cause a failure that requires restarting; this is not a frozen inventory snapshot. A native offset can also be supplied directly, without continuity checking. Reaching the source total or the offset ceiling produces a null cursor.

Supported `sort_by` values are `popularity` (default), `price_low`, `price_high`, `trend`, `name`, `rating` and `price_drop`. These map to Klarna's native sorts. Rating and trend order are source rankings, not locally recomputed scores; native rating order need not be strictly monotonic by displayed average rating. Price order is checked against returned amounts.

`price_range` accepts ranges such as `50-500`, `50-` or `-500`, in the regional currency, with up to two decimal places. `filter` accepts one native facet as `keyID-valueID`, such as `BRAND-162` for Apple in the US. `category_path_id` accepts a regional subcategory ID, such as `100003567-100014541` for US Headphones. A facet and subcategory cannot specify conflicting values for the same key. Source metadata must confirm every requested filter; ignored or unrecognized values return 422 with no net charge.

Regions: `usa`, `uk`, `germany`, `sweden`, `france`, `italy`, `spain`, `netherlands`, `austria`, `ireland`, `norway`, `finland` and `denmark`. Prices retain native regional currencies.

A fresh successful nonempty page costs **5 SocialQuery credits**. Empty pages, failures, cached responses and successful idempotent replays have no net charge. Use `X-Max-Credits: 5` to cap the request hold.

Source access is anonymous. Each call makes at most three source requests, sharing the Klarna 20-request/minute ceiling, with a 25-second total timeout and 2 MiB per-response limit. A filtered request reads native filter metadata; a cursor page with size 100 checks its preceding product in a separate one-row request. Smaller cursor pages include and remove that anchor in the native window. Duplicate IDs, category mismatches, ignored filters and inconsistent pagination fail explicitly.


## OpenAPI

````yaml GET /klarna/category
openapi: 3.1.0
info:
  title: SocialQuery API
  version: '2026-10-09'
  description: >-
    Documented requests for public-source records. Inspect accepted inputs and
    credit amounts, then verify the selected operation before integrating
    preview coverage.
servers:
  - url: https://socialquery.dev/v1
security:
  - apiKey: []
paths:
  /klarna/category:
    get:
      tags:
        - Klarna
      summary: Klarna Category
      description: >-
        Returns native product-category rows with regional prices, ratings and
        source-order pagination. Supports size 1–100, all seven documented
        sorts, bounded offsets, price ranges, one facet filter and subcategory
        paths. Applied filters are corroborated against source metadata. Cursors
        bind request context and check the preceding product; empty pages have
        no net charge.
      operationId: get_klarna_category
      parameters:
        - name: category_id
          in: query
          required: true
          example: cl94
          schema:
            type: string
            pattern: ^cl[1-9][0-9]{0,9}$
          description: >-
            Regional product category (cl ID). Tree roots group categories
            rather than product rows.
        - name: region
          in: query
          required: false
          schema:
            type: string
            enum:
              - usa
              - uk
              - germany
              - sweden
              - france
              - italy
              - spain
              - netherlands
              - austria
              - ireland
              - norway
              - finland
              - denmark
        - name: size
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 48
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            maximum: 100000
            default: 0
          description: >-
            Native row offset. Zero is represented by omitting the upstream
            parameter; prefer the returned cursor.
        - name: sort_by
          in: query
          required: false
          schema:
            type: string
            enum:
              - popularity
              - price_low
              - price_high
              - trend
              - name
              - rating
              - price_drop
        - name: price_range
          in: query
          required: false
          schema:
            type: string
          description: >-
            Nonnegative regional price range, for example 50-500, 50- or -500.
            Up to two decimals; either bound can be omitted. Source metadata and
            returned prices must respect the range.
        - name: filter
          in: query
          required: false
          schema:
            type: string
          description: >-
            One native keyID-valueID facet, such as BRAND-162. Numeric feature
            IDs are accepted. The source must confirm application; unknown or
            ignored filters are rejected.
        - name: category_path_id
          in: query
          required: false
          schema:
            type: string
          description: >-
            Numeric keyID-valueID subcategory path from regional category
            children. Cannot conflict with filter.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: >-
            Return data.next_cursor verbatim with the category ID. Other request
            settings are restored when omitted and must match if supplied.
            Expires after one hour; source reordering may require restarting.
        - name: Cache-Control
          in: header
          required: false
          example: no-cache
          schema:
            type: string
        - name: Idempotency-Key
          in: header
          required: false
          example: 7a5e1b4c-2d8f-4a3b-9c1e-6e8b4d2a1f3c
          schema:
            type: string
        - name: X-Max-Credits
          in: header
          required: false
          description: >-
            Optional nonnegative integer cap on the maximum request hold. A live
            request whose hold exceeds this cap returns 422
            CREDIT_BUDGET_EXCEEDED before spending. Metered holds use the
            requested limit; cache hits and successful idempotent replays cost
            zero.
          schema:
            type: integer
            minimum: 0
      responses:
        '200':
          description: >-
            Returns native product-category rows with regional prices, ratings
            and source-order pagination. Supports size 1–100, all seven
            documented sorts, bounded offsets, price ranges, one facet filter
            and subcategory paths. Applied filters are corroborated against
            source metadata. Cursors bind request context and check the
            preceding product; empty pages have no net charge.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SocialQueryResponse'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          items:
                            type: array
                            items:
                              type: object
                              properties:
                                product:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    title:
                                      type: string
                                    source_path:
                                      type:
                                        - string
                                        - 'null'
                                    url:
                                      type:
                                        - string
                                        - 'null'
                                    description:
                                      type:
                                        - string
                                        - 'null'
                                    category:
                                      anyOf:
                                        - type: object
                                          properties:
                                            id:
                                              type:
                                                - string
                                                - 'null'
                                            name:
                                              type: string
                                            source_path:
                                              type:
                                                - string
                                                - 'null'
                                            url:
                                              type:
                                                - string
                                                - 'null'
                                          required:
                                            - id
                                            - name
                                            - source_path
                                            - url
                                        - type: 'null'
                                    price:
                                      type: object
                                      properties:
                                        current:
                                          type:
                                            - number
                                            - 'null'
                                          minimum: 0
                                        currency:
                                          type: string
                                      required:
                                        - current
                                        - currency
                                    rating:
                                      type: object
                                      properties:
                                        average:
                                          type:
                                            - number
                                            - 'null'
                                          minimum: 0
                                        count:
                                          type:
                                            - integer
                                            - 'null'
                                          minimum: 0
                                      required:
                                        - average
                                        - count
                                    image_urls:
                                      type: array
                                      items:
                                        type: string
                                    availability:
                                      type:
                                        - string
                                        - 'null'
                                      enum:
                                        - in_stock
                                        - out_of_stock
                                        - null
                                    condition:
                                      type:
                                        - string
                                        - 'null'
                                  required:
                                    - id
                                    - title
                                    - source_path
                                    - url
                                    - description
                                    - category
                                    - price
                                    - rating
                                    - image_urls
                                    - availability
                                    - condition
                              required:
                                - product
                          returned_count:
                            type: integer
                            minimum: 0
                          total:
                            type: integer
                            minimum: 0
                          size:
                            type: integer
                            minimum: 1
                            maximum: 100
                          offset:
                            type: integer
                            minimum: 0
                          next_cursor:
                            type:
                              - string
                              - 'null'
                          category:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                              source_path:
                                type: string
                            required:
                              - id
                              - name
                              - source_path
                          category_path_id:
                            type:
                              - string
                              - 'null'
                          region:
                            type: string
                          country_code:
                            type: string
                          sort_by:
                            type: string
                          applied_filters:
                            type: object
                            additionalProperties:
                              type: string
                          source:
                            type: string
                          coverage_note:
                            type: string
                        required:
                          - items
                          - returned_count
                          - total
                          - size
                          - offset
                          - next_cursor
                          - category
                          - category_path_id
                          - region
                          - country_code
                          - sort_by
                          - applied_filters
                          - source
                          - coverage_note
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '402':
          $ref: '#/components/responses/Error402'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '405':
          $ref: '#/components/responses/Error405'
        '409':
          $ref: '#/components/responses/Error409'
        '422':
          $ref: '#/components/responses/Error422'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
        '502':
          $ref: '#/components/responses/Error502'
        '503':
          $ref: '#/components/responses/Error503'
        '504':
          $ref: '#/components/responses/Error504'
components:
  schemas:
    SocialQueryResponse:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - data
      properties:
        success:
          type: boolean
          const: true
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        data:
          type: object
          additionalProperties: true
          description: >-
            The selected operation determines the resource fields in this
            object. Source data can omit a metric or report it as null.
    SocialQueryError:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - error
      properties:
        success:
          type: boolean
          const: false
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        error:
          type: object
          required:
            - code
            - type
            - message
            - status
            - doc_url
          properties:
            code:
              type: string
            type:
              type: string
            message:
              type: string
            status:
              type: integer
            doc_url:
              type: string
              format: uri
  responses:
    Error400:
      description: Upstream rejected the request.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error401:
      description: Missing, expired, invalid, or revoked API key.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error402:
      description: Insufficient SocialQuery credits.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error403:
      description: Key scope or provider policy denied access.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error404:
      description: Endpoint or upstream resource not found.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error405:
      description: HTTP method is not supported.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error409:
      description: Idempotency conflict or request in progress.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error422:
      description: Invalid parameters.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error429:
      description: Request limit reached.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error500:
      description: Request processing failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error502:
      description: Upstream service failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error503:
      description: Provider or required service is unavailable.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error504:
      description: Upstream service timed out.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.