> ## 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.

# Přehled produktové analytiky

> Získejte výsledky Katalogu a objem práce v Lasso za zadané období.

## Význam metrik

* `from` a `to` jsou včetně krajních dat. `scope` má výchozí hodnotu `all`; při užším rozsahu se ostatní části odpovědi vynechají.
* Jedinečné produkty Katalogu počítají živé produkty s alespoň jedním významným zápisem pole v období. Opakované úpravy jednoho produktu se počítají jednou.
* `new_products` a `updated_existing` v Katalogu se vzájemně vylučují a jejich součet odpovídá počtu jedinečných produktů.
* Aktuální součty Katalogu jsou snapshot inventáře. Filtry data a uživatele je nemění; filtry stavu, schématu a zdroje ano.
* Připravené produkty v Lasso počítají řádky výsledků extrakce vytvořené v období a přiřazují je iniciátorovi tabulky.

`source` je filtr pouze pro Katalog a vyžaduje `scope=catalog`.


## OpenAPI

````yaml openapi.yaml GET /analytics/products/summary
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/summary:
    get:
      tags:
        - Analytics
      summary: Get Catalog and Lasso product analytics
      description: >
        Returns Catalog business outcomes and Lasso workflow volume for an
        inclusive date range.

        Catalog current totals are snapshots and therefore do not change with
        the date or user filter.
      operationId: getProductAnalyticsSummary
      parameters:
        - $ref: '#/components/parameters/ProductAnalyticsFromParam'
        - $ref: '#/components/parameters/ProductAnalyticsToParam'
        - name: scope
          in: query
          schema:
            type: string
            enum:
              - all
              - catalog
              - extraction
            default: all
        - $ref: '#/components/parameters/ProductAnalyticsCatalogStatusParam'
        - $ref: '#/components/parameters/ProductAnalyticsUserParam'
        - $ref: '#/components/parameters/ProductAnalyticsSchemaParam'
        - $ref: '#/components/parameters/ProductAnalyticsTableParam'
        - $ref: '#/components/parameters/ProductAnalyticsSourceParam'
      responses:
        '200':
          description: >-
            Product analytics summary. Sections outside the selected scope are
            omitted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductAnalyticsSummaryResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-codeSamples:
        - lang: bash
          label: cURL
          source: |
            curl --request GET \
              --url "https://app.productlasso.com/api/v1/analytics/products/summary?from=2026-08-01&to=2026-08-31&scope=all" \
              --header "Authorization: Bearer $LASSO_API_KEY"
        - lang: typescript
          label: TypeScript
          source: |
            const params = new URLSearchParams({
              from: "2026-08-01",
              to: "2026-08-31",
              scope: "all",
            });
            const response = await fetch(
              `https://app.productlasso.com/api/v1/analytics/products/summary?${params}`,
              { headers: { Authorization: `Bearer ${process.env.LASSO_API_KEY}` } },
            );

            if (!response.ok) throw new Error(await response.text());
            const summary = await response.json();
        - lang: python
          label: Python
          source: |
            import os
            import requests

            response = requests.get(
                "https://app.productlasso.com/api/v1/analytics/products/summary",
                headers={"Authorization": f"Bearer {os.environ['LASSO_API_KEY']}"},
                params={"from": "2026-08-01", "to": "2026-08-31", "scope": "all"},
                timeout=30,
            )
            response.raise_for_status()
            summary = response.json()
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:
    ProductAnalyticsSummaryResponse:
      type: object
      required:
        - period
        - filters
      properties:
        period:
          $ref: '#/components/schemas/ProductAnalyticsPeriod'
        filters:
          $ref: '#/components/schemas/ProductAnalyticsFilters'
        catalog:
          type: object
          required:
            - summary
            - current
            - daily
            - by_user
          properties:
            summary:
              type: object
              required:
                - unique_products
                - new_products
                - updated_existing
                - total_actions
              properties:
                unique_products:
                  type: integer
                  minimum: 0
                new_products:
                  type: integer
                  minimum: 0
                updated_existing:
                  type: integer
                  minimum: 0
                total_actions:
                  type: integer
                  minimum: 0
            current:
              type: object
              required:
                - all_live
                - active
                - draft
                - archived
              properties:
                all_live:
                  type: integer
                  minimum: 0
                active:
                  type: integer
                  minimum: 0
                draft:
                  type: integer
                  minimum: 0
                archived:
                  type: integer
                  minimum: 0
            daily:
              type: array
              items:
                type: object
                required:
                  - date
                  - unique_products
                  - new_products
                  - updated_existing
                properties:
                  date:
                    type: string
                    format: date
                  unique_products:
                    type: integer
                    minimum: 0
                  new_products:
                    type: integer
                    minimum: 0
                  updated_existing:
                    type: integer
                    minimum: 0
            by_user:
              type: array
              items:
                $ref: '#/components/schemas/ProductAnalyticsCatalogLeaderboardRow'
        extraction:
          type: object
          required:
            - summary
            - daily
            - by_user
            - by_table
          properties:
            summary:
              type: object
              required:
                - products_prepared
                - tables
              properties:
                products_prepared:
                  type: integer
                  minimum: 0
                tables:
                  type: integer
                  minimum: 0
            daily:
              type: array
              items:
                type: object
                required:
                  - date
                  - products_prepared
                properties:
                  date:
                    type: string
                    format: date
                  products_prepared:
                    type: integer
                    minimum: 0
            by_user:
              type: array
              items:
                $ref: '#/components/schemas/ProductAnalyticsExtractionUserRow'
            by_table:
              type: array
              items:
                $ref: '#/components/schemas/ProductAnalyticsExtractionTableRow'
    ProductAnalyticsPeriod:
      type: object
      required:
        - from
        - to
      properties:
        from:
          type: string
          format: date
        to:
          type: string
          format: date
    ProductAnalyticsFilters:
      type: object
      required:
        - catalog_status
        - user_id
        - schema_id
        - table_id
        - source
      properties:
        catalog_status:
          type: string
          enum:
            - all
            - active
            - draft
            - archived
        user_id:
          type:
            - string
            - 'null'
          description: User UUID, `system`, or null when no user filter is active.
        schema_id:
          type:
            - string
            - 'null'
          format: uuid
        table_id:
          type:
            - string
            - 'null'
          format: uuid
        source:
          type:
            - string
            - 'null'
          enum:
            - manual
            - product_extraction
            - shopify
            - null
    ProductAnalyticsCatalogLeaderboardRow:
      type: object
      required:
        - user
        - unique_products
        - new_products
        - updated_existing
        - total_actions
      properties:
        user:
          $ref: '#/components/schemas/ProductAnalyticsActor'
        unique_products:
          type: integer
          minimum: 0
        new_products:
          type: integer
          minimum: 0
        updated_existing:
          type: integer
          minimum: 0
        total_actions:
          type: integer
          minimum: 0
    ProductAnalyticsExtractionUserRow:
      type: object
      required:
        - user
        - products_prepared
        - tables
      properties:
        user:
          $ref: '#/components/schemas/ProductAnalyticsActor'
        products_prepared:
          type: integer
          minimum: 0
        tables:
          type: integer
          minimum: 0
    ProductAnalyticsExtractionTableRow:
      type: object
      required:
        - table_id
        - table_name
        - initiator
        - products_prepared
      properties:
        table_id:
          type: string
          format: uuid
        table_name:
          type: string
        initiator:
          $ref: '#/components/schemas/ProductAnalyticsActor'
        products_prepared:
          type: integer
          minimum: 0
    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

````