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

# Bericht ausführen

> Führt einen Bericht nach Name aus. Die Query-Parameter bilden eine gemeinsame Obermenge für die 11 Berichtstypen; nicht unterstützte Zusatzparameter werden von Berichten ignoriert, die sie nicht lesen.



## OpenAPI

````yaml /openapi.de.json get /reports/{report}
openapi: 3.1.0
info:
  title: PricePirate Admin API
  version: 1.0.0
  description: >-
    Anfragelimits: Jeder Shop kann 60 Anfragen pro Minute über alle
    API-Schlüssel hinweg senden. Wenn das Limit überschritten wird, gibt die API
    429 TOO_MANY_REQUESTS mit einem Retry-After-Header zurück.
servers:
  - url: https://app.pricepirate.com/api/v1
security:
  - bearerAuth: []
tags:
  - name: reports
    x-group: Berichte
  - name: catalog
    x-group: Katalog
  - name: listings
    x-group: Listings
  - name: metrics
    x-group: Metriken
  - name: price-changes
    x-group: Preisänderungen
  - name: pricing
    x-group: Preisgestaltung
  - name: shop
    x-group: Shop
  - name: tracked-variants
    x-group: Überwachte Varianten
paths:
  /reports/{report}:
    get:
      tags:
        - reports
      summary: Bericht ausführen
      description: >-
        Führt einen Bericht nach Name aus. Die Query-Parameter bilden eine
        gemeinsame Obermenge für die 11 Berichtstypen; nicht unterstützte
        Zusatzparameter werden von Berichten ignoriert, die sie nicht lesen.
      operationId: reports.get
      parameters:
        - name: report
          in: path
          description: Berichtskennung.
          required: true
          schema:
            type: string
            enum:
              - average-price-trend
              - cheapest-trend
              - competitor-leaderboard
              - headroom-and-exposure
              - offers-trend
              - position-distribution
              - price-ranges
              - price-change-funnel
              - price-change-status-trend
              - price-direction-heatmap
              - volatility-list
          example: average-price-trend
        - name: timeWindow
          in: query
          description: Berichtszeitfenster, das von allen Berichten verwendet wird.
          required: false
          schema:
            type: string
            enum:
              - 7d
              - 14d
              - 30d
          example: 7d
        - name: variantIds
          in: query
          description: >-
            Filtern Sie Berichte auf bestimmte Shopify-Produktvarianten-IDs.
            Wird von allen Berichten außer volatility-list verwendet.
            Wiederholen Sie den Parameter oder übergeben Sie eine kommagetrennte
            Liste.
          required: false
          schema:
            type: array
            items:
              type: string
          style: form
          explode: true
          example:
            - gid://shopify/ProductVariant/1001
        - name: collectionId
          in: query
          description: >-
            Filtern Sie Berichte auf Varianten in einer Shopify-Kollektion. Wird
            von allen Berichten außer volatility-list verwendet.
          required: false
          schema:
            type: string
          example: gid://shopify/Collection/2001
        - name: source
          in: query
          description: Preisquelle, die abgefragt werden soll.
          required: false
          schema:
            type: string
            enum:
              - IDEALO
              - GOOGLE_SHOPPING
              - KLARNA
              - PRICERUNNER
              - ALLEGRO
              - AMAZON
          example: IDEALO
        - name: country
          in: query
          description: Markt-Ländercode, der abgefragt werden soll.
          required: false
          schema:
            type: string
            enum:
              - AE
              - AT
              - AU
              - BE
              - BG
              - BR
              - CA
              - CH
              - CN
              - CZ
              - DE
              - DK
              - ES
              - FI
              - FR
              - GR
              - HR
              - HU
              - IE
              - IN
              - IT
              - JP
              - NL
              - 'NO'
              - PL
              - PT
              - RO
              - MX
              - SE
              - SK
              - UK
              - US
          example: DE
        - name: priceBasis
          in: query
          description: >-
            Preisgrundlage, die von cheapest-trend, position-distribution und
            price-ranges verwendet wird.
          required: false
          schema:
            type: string
            enum:
              - price
              - total
          example: price
        - name: page
          in: query
          description: >-
            Seitennummer, beginnend bei 1, die von competitor-leaderboard
            verwendet wird.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100000
          example: 1
        - name: perPage
          in: query
          description: Einträge pro Seite, die von competitor-leaderboard verwendet werden.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
          example: 25
        - name: sortBy
          in: query
          description: Sortierfeld, das von competitor-leaderboard verwendet wird.
          required: false
          schema:
            type: string
            enum:
              - shopName
              - sharedListings
              - timesRankOne
              - undercutShare
              - avgPosition
              - timesRankOneByPrice
              - timesRankOneByTotal
              - undercutShareByPrice
              - undercutShareByTotal
              - avgPricePosition
              - avgTotalPosition
              - avgShipping
          example: sharedListings
        - name: sortDirection
          in: query
          description: Sortierrichtung, die von competitor-leaderboard verwendet wird.
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
          example: desc
        - name: shopNameSearch
          in: query
          description: >-
            Suche nach Wettbewerber-Shopnamen ohne Beachtung der Groß- und
            Kleinschreibung, die von competitor-leaderboard verwendet wird.
          required: false
          schema:
            type: string
          example: example
        - name: headroomLimit
          in: query
          description: >-
            Maximale Anzahl von Headroom-Zeilen, die von headroom-and-exposure
            verwendet wird.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 50
          example: 5
        - name: exposureLimit
          in: query
          description: >-
            Maximale Anzahl von Exposure-Zeilen, die von headroom-and-exposure
            verwendet wird.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 50
          example: 5
        - name: limit
          in: query
          description: >-
            Maximale Anzahl von Zeilen, die von price-ranges und volatility-list
            verwendet wird.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 50
          example: 5
      responses:
        '200':
          description: Erfolgreiche Antwort.
          content:
            application/json:
              schema:
                type: object
                properties: {}
                additionalProperties: true
              example:
                points:
                  - date: '2025-01-01'
                    avgPrice: 99.9
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        default:
          $ref: '#/components/responses/DefaultError'
components:
  responses:
    BadRequest:
      description: Ungültige Anfrage oder Validierungsfehler.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: BAD_REQUEST
              message: JSON body must be an object
              details: Validation details may be included for invalid inputs.
              requestId: 1b11c2c2-7c6f-44d9-9980-02a77681b91f
    Unauthorized:
      description: Fehlendes oder ungültiges Bearer-Token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: UNAUTHORIZED
              message: Missing or invalid Authorization header
              requestId: 1b11c2c2-7c6f-44d9-9980-02a77681b91f
    Forbidden:
      description: Das Token ist gültig, aber die Anfrage ist nicht erlaubt.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: FORBIDDEN
              message: Forbidden
              requestId: 1b11c2c2-7c6f-44d9-9980-02a77681b91f
    NotFound:
      description: Endpunkt oder Domain-Ressource wurde nicht gefunden.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: NOT_FOUND
              message: Resource not found
              requestId: 1b11c2c2-7c6f-44d9-9980-02a77681b91f
    TooManyRequests:
      description: Anfragelimit überschritten.
      headers:
        Retry-After:
          description: Sekunden, die vor einem erneuten Versuch gewartet werden sollen.
          schema:
            type: string
          example: '60'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: TOO_MANY_REQUESTS
              message: Rate limit exceeded
              requestId: 1b11c2c2-7c6f-44d9-9980-02a77681b91f
    InternalServerError:
      description: Interner Serverfehler.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INTERNAL_SERVER_ERROR
              message: Internal server error
              requestId: 1b11c2c2-7c6f-44d9-9980-02a77681b91f
    DefaultError:
      description: Unerwartete Fehlerantwort.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INTERNAL_SERVER_ERROR
              message: Internal server error
              requestId: 1b11c2c2-7c6f-44d9-9980-02a77681b91f
  schemas:
    Error:
      type: object
      additionalProperties: false
      required:
        - error
      properties:
        error:
          type: object
          additionalProperties: false
          required:
            - code
            - message
            - requestId
          properties:
            code:
              type: string
              description: >-
                Fehlercode zur Laufzeit. Beispiele sind BAD_REQUEST,
                UNAUTHORIZED, FORBIDDEN, NOT_FOUND, CONFLICT, TOO_MANY_REQUESTS,
                INTERNAL_SERVER_ERROR, idempotency_key_required,
                idempotency_key_reuse und idempotency_key_in_progress.
            message:
              type: string
            details:
              description: >-
                Zusätzliche Validierungsdetails, typischerweise bei
                400-Antworten vorhanden.
            requestId:
              type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Public-API-Token, das als Authorization: Bearer <token> übergeben wird.'

````