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

# Obtenir les analyses de l’espace de travail

> Obtenir des totaux filtrés des coûts, des requêtes et des jetons de l’espace de travail.

<Note>Ce point de terminaison nécessite une clé API de gestion avec `analytics:read`.</Note>

Filtrez par date, libellé de requête, clé API, utilisateur final, modèle, fournisseur, point de terminaison, source d’identifiants ou résultat. Les résultats sont regroupés par date, modèle, fournisseur et point de terminaison, avec une pagination stable.

Les plages sont limitées aux 30 derniers jours UTC complets et à 10 000 requêtes source au maximum.


## OpenAPI

````yaml fr/openapi/v1/openapi.localized.yaml GET /analytics
openapi: 3.0.3
info:
  title: Phaseo Gateway API
  description: >-
    Une API de passerelle pour accéder à divers modèles d’IA via des points de
    terminaison compatibles avec OpenAI.
  version: 1.0.0
  contact:
    name: Phaseo
    url: https://phaseo.app
    email: danielbutler500@gmail.com
servers:
  - url: https://api.phaseo.app/v1
    description: Routage mondial
security:
  - BearerAuth: []
tags:
  - name: Gateway
    description: Core Phaseo Gateway operations.
paths:
  /analytics:
    get:
      tags:
        - Gateway
      summary: Obtenir les analyses de l’espace de travail
      description: >-
        Renvoie les agrégats de coût, de requêtes et de tokens regroupés par
        date, modèle, fournisseur et endpoint pour les 30 derniers jours UTC
        complets.
      operationId: getActivityAlias
      parameters:
        - name: date
          in: query
          description: >-
            Filtre sur une seule date UTC parmi les 30 derniers jours complets
            (YYYY-MM-DD).
          schema:
            type: string
            format: date
        - name: label_key
          in: query
          description: >-
            Clé d’étiquette de requête à inclure dans la ventilation des
            dépenses. Doit être fournie avec label_value.
          schema:
            type: string
            maxLength: 64
            pattern: ^[A-Za-z0-9_.:-]{1,64}$
        - name: label_value
          in: query
          description: >-
            Valeur d’étiquette de requête à inclure dans la ventilation des
            dépenses. Doit être fournie avec label_key.
          schema:
            type: string
            maxLength: 256
        - name: key_id
          in: query
          description: Filtre par identifiant de clé API.
          schema:
            type: string
        - name: end_user_id
          in: query
          description: Filtre par identifiant d’utilisateur final défini par l’application.
          schema:
            type: string
            maxLength: 256
        - name: model
          in: query
          description: >-
            Filtre par slug canonique du modèle demandé ou utilisé lors du
            routage.
          schema:
            $ref: '#/components/schemas/ModelId'
        - name: provider
          in: query
          description: Filtre par slug du fournisseur.
          schema:
            type: string
            maxLength: 128
        - name: endpoint
          in: query
          description: Filtre par identifiant d’endpoint de la passerelle.
          schema:
            type: string
            maxLength: 128
        - name: byok
          in: query
          description: Filtre le trafic géré ou BYOK.
          schema:
            type: boolean
        - name: success
          in: query
          description: Filtre les requêtes réussies ou échouées.
          schema:
            type: boolean
        - $ref: '#/components/parameters/Offset'
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 1000
            default: 1000
      responses:
        '200':
          description: Récupéré
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyticsResponse'
        '400':
          description: Erreur de requête incorrecte
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Non autorisé
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Erreur d’accès interdit
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Erreur interne du serveur
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ModelId:
      type: string
      description: >-
        Identifiant du modèle. Il s’agit d’une chaîne déterminée à l’exécution,
        ce qui permet d’utiliser les nouveaux modèles sans attendre une mise à
        jour du SDK.
      example: ai21/jamba-1.5-large
    AnalyticsResponse:
      type: object
      required:
        - data
        - total_count
        - offset
        - limit
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ActivityEntry'
        total_count:
          type: integer
          minimum: 0
        offset:
          type: integer
          minimum: 0
        limit:
          type: integer
          minimum: 1
          maximum: 1000
      additionalProperties: false
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        ok:
          type: boolean
          example: false
        error:
          oneOf:
            - type: string
            - type: object
              additionalProperties: true
          example: error_type
        message:
          type: string
          example: Human-readable error message
        description:
          type: string
          example: Additional error details.
        generation_id:
          type: string
          example: G-abc123
        status_code:
          type: integer
          example: 502
        error_type:
          type: string
          enum:
            - user
            - system
          example: system
        error_origin:
          type: string
          enum:
            - user
            - gateway
            - upstream
          example: upstream
        reason:
          type: string
          example: all_candidates_failed
        attempt_count:
          type: integer
          example: 2
        failed_providers:
          type: array
          items:
            type: string
          example:
            - google-ai-studio
            - openai
        failed_statuses:
          type: array
          items:
            type: integer
          example:
            - 403
            - 429
        upstream_error:
          $ref: '#/components/schemas/ErrorUpstreamError'
        failure_sample:
          type: array
          items:
            $ref: '#/components/schemas/ErrorFailureSampleItem'
        provider_failure_diagnostics:
          $ref: '#/components/schemas/ErrorProviderFailureDiagnostics'
        routing_diagnostics:
          $ref: '#/components/schemas/ErrorRoutingDiagnostics'
        provider_candidate_diagnostics:
          $ref: '#/components/schemas/ErrorProviderCandidateDiagnostics'
        provider_enablement:
          $ref: '#/components/schemas/ErrorProviderEnablementDiagnostics'
        missing_pricing_providers:
          type: array
          items:
            type: string
        provider_payment_required_provider:
          type: string
          example: openai
        provider_payment_required_support_notice:
          type: string
          example: >-
            Our upstream provider billing appears to be unavailable. If this
            persists, contact support.
        details:
          type: array
          items:
            type: object
            additionalProperties: true
      additionalProperties: true
    ActivityEntry:
      type: object
      required:
        - date
        - model
        - model_permaslug
        - endpoint_id
        - provider_name
        - usage
        - byok_usage_inference
        - requests
        - prompt_tokens
        - completion_tokens
        - reasoning_tokens
      properties:
        date:
          type: string
          format: date
          example: '2025-08-24T00:00:00.000Z'
        model:
          type: string
          example: openai/gpt-4.1
        model_permaslug:
          type: string
          example: openai/gpt-4.1-2025-04-14
        endpoint_id:
          type: string
          example: chat.completions
        provider_name:
          type: string
          example: OpenAI
        usage:
          type: number
          example: 0.015
        byok_usage_inference:
          type: number
          example: 0.012
        requests:
          type: integer
          example: 5
        prompt_tokens:
          type: integer
          example: 50
        completion_tokens:
          type: integer
          example: 125
        reasoning_tokens:
          type: integer
          example: 25
      additionalProperties: false
    ErrorUpstreamError:
      type: object
      properties:
        code:
          type: string
          nullable: true
          example: PERMISSION_DENIED
        message:
          type: string
          nullable: true
          example: The caller does not have permission.
        description:
          type: string
          nullable: true
        param:
          type: string
          nullable: true
    ErrorFailureSampleItem:
      type: object
      properties:
        provider:
          type: string
          nullable: true
        type:
          type: string
          nullable: true
        status:
          type: integer
          nullable: true
        upstream_error_code:
          type: string
          nullable: true
        upstream_error_message:
          type: string
          nullable: true
        upstream_error_description:
          type: string
          nullable: true
        upstream_error_param:
          type: string
          nullable: true
        upstream_payload_preview:
          type: string
          nullable: true
        retryable:
          type: boolean
          nullable: true
      additionalProperties: true
    ErrorProviderFailureDiagnostics:
      type: object
      properties:
        category:
          type: string
          enum:
            - credentials_not_configured
            - credentials_invalid_or_forbidden
            - provider_access_missing
            - region_or_project_restriction
            - model_unavailable_for_endpoint
            - rate_limited
            - server_error
        hint:
          type: string
        provider:
          type: string
          nullable: true
    ErrorRoutingDiagnostics:
      type: object
      properties:
        filterStages:
          type: array
          items:
            type: object
            properties:
              stage:
                type: string
              beforeCount:
                type: integer
              afterCount:
                type: integer
              droppedProviders:
                type: array
                items:
                  type: object
                  properties:
                    providerId:
                      type: string
                      nullable: true
                    reason:
                      type: string
                      nullable: true
                  additionalProperties: true
            additionalProperties: true
      additionalProperties: true
    ErrorProviderCandidateDiagnostics:
      type: object
      properties:
        totalProviders:
          type: integer
        supportsEndpointCount:
          type: integer
        candidateCount:
          type: integer
        droppedUnsupportedEndpoint:
          type: array
          items:
            type: string
        droppedMissingAdapter:
          type: array
          items:
            type: object
            properties:
              providerId:
                type: string
                nullable: true
              endpoint:
                type: string
                nullable: true
            additionalProperties: true
      additionalProperties: true
    ErrorProviderEnablementDiagnostics:
      type: object
      properties:
        capability:
          type: string
        providersBefore:
          type: array
          items:
            type: string
        providersAfter:
          type: array
          items:
            type: string
        dropped:
          type: array
          items:
            type: object
            properties:
              providerId:
                type: string
                nullable: true
              reason:
                type: string
                nullable: true
            additionalProperties: true
      additionalProperties: true
  parameters:
    Offset:
      name: offset
      in: query
      required: false
      description: Nombre d’enregistrements à ignorer.
      schema:
        type: integer
        minimum: 0
        default: 0
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Authentification par jeton Bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.