SkimBit Reports API

The Reports API from SkimBit — 8 operation(s) for reports.

OpenAPI Specification

skimbit-reports-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Skimlinks Merchant Commissions Reports API
  version: v4
  description: 'The Skimlinks Merchant API provides a convenient way to gather information about the merchants (advertisers/programs) participating in the Skimlinks affiliate program that are available to the authenticated publisher. It exposes merchant programs, the publisher''s monetizable domains, the Skimlinks vertical taxonomies, and current merchant offers (coupons, deals, promotions). All responses are JSON.


    Authentication: every request requires a temporary, timestamp-based `access_token` passed as a query parameter. Obtain one by POSTing your `client_id` and `client_secret` (from Publisher Hub > Toolbox > APIs > API Authentication credentials) with `grant_type=client_credentials` to `https://authentication.skimapis.com/access_token`.


    Rate limiting: some endpoints are limited to 40 requests per minute and 1000 per hour per API key. Exceeding the limit returns `429 Too Many Requests`.'
  contact:
    name: Skimlinks Developer Support
    url: https://developers.skimlinks.com/merchant.html
  x-generated: '2026-07-21'
  x-method: searched
  x-source: https://developers.skimlinks.com/merchant.html (Apiary blueprint skimlinksmerchantapi)
servers:
- url: https://merchants.skimapis.com
  description: Skimlinks Merchant API production host
security:
- access_token: []
tags:
- name: Reports
paths:
  /publisher/{publisher_id}/reports:
    get:
      operationId: getAggregatedReports
      summary: Get aggregated performance reports
      description: Query the Hub Performance report data aggregated by page, date, device, country, domain, link, merchant or network_payout_type. Limited to 40 requests/min and 500/hour per API key.
      tags:
      - Reports
      parameters:
      - name: publisher_id
        in: path
        required: true
        schema:
          type: integer
      - name: access_token
        in: query
        required: true
        schema:
          type: string
      - name: report_by
        in: query
        required: true
        schema:
          type: string
          enum:
          - page
          - date
          - device
          - country
          - domain
          - link
          - merchant
          - network_payout_type
      - name: start_date
        in: query
        required: true
        schema:
          type: string
          format: date
      - name: end_date
        in: query
        required: true
        schema:
          type: string
          format: date
      - name: limit
        in: query
        schema:
          type: integer
          default: 30
          minimum: 1
          maximum: 600
      - name: offset
        in: query
        schema:
          type: integer
      - name: sort_by
        in: query
        schema:
          type: string
          enum:
          - impressions
          - clicks_affiliated
          - order_amount
          - publisher_commission_amount
          - sales
          - page_url
          - isodate
          - device_type
          - user_ip_country
          - domain
          - merchant_name
          - target_url
      - name: sort_dir
        in: query
        schema:
          type: string
          enum:
          - DESC
          - ASC
      - name: time_period
        in: query
        schema:
          type: string
          enum:
          - day
          - week
          - month
      - name: currency
        in: query
        schema:
          type: string
        description: ISO 4217 currency code.
      - name: a_id
        in: query
        schema:
          type: integer
      - name: domain_id
        in: query
        schema:
          type: integer
      - name: page_search
        in: query
        schema:
          type: string
      - name: link_search
        in: query
        schema:
          type: string
      - name: merchant_search
        in: query
        schema:
          type: string
      - name: user_ip_countries
        in: query
        schema:
          type: string
      - name: payment_type
        in: query
        schema:
          type: string
          enum:
          - affiliate
          - flatfee
      - name: timezone
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Aggregated report rows plus totals.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                  reports:
                    type: array
                    items:
                      type: object
                  totals:
                    type: object
              example:
                count: 1
                reports:
                - publisher_commission_amount: 8.27
                  clicks_affiliated: 754
                  sales: 3
                  isodate: 2018-02-15/2018-02-15
                  impressions: 23402
                  order_amount: 130.97
                totals:
                  publisher_commission_amount: 8.27
                  clicks_affiliated: 754
                  sales: 3
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /publisher/{publisher_id}/aggregation/v1/link-report:
    get:
      operationId: getLinkReport
      summary: Multi-aggregated link report (NDJSON)
      description: Fetch click-level performance report data grouped by up to 4 dimensions with selected sum metrics. Streamed as NDJSON with X-Count / X-Has-Next headers. Limited to 5 requests/min and 100/hour per API key.
      tags:
      - Reports
      parameters:
      - name: publisher_id
        in: path
        required: true
        schema:
          type: integer
      - name: access_token
        in: query
        required: true
        schema:
          type: string
      - name: start_date
        in: query
        required: true
        schema:
          type: string
          format: date
      - name: end_date
        in: query
        required: true
        schema:
          type: string
          format: date
      - name: limit
        in: query
        schema:
          type: integer
          default: 50000
          minimum: 10000
          maximum: 100000
      - name: offset
        in: query
        schema:
          type: integer
      - name: dim
        in: query
        required: true
        description: Dimension(s) to group by (repeatable, up to 4).
        schema:
          type: array
          items:
            type: string
            enum:
            - advertiser_id
            - date
            - device_type
            - merchant_id
            - page_url
            - platform_id
            - publisher_domain_id
            - skim_product_id
            - target_url
            - user_ip_country
      - name: met
        in: query
        required: true
        description: Metric(s) to include (repeatable).
        schema:
          type: array
          items:
            type: string
            enum:
            - clicks_count_total
            - items_count
            - order_amount_eur
            - order_amount_gbp
            - order_amount_usd
            - order_amount
            - publisher_commission_amount_eur
            - publisher_commission_amount_gbp
            - publisher_commission_amount_usd
            - publisher_commission_amount
            - sales_total
      - name: currency
        in: query
        schema:
          type: string
      responses:
        '200':
          description: NDJSON stream of aggregated rows.
          content:
            application/x-ndjson:
              schema:
                type: string
              example: '{"device_type": "mobile", "publisher_commission_amount_gbp": 100.00}

                {"device_type": "pc", "publisher_commission_amount_gbp": 34.56}

                '
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /publisher/{publisher_id}/aggregation/v1/link-report/dimensions:
    get:
      operationId: getLinkReportDimensions
      summary: List available link-report dimensions
      tags:
      - Reports
      parameters:
      - name: publisher_id
        in: path
        required: true
        schema:
          type: integer
      - name: access_token
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: List of dimensions.
  /publisher/{publisher_id}/aggregation/v1/link-report/metrics:
    get:
      operationId: getLinkReportMetrics
      summary: List available link-report metrics
      tags:
      - Reports
      parameters:
      - name: publisher_id
        in: path
        required: true
        schema:
          type: integer
      - name: access_token
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: List of metrics.
  /publisher/{publisher_id}/aggregation/v1/page-report:
    get:
      operationId: getPageReport
      summary: Multi-aggregated page report (NDJSON)
      description: Fetch page-impression level performance report data grouped by selected dimensions and sum metrics. Streamed as NDJSON with X-Count / X-Has-Next headers. Limited to 5 requests/min and 100/hour per API key.
      tags:
      - Reports
      parameters:
      - name: publisher_id
        in: path
        required: true
        schema:
          type: integer
      - name: access_token
        in: query
        required: true
        schema:
          type: string
      - name: start_date
        in: query
        required: true
        schema:
          type: string
          format: date
      - name: end_date
        in: query
        required: true
        schema:
          type: string
          format: date
      - name: limit
        in: query
        schema:
          type: integer
          default: 50000
          minimum: 10000
          maximum: 100000
      - name: offset
        in: query
        schema:
          type: integer
      - name: dim
        in: query
        required: true
        schema:
          type: array
          items:
            type: string
            enum:
            - date
            - device_type
            - page_url
            - platform_id
            - publisher_domain_id
      - name: met
        in: query
        required: true
        schema:
          type: array
          items:
            type: string
            enum:
            - clicks_count_total
            - impressions_count_total
            - items_count
            - order_amount_eur
            - order_amount_gbp
            - order_amount_usd
            - publisher_commission_amount_eur
            - publisher_commission_amount_gbp
            - publisher_commission_amount_usd
            - sales_total
      responses:
        '200':
          description: NDJSON stream of aggregated rows.
          content:
            application/x-ndjson:
              schema:
                type: string
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /publisher/{publisher_id}/aggregation/v1/page-report/dimensions:
    get:
      operationId: getPageReportDimensions
      summary: List available page-report dimensions
      tags:
      - Reports
      parameters:
      - name: publisher_id
        in: path
        required: true
        schema:
          type: integer
      - name: access_token
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: List of dimensions.
  /publisher/{publisher_id}/aggregation/v1/page-report/metrics:
    get:
      operationId: getPageReportMetrics
      summary: List available page-report metrics
      tags:
      - Reports
      parameters:
      - name: publisher_id
        in: path
        required: true
        schema:
          type: integer
      - name: access_token
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: List of metrics.
  /publisher/{publisher_id}/deactivated-merchants:
    get:
      operationId: getDeactivatedMerchants
      summary: Get deactivated merchants report
      description: Lists merchants that have been deactivated and aggregates clicks and revenue for the publisher over the recent period.
      tags:
      - Reports
      parameters:
      - name: publisher_id
        in: path
        required: true
        schema:
          type: integer
      - name: access_token
        in: query
        required: true
        schema:
          type: string
      - name: sort_by
        in: query
        required: true
        schema:
          type: string
          enum:
          - deactivated_date
          - clicks_affiliated
          - publisher_combined_commission_amount
      - name: sort_dir
        in: query
        required: true
        schema:
          type: string
          enum:
          - DESC
          - ASC
      - name: limit
        in: query
        required: true
        schema:
          type: integer
          default: 30
          minimum: 0
          maximum: 50000
      - name: offset
        in: query
        required: true
        schema:
          type: integer
      - name: min_publisher_combined_commission_amount
        in: query
        required: true
        schema:
          type: number
          default: 0.01
      - name: domain_id
        in: query
        schema:
          type: string
      - name: currency
        in: query
        schema:
          type: string
      - name: timezone
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Deactivated merchants with pagination.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reports:
                    type: array
                    items:
                      type: object
                  pagination:
                    $ref: '#/components/schemas/Pagination'
components:
  schemas:
    Pagination:
      type: object
      properties:
        has_next:
          type: boolean
        total_count:
          type: integer
        offset:
          type: integer
        limit:
          type: integer
  responses:
    TooManyRequests:
      description: Rate limit exceeded. Returns 429 Too Many Requests.
  securitySchemes:
    access_token:
      type: apiKey
      in: query
      name: access_token
      description: Timestamp-based access token obtained from https://authentication.skimapis.com/access_token via a client_credentials grant using your client_id and client_secret.