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

# Sales and commission for your brand's products

> Brand-side performance reporting. See how your products are selling across
Amazon and how much commission you're paying out.

### What you'll see
You get one row for every combination of day, product and marketplace.
Each row tells you what activity drove that day: how many people clicked,
how many added the product to their cart, how many bought, and how much
you paid out in commission.

### Filtering
- `start` and `end` — required date range (inclusive). Either
  `YYYY-MM-DD` or `YYYYMMDD` works.
- `marketplace` — restrict to one Amazon marketplace. Pass `all` or omit
  for every marketplace.
- `asins` — comma-separated ASINs to focus on specific products.
- `brand_ids` — comma-separated brand ids. Only useful if you own more
  than one brand and want to drill into a subset.

### What's in the numbers
Sales, conversions, add-to-carts and detail page views include
the linked product itself plus any other items from your brand the shopper
bought. Sale amounts come back in the marketplace's native currency — no
currency conversion is applied.

### Clicks are link-level — don't sum them
Amazon reports clicks per ad group, per day, not per product — and every
Archer link is backed by exactly one ad group. Rows here are per-product, so
the same daily click total repeats across every product row driven by that
link, and summing the `clicks` column double-counts.

This endpoint does not expose a link identifier, so the column cannot be
deduplicated from the response. Read `clicks` as an indicator of traffic on
the row's link, not as a summable total. For brand-wide click totals, use the
dashboard or the affiliate `GET /reports` surface, which carries `link.id`.

See the [Reporting concept](/concepts/reporting) for details.

### Paging through results
Use `limit` (1–500, default 100) and take `next_cursor` from the response
to fetch the next page. When `next_cursor` is null, you've seen everything.



## OpenAPI

````yaml /docs/api-reference/sellers-openapi.json get /reports
openapi: 3.1.0
info:
  title: Archer Sellers API
  description: |2-

        API for Archer brand owners (sellers).

        Use these endpoints to see how your brand's products are selling on
        Amazon, and how much commission you're paying out.

        ## Authentication

        All endpoints require authentication using JWT Bearer tokens.

        ### How to authenticate:
        1. Use the `/token` endpoint to obtain an access token with your username and password.
        2. Click the "Authorize" button at the top right.
        3. Enter your token in the format: `Bearer <your_access_token>`.
        4. Click "Authorize" to apply the token to all requests.
        
  version: '2.0'
servers:
  - url: https://api.archeraffiliates.com/sellers
    description: Production
security: []
paths:
  /reports:
    get:
      tags:
        - Reports
      summary: Sales and commission for your brand's products
      description: >-
        Brand-side performance reporting. See how your products are selling
        across

        Amazon and how much commission you're paying out.


        ### What you'll see

        You get one row for every combination of day, product and marketplace.

        Each row tells you what activity drove that day: how many people
        clicked,

        how many added the product to their cart, how many bought, and how much

        you paid out in commission.


        ### Filtering

        - `start` and `end` — required date range (inclusive). Either
          `YYYY-MM-DD` or `YYYYMMDD` works.
        - `marketplace` — restrict to one Amazon marketplace. Pass `all` or omit
          for every marketplace.
        - `asins` — comma-separated ASINs to focus on specific products.

        - `brand_ids` — comma-separated brand ids. Only useful if you own more
          than one brand and want to drill into a subset.

        ### What's in the numbers

        Sales, conversions, add-to-carts and detail page views include

        the linked product itself plus any other items from your brand the
        shopper

        bought. Sale amounts come back in the marketplace's native currency — no

        currency conversion is applied.


        ### Clicks are link-level — don't sum them

        Amazon reports clicks per ad group, per day, not per product — and every

        Archer link is backed by exactly one ad group. Rows here are
        per-product, so

        the same daily click total repeats across every product row driven by
        that

        link, and summing the `clicks` column double-counts.


        This endpoint does not expose a link identifier, so the column cannot be

        deduplicated from the response. Read `clicks` as an indicator of traffic
        on

        the row's link, not as a summable total. For brand-wide click totals,
        use the

        dashboard or the affiliate `GET /reports` surface, which carries
        `link.id`.


        See the [Reporting concept](/concepts/reporting) for details.


        ### Paging through results

        Use `limit` (1–500, default 100) and take `next_cursor` from the
        response

        to fetch the next page. When `next_cursor` is null, you've seen
        everything.
      operationId: list_seller_reports_reports_get
      parameters:
        - name: start
          in: query
          required: true
          schema:
            type: string
            description: >-
              First day of the report (inclusive). Use `YYYY-MM-DD` or
              `YYYYMMDD`.
            examples:
              iso:
                value: '2026-05-01'
              compact:
                value: '20260501'
            title: Start
          description: First day of the report (inclusive). Use `YYYY-MM-DD` or `YYYYMMDD`.
        - name: end
          in: query
          required: true
          schema:
            type: string
            description: >-
              Last day of the report (inclusive). Use `YYYY-MM-DD` or
              `YYYYMMDD`.
            examples:
              iso:
                value: '2026-05-31'
              compact:
                value: '20260531'
            title: End
          description: Last day of the report (inclusive). Use `YYYY-MM-DD` or `YYYYMMDD`.
        - name: marketplace
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Limit results to one Amazon marketplace — e.g. `amazon.com`,
              `amazon.co.uk`, `amazon.de`. Use `all` or leave blank to include
              every marketplace.
            examples:
              uk:
                value: amazon.co.uk
              all:
                value: all
            title: Marketplace
          description: >-
            Limit results to one Amazon marketplace — e.g. `amazon.com`,
            `amazon.co.uk`, `amazon.de`. Use `all` or leave blank to include
            every marketplace.
        - name: asins
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Limit results to one or more products by ASIN. Separate multiple
              ASINs with commas.
            examples:
              single:
                value: B0D45KS7QM
              multi:
                value: B0D45KS7QM,B07XJ8C8F5
            title: Asins
          description: >-
            Limit results to one or more products by ASIN. Separate multiple
            ASINs with commas.
        - name: brand_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Limit results to specific brands you own. Separate multiple ids
              with commas.
            title: Brand Ids
          description: >-
            Limit results to specific brands you own. Separate multiple ids with
            commas.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 500
            minimum: 1
            description: How many rows to return per page (1–500). Defaults to 100.
            default: 100
            title: Limit
          description: How many rows to return per page (1–500). Defaults to 100.
        - name: cursor
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Use `next_cursor` from the previous response. Leave blank for the
              first page.
            title: Cursor
          description: >-
            Use `next_cursor` from the previous response. Leave blank for the
            first page.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerReportsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - OAuth2PasswordBearer: []
components:
  schemas:
    SellerReportsResponse:
      properties:
        total_count:
          type: integer
          title: Total Count
          description: Total rows matching your filters across every page.
        total_count_exact:
          type: boolean
          title: Total Count Exact
          description: >-
            True when `total_count` is exact. False means MongoDB hit the
            bounded count time limit; use `next_cursor` to continue paging.
          default: true
        fetched_count:
          type: integer
          title: Fetched Count
          description: Rows in this page.
        next_cursor:
          anyOf:
            - type: string
            - type: 'null'
          title: Next Cursor
          description: >-
            Pass this back as `cursor` to fetch the next page. Null when you're
            on the last page.
        rows:
          items:
            $ref: '#/components/schemas/SellerReportRow'
          type: array
          title: Rows
          description: The performance rows for this page.
      type: object
      required:
        - total_count
        - fetched_count
        - rows
      title: SellerReportsResponse
      description: The response from GET /sellers/reports.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    SellerReportRow:
      properties:
        asin:
          anyOf:
            - type: string
            - type: 'null'
          title: Asin
          description: The Amazon product identifier.
        product_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Product Name
          description: Product title at the time of the sale.
        date:
          anyOf:
            - type: string
            - type: 'null'
          title: Date
          description: The day the activity happened (YYYY-MM-DD).
        marketplace:
          anyOf:
            - type: string
            - type: 'null'
          title: Marketplace
          description: The Amazon marketplace, e.g. `amazon.co.uk`.
        country_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Country Code
          description: Two-letter country code, e.g. `UK`.
        currency:
          anyOf:
            - type: string
            - type: 'null'
          title: Currency
          description: Currency of the money values on this row (no conversion is applied).
        brand_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Brand Id
          description: The brand the row belongs to.
        brand_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Brand Name
          description: Brand name as recorded on the row.
        sales:
          type: number
          title: Sales
          description: >-
            Total sales attributed to the brand on this day, in the row's
            currency.
          default: 0
        conversions:
          type: number
          title: Conversions
          description: Total units sold attributed to the brand.
          default: 0
        purchases:
          type: number
          title: Purchases
          description: >-
            Attributed purchase count — orders that contained an attributed
            sale.
          default: 0
        clicks:
          type: integer
          title: Clicks
          description: >-
            Click-throughs on the link that drove this row, on this day. Amazon
            reports clicks per ad group (one per link), not per product, so the
            same value repeats across every product row from that link. Do not
            sum this column — see the endpoint description.
          default: 0
        addToCarts:
          type: integer
          title: Addtocarts
          description: Times a shopper added an attributed product to their cart.
          default: 0
        detailPageViews:
          type: integer
          title: Detailpageviews
          description: Product detail page views driven by the row.
          default: 0
        commissionPaid:
          type: number
          title: Commissionpaid
          description: Commission the brand paid out for this row, in the row's currency.
          default: 0
        brandReferralBonus:
          type: number
          title: Brandreferralbonus
          description: Amazon Brand Referral Bonus credited to the brand for this row.
          default: 0
      type: object
      title: SellerReportRow
      description: |-
        One day of brand-side performance for a single product on one Amazon
        marketplace.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    OAuth2PasswordBearer:
      type: oauth2
      flows:
        password:
          scopes: {}
          tokenUrl: token

````