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

# List the exact products or result rows behind a metric

> List the exact products or result rows behind a metric.

## Usage notes

Use this endpoint to drill from an aggregate metric into the exact Catalog products or Lasso result rows behind it. Keep the same date range, scope, and filters that you used for the summary or leaderboard.

The response uses cursor pagination. Pass `next_cursor` unchanged to the next request. Do not interpret or construct cursors yourself.


## OpenAPI

````yaml openapi.yaml GET /analytics/products/activity
openapi: 3.1.0
info:
  title: Lasso API
  description: AI-powered product data extraction and enhancement API
  version: 1.0.0
  contact:
    name: Lasso Support
    url: https://lasso.ai
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://app.productlasso.com/api/v1
    description: Production
security:
  - BearerAuth: []
paths:
  /analytics/products/activity:
    get:
      tags:
        - Analytics
      summary: List the exact products or result rows behind a metric
      operationId: getProductAnalyticsActivity
      parameters:
        - $ref: '#/components/parameters/ProductAnalyticsFromParam'
        - $ref: '#/components/parameters/ProductAnalyticsToParam'
        - name: scope
          in: query
          required: true
          schema:
            type: string
            enum:
              - catalog
              - extraction
        - $ref: '#/components/parameters/ProductAnalyticsCatalogStatusParam'
        - $ref: '#/components/parameters/ProductAnalyticsUserParam'
        - $ref: '#/components/parameters/ProductAnalyticsSchemaParam'
        - $ref: '#/components/parameters/ProductAnalyticsTableParam'
        - $ref: '#/components/parameters/ProductAnalyticsSourceParam'
        - name: cursor
          in: query
          description: Opaque `next_cursor` returned by the previous page.
          schema:
            type: string
        - name: limit
          in: query
          schema:
            type: integer
            default: 25
            minimum: 1
            maximum: 100
      responses:
        '200':
          description: Keyset-paginated Catalog products or Lasso result rows.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductAnalyticsActivityResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  parameters:
    ProductAnalyticsFromParam:
      name: from
      in: query
      required: true
      description: Inclusive reporting-period start.
      schema:
        type: string
        format: date
    ProductAnalyticsToParam:
      name: to
      in: query
      required: true
      description: >-
        Inclusive reporting-period end. The range may contain at most 1,830
        days.
      schema:
        type: string
        format: date
    ProductAnalyticsCatalogStatusParam:
      name: catalog_status
      in: query
      description: >-
        Current Catalog status to include. `all` means active and draft
        products.
      schema:
        type: string
        enum:
          - all
          - active
          - draft
          - archived
        default: all
    ProductAnalyticsUserParam:
      name: user_id
      in: query
      description: Current or former user UUID, or `system` for unattributed automation.
      schema:
        type: string
    ProductAnalyticsSchemaParam:
      name: schema_id
      in: query
      description: Filters both Catalog products and Lasso extraction tables by schema.
      schema:
        type: string
        format: uuid
    ProductAnalyticsTableParam:
      name: table_id
      in: query
      description: Filters Lasso analytics to one extraction table.
      schema:
        type: string
        format: uuid
    ProductAnalyticsSourceParam:
      name: source
      in: query
      description: Catalog-only source filter. Requires `scope=catalog`.
      schema:
        type: string
        enum:
          - manual
          - product_extraction
          - shopify
  schemas:
    ProductAnalyticsActivityResponse:
      type: object
      required:
        - scope
        - items
        - next_cursor
      properties:
        scope:
          type: string
          enum:
            - catalog
            - extraction
        items:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/ProductAnalyticsCatalogActivityItem'
              - $ref: '#/components/schemas/ProductAnalyticsExtractionActivityItem'
        next_cursor:
          type:
            - string
            - 'null'
          description: Opaque cursor for the next page, or null when no more rows remain.
    ProductAnalyticsCatalogActivityItem:
      type: object
      required:
        - id
        - name
        - identity
        - status
        - source
        - schema_id
        - classification
        - first_activity_at
        - last_activity_at
        - action_count
        - contributors
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        identity:
          type:
            - string
            - 'null'
        status:
          type: string
          enum:
            - active
            - draft
            - archived
        source:
          type: string
          enum:
            - manual
            - product_extraction
            - shopify
        schema_id:
          type: string
          format: uuid
        classification:
          type: string
          enum:
            - new
            - updated_existing
        first_activity_at:
          type: string
          format: date-time
        last_activity_at:
          type: string
          format: date-time
        action_count:
          type: integer
          minimum: 1
        contributors:
          type: array
          items:
            $ref: '#/components/schemas/ProductAnalyticsActor'
    ProductAnalyticsExtractionActivityItem:
      type: object
      required:
        - id
        - name
        - row_index
        - source_file
        - table_id
        - table_name
        - last_activity_at
        - initiator
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        row_index:
          type: integer
          minimum: 0
        source_file:
          type: string
        table_id:
          type: string
          format: uuid
        table_name:
          type: string
        last_activity_at:
          type: string
          format: date-time
        initiator:
          $ref: '#/components/schemas/ProductAnalyticsActor'
    Error:
      type: object
      required:
        - status_code
        - error_type
        - message
        - request_id
      properties:
        status_code:
          type: integer
        error_type:
          type: string
          enum:
            - invalid_request
            - unauthenticated
            - forbidden
            - not_found
            - conflict
            - validation_error
            - rate_limited
            - service_unavailable
            - internal_error
        message:
          type: string
        request_id:
          type: string
        code:
          type: string
          description: >-
            Stable machine-readable detail code for validation, conflict, and
            retryable availability errors.
        retryable:
          type: boolean
          description: Whether the request can be retried without changing its payload.
        attribute_id:
          type: string
          format: uuid
          description: Stable Attribute identity when the error is scoped to one Attribute.
        attribute_key:
          type: string
          description: Attribute key when the error is scoped to one Attribute.
        details:
          type: object
          additionalProperties: true
        current_updated_at:
          type: string
          format: date-time
          description: >-
            Current resource revision supplied for client-directed refetch after
            a stale write.
    ProductAnalyticsActor:
      type: object
      required:
        - id
        - name
        - email
        - avatar_url
        - avatar_kind
        - avatar_config
        - avatar_storage_path
        - permission_preset
        - is_former_member
      properties:
        id:
          type:
            - string
            - 'null'
          format: uuid
        name:
          type: string
        email:
          type:
            - string
            - 'null'
          format: email
        avatar_url:
          type:
            - string
            - 'null'
          format: uri
        avatar_kind:
          type:
            - string
            - 'null'
          enum:
            - upload
            - boring
            - null
        avatar_config:
          type:
            - object
            - 'null'
          additionalProperties: true
        avatar_storage_path:
          type:
            - string
            - 'null'
        permission_preset:
          type:
            - string
            - 'null'
          description: >-
            Current permission preset; null for system or former actors without
            a current membership.
        is_former_member:
          type: boolean
  responses:
    BadRequest:
      description: Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key

````