Helicone Metrics API

The Metrics API from Helicone — 20 operation(s) for metrics.

Documentation

📖
Documentation
https://raw.githubusercontent.com/api-evangelist/helicone/refs/heads/main/ https://www.helicone.ai/
📖
Documentation
https://docs.helicone.ai/
📖
GettingStarted
https://docs.helicone.ai/getting-started/quick-start
📖
APIReference
https://docs.helicone.ai/rest/request/post-v1requestquery
📖
Documentation
https://docs.helicone.ai/gateway/overview
📖
APIReference
https://docs.helicone.ai/rest/ai-gateway/post-v1-chat-completions
📖
Documentation
https://docs.helicone.ai/rest/request/post-v1requestquery
📖
Documentation
https://docs.helicone.ai/rest/prompts/post-v1prompt-2025
📖
Documentation
https://docs.helicone.ai/features/experiments
📖
APIReference
https://docs.helicone.ai/rest/experiment/post-v1experiment-evaluatorsrun
📖
Documentation
https://docs.helicone.ai/rest/evals/post-v1evals
📖
Documentation
https://docs.helicone.ai/features/sessions
📖
APIReference
https://docs.helicone.ai/rest/session/post-v1sessionquery
📖
Documentation
https://docs.helicone.ai/features/advanced-usage/user-metrics
📖
APIReference
https://docs.helicone.ai/rest/user/post-v1userquery
📖
Documentation
https://docs.helicone.ai/features/webhooks
📖
APIReference
https://docs.helicone.ai/rest/webhooks/get-v1webhooks
📖
Documentation
https://docs.helicone.ai/rest/models/get-v1public-model-registry-models
📖
Documentation
https://docs.helicone.ai/rest/trace/post-v1tracelog
📖
Documentation
https://docs.helicone.ai/rest/dashboard/post-v1dashboardscoresquery
📖
Documentation
https://docs.helicone.ai/features/advanced-usage/custom-properties
📖
APIReference
https://docs.helicone.ai/rest/property/post-v1propertyquery

Specifications

Other Resources

OpenAPI Specification

helicone-metrics-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: helicone-api Agent Metrics API
  version: 1.0.0
  license:
    name: MIT
  contact: {}
servers:
- url: https://api.helicone.ai/
- url: http://localhost:8585/
tags:
- name: Metrics
paths:
  /v1/metrics/totalRequests:
    post:
      operationId: GetTotalRequests
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_number.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricsFilterBody'
  /v1/metrics/totalCost:
    post:
      operationId: GetTotalCost
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_number.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricsFilterBody'
  /v1/metrics/averageLatency:
    post:
      operationId: GetAverageLatency
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_number.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricsFilterBody'
  /v1/metrics/averageTimeToFirstToken:
    post:
      operationId: GetAverageTimeToFirstToken
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_number.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricsFilterBody'
  /v1/metrics/averageTokensPerRequest:
    post:
      operationId: GetAverageTokensPerRequest
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_TokensPerRequest.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricsFilterBody'
  /v1/metrics/totalThreats:
    post:
      operationId: GetTotalThreats
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_number.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricsFilterBody'
  /v1/metrics/activeUsers:
    post:
      operationId: GetActiveUsers
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_number.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricsFilterBody'
  /v1/metrics/requestOverTime:
    post:
      operationId: GetRequestsOverTime
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_RequestsOverTime-Array.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricsOverTimeBody'
  /v1/metrics/costOverTime:
    post:
      operationId: GetCostOverTime
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_CostOverTime-Array.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricsOverTimeBody'
  /v1/metrics/tokensOverTime:
    post:
      operationId: GetTokensOverTime
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_TokensOverTime-Array.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricsOverTimeBody'
  /v1/metrics/latencyOverTime:
    post:
      operationId: GetLatencyOverTime
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_LatencyOverTime-Array.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricsOverTimeBody'
  /v1/metrics/timeToFirstToken:
    post:
      operationId: GetTimeToFirstTokenOverTime
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_TimeToFirstTokenOverTime-Array.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricsOverTimeBody'
  /v1/metrics/usersOverTime:
    post:
      operationId: GetUsersOverTime
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_UsersOverTime-Array.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricsOverTimeBody'
  /v1/metrics/threatsOverTime:
    post:
      operationId: GetThreatsOverTime
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_ThreatsOverTime-Array.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricsOverTimeBody'
  /v1/metrics/errorOverTime:
    post:
      operationId: GetErrorsOverTime
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_ErrorOverTime-Array.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricsOverTimeBody'
  /v1/metrics/requestStatusOverTime:
    post:
      operationId: GetRequestStatusOverTime
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_RequestsOverTime-Array.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetricsOverTimeBody'
  /v1/metrics/requestCount:
    post:
      operationId: GetRequestCount
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_number.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestCountBody'
  /v1/metrics/models:
    post:
      operationId: GetModelMetrics
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_ModelMetric-Array.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModelMetricsBody'
  /v1/metrics/country:
    post:
      operationId: GetCountryMetrics
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_CountryData-Array.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CountryMetricsBody'
  /v1/metrics/quantiles:
    post:
      operationId: GetQuantiles
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_Quantiles-Array.string_'
      tags:
      - Metrics
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuantilesBody'
components:
  schemas:
    Result_Quantiles-Array.string_:
      anyOf:
      - $ref: '#/components/schemas/ResultSuccess_Quantiles-Array_'
      - $ref: '#/components/schemas/ResultError_string_'
    CountryMetricsBody:
      properties:
        filter:
          $ref: '#/components/schemas/FilterNode'
        offset:
          type: number
          format: double
        limit:
          type: number
          format: double
        timeFilter:
          properties:
            end:
              type: string
            start:
              type: string
          required:
          - end
          - start
          type: object
      required:
      - filter
      - offset
      - limit
      - timeFilter
      type: object
      additionalProperties: false
    Result_ModelMetric-Array.string_:
      anyOf:
      - $ref: '#/components/schemas/ResultSuccess_ModelMetric-Array_'
      - $ref: '#/components/schemas/ResultError_string_'
    UsersOverTime:
      properties:
        time:
          type: string
          format: date-time
        count:
          type: number
          format: double
      required:
      - time
      - count
      type: object
      additionalProperties: false
    Partial_TextOperators_:
      properties:
        not-equals:
          type: string
        equals:
          type: string
        like:
          type: string
        ilike:
          type: string
        contains:
          type: string
        not-contains:
          type: string
      type: object
      description: Make all properties in T optional
    MetricsFilterBody:
      properties:
        filter:
          $ref: '#/components/schemas/FilterNode'
        timeFilter:
          properties:
            end:
              type: string
            start:
              type: string
          required:
          - end
          - start
          type: object
      required:
      - filter
      - timeFilter
      type: object
      additionalProperties: false
    CountryData:
      properties:
        country:
          type: string
        total_requests:
          type: number
          format: double
      required:
      - country
      - total_requests
      type: object
      additionalProperties: false
    RequestsOverTime:
      properties:
        time:
          type: string
          format: date-time
        count:
          type: number
          format: double
        status:
          type: number
          format: double
      required:
      - time
      - count
      type: object
      additionalProperties: false
    Result_LatencyOverTime-Array.string_:
      anyOf:
      - $ref: '#/components/schemas/ResultSuccess_LatencyOverTime-Array_'
      - $ref: '#/components/schemas/ResultError_string_'
    TokensOverTime:
      properties:
        time:
          type: string
          format: date-time
        prompt_tokens:
          type: number
          format: double
        completion_tokens:
          type: number
          format: double
      required:
      - time
      - prompt_tokens
      - completion_tokens
      type: object
      additionalProperties: false
    Partial_UserMetricsToOperators_:
      properties:
        user_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        last_active:
          $ref: '#/components/schemas/Partial_TimestampOperators_'
        total_requests:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        active_for:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        average_requests_per_day_active:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        average_tokens_per_request:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        total_completion_tokens:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        total_prompt_tokens:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        cost:
          $ref: '#/components/schemas/Partial_NumberOperators_'
      type: object
      description: Make all properties in T optional
    Partial_PropertiesV3ToOperators_:
      properties:
        key:
          $ref: '#/components/schemas/Partial_TextOperators_'
        value:
          $ref: '#/components/schemas/Partial_TextOperators_'
        organization_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
      type: object
      description: Make all properties in T optional
    Partial_TimestampOperatorsTyped_:
      properties:
        equals:
          type: string
          format: date-time
        gte:
          type: string
          format: date-time
        lte:
          type: string
          format: date-time
        lt:
          type: string
          format: date-time
        gt:
          type: string
          format: date-time
      type: object
      description: Make all properties in T optional
    ResultSuccess_number_:
      properties:
        data:
          type: number
          format: double
        error:
          type: number
          enum:
          - null
          nullable: true
      required:
      - data
      - error
      type: object
      additionalProperties: false
    ResultSuccess_TimeToFirstTokenOverTime-Array_:
      properties:
        data:
          items:
            $ref: '#/components/schemas/TimeToFirstTokenOverTime'
          type: array
        error:
          type: number
          enum:
          - null
          nullable: true
      required:
      - data
      - error
      type: object
      additionalProperties: false
    ResultError_string_:
      properties:
        data:
          type: number
          enum:
          - null
          nullable: true
        error:
          type: string
      required:
      - data
      - error
      type: object
      additionalProperties: false
    Result_CountryData-Array.string_:
      anyOf:
      - $ref: '#/components/schemas/ResultSuccess_CountryData-Array_'
      - $ref: '#/components/schemas/ResultError_string_'
    ResultSuccess_UsersOverTime-Array_:
      properties:
        data:
          items:
            $ref: '#/components/schemas/UsersOverTime'
          type: array
        error:
          type: number
          enum:
          - null
          nullable: true
      required:
      - data
      - error
      type: object
      additionalProperties: false
    RequestCountBody:
      properties:
        filter:
          $ref: '#/components/schemas/FilterNode'
        isCached:
          type: boolean
      required:
      - filter
      type: object
      additionalProperties: false
    ResultSuccess_Quantiles-Array_:
      properties:
        data:
          items:
            $ref: '#/components/schemas/Quantiles'
          type: array
        error:
          type: number
          enum:
          - null
          nullable: true
      required:
      - data
      - error
      type: object
      additionalProperties: false
    Partial_JobToOperators_:
      properties:
        id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        name:
          $ref: '#/components/schemas/Partial_TextOperators_'
        description:
          $ref: '#/components/schemas/Partial_TextOperators_'
        status:
          $ref: '#/components/schemas/Partial_TextOperators_'
        created_at:
          $ref: '#/components/schemas/Partial_TimestampOperators_'
        updated_at:
          $ref: '#/components/schemas/Partial_TimestampOperators_'
        timeout_seconds:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        custom_properties:
          properties: {}
          additionalProperties:
            $ref: '#/components/schemas/Partial_TextOperators_'
          type: object
        org_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
      type: object
      description: Make all properties in T optional
    Quantiles:
      properties:
        time:
          type: string
          format: date-time
        p75:
          type: number
          format: double
        p90:
          type: number
          format: double
        p95:
          type: number
          format: double
        p99:
          type: number
          format: double
      required:
      - time
      - p75
      - p90
      - p95
      - p99
      type: object
      additionalProperties: false
    Partial_TimestampOperators_:
      properties:
        equals:
          type: string
        gte:
          type: string
        lte:
          type: string
        lt:
          type: string
        gt:
          type: string
      type: object
      description: Make all properties in T optional
    Partial_BooleanOperators_:
      properties:
        equals:
          type: boolean
      type: object
      description: Make all properties in T optional
    Partial_NumberOperators_:
      properties:
        not-equals:
          type: number
          format: double
        equals:
          type: number
          format: double
        gte:
          type: number
          format: double
        lte:
          type: number
          format: double
        lt:
          type: number
          format: double
        gt:
          type: number
          format: double
      type: object
      description: Make all properties in T optional
    Result_ThreatsOverTime-Array.string_:
      anyOf:
      - $ref: '#/components/schemas/ResultSuccess_ThreatsOverTime-Array_'
      - $ref: '#/components/schemas/ResultError_string_'
    ResultSuccess_LatencyOverTime-Array_:
      properties:
        data:
          items:
            $ref: '#/components/schemas/LatencyOverTime'
          type: array
        error:
          type: number
          enum:
          - null
          nullable: true
      required:
      - data
      - error
      type: object
      additionalProperties: false
    TokensPerRequest:
      properties:
        average_prompt_tokens_per_response:
          type: number
          format: double
        average_completion_tokens_per_response:
          type: number
          format: double
        average_total_tokens_per_response:
          type: number
          format: double
      required:
      - average_prompt_tokens_per_response
      - average_completion_tokens_per_response
      - average_total_tokens_per_response
      type: object
      additionalProperties: false
    Partial_RequestResponseLogToOperators_:
      properties:
        latency:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        status:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        request_created_at:
          $ref: '#/components/schemas/Partial_TimestampOperatorsTyped_'
        response_created_at:
          $ref: '#/components/schemas/Partial_TimestampOperatorsTyped_'
        auth_hash:
          $ref: '#/components/schemas/Partial_TextOperators_'
        model:
          $ref: '#/components/schemas/Partial_TextOperators_'
        user_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        organization_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        node_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        job_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        threat:
          $ref: '#/components/schemas/Partial_BooleanOperators_'
      type: object
      description: Make all properties in T optional
    Partial_ExperimentToOperators_:
      properties:
        id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        prompt_v2:
          $ref: '#/components/schemas/Partial_TextOperators_'
      type: object
      description: Make all properties in T optional
    Result_CostOverTime-Array.string_:
      anyOf:
      - $ref: '#/components/schemas/ResultSuccess_CostOverTime-Array_'
      - $ref: '#/components/schemas/ResultError_string_'
    ErrorOverTime:
      properties:
        time:
          type: string
          format: date-time
        count:
          type: number
          format: double
      required:
      - time
      - count
      type: object
      additionalProperties: false
    Partial_ExperimentHypothesisRunToOperator_:
      properties:
        result_request_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
      type: object
      description: Make all properties in T optional
    Result_number.string_:
      anyOf:
      - $ref: '#/components/schemas/ResultSuccess_number_'
      - $ref: '#/components/schemas/ResultError_string_'
    ResultSuccess_ThreatsOverTime-Array_:
      properties:
        data:
          items:
            $ref: '#/components/schemas/ThreatsOverTime'
          type: array
        error:
          type: number
          enum:
          - null
          nullable: true
      required:
      - data
      - error
      type: object
      additionalProperties: false
    QuantilesBody:
      properties:
        filter:
          $ref: '#/components/schemas/FilterNode'
        timeFilter:
          properties:
            end:
              type: string
            start:
              type: string
          required:
          - end
          - start
          type: object
        dbIncrement:
          $ref: '#/components/schemas/TimeIncrement'
        timeZoneDifference:
          type: number
          format: double
        metric:
          type: string
      required:
      - filter
      - timeFilter
      - timeZoneDifference
      - metric
      type: object
      additionalProperties: false
    Result_RequestsOverTime-Array.string_:
      anyOf:
      - $ref: '#/components/schemas/ResultSuccess_RequestsOverTime-Array_'
      - $ref: '#/components/schemas/ResultError_string_'
    Result_TokensOverTime-Array.string_:
      anyOf:
      - $ref: '#/components/schemas/ResultSuccess_TokensOverTime-Array_'
      - $ref: '#/components/schemas/ResultError_string_'
    FilterBranch:
      properties:
        left:
          $ref: '#/components/schemas/FilterNode'
        operator:
          type: string
          enum:
          - or
          - and
        right:
          $ref: '#/components/schemas/FilterNode'
      required:
      - left
      - operator
      - right
      type: object
      additionalProperties: false
    ResultSuccess_ErrorOverTime-Array_:
      properties:
        data:
          items:
            $ref: '#/components/schemas/ErrorOverTime'
          type: array
        error:
          type: number
          enum:
          - null
          nullable: true
      required:
      - data
      - error
      type: object
      additionalProperties: false
    Partial_RequestTableToOperators_:
      properties:
        prompt:
          $ref: '#/components/schemas/Partial_TextOperators_'
        created_at:
          $ref: '#/components/schemas/Partial_TimestampOperators_'
        user_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        auth_hash:
          $ref: '#/components/schemas/Partial_TextOperators_'
        org_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        node_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        model:
          $ref: '#/components/schemas/Partial_TextOperators_'
        modelOverride:
          $ref: '#/components/schemas/Partial_TextOperators_'
        path:
          $ref: '#/components/schemas/Partial_TextOperators_'
        country_code:
          $ref: '#/components/schemas/Partial_TextOperators_'
        prompt_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
      type: object
      description: Make all properties in T optional
    Partial_NodesToOperators_:
      properties:
        id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        name:
          $ref: '#/components/schemas/Partial_TextOperators_'
        description:
          $ref: '#/components/schemas/Partial_TextOperators_'
        job_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        status:
          $ref: '#/components/schemas/Partial_TextOperators_'
        created_at:
          $ref: '#/components/schemas/Partial_TimestampOperators_'
        updated_at:
          $ref: '#/components/schemas/Partial_TimestampOperators_'
        timeout_seconds:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        custom_properties:
          properties: {}
          additionalProperties:
            $ref: '#/components/schemas/Partial_TextOperators_'
          type: object
        org_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
      type: object
      description: Make all properties in T optional
    TimeToFirstTokenOverTime:
      properties:
        time:
          type: string
          format: date-time
        ttft:
          type: number
          format: double
      required:
      - time
      - ttft
      type: object
      additionalProperties: false
    Partial_TablesAndViews_:
      properties:
        user_metrics:
          $ref: '#/components/schemas/Partial_UserMetricsToOperators_'
        user_api_keys:
          $ref: '#/components/schemas/Partial_UserApiKeysTableToOperators_'
        response:
          $ref: '#/components/schemas/Partial_ResponseTableToOperators_'
        request:
          $ref: '#/components/schemas/Partial_RequestTableToOperators_'
        feedback:
          $ref: '#/components/schemas/Partial_FeedbackTableToOperators_'
        properties_table:
          $ref: '#/components/schemas/Partial_PropertiesTableToOperators_'
        prompt_v2:
          $ref: '#/components/schemas/Partial_PromptToOperators_'
        prompts_versions:
          $ref: '#/components/schemas/Partial_PromptVersionsToOperators_'
        experiment:
          $ref: '#/components/schemas/Partial_ExperimentToOperators_'
        experiment_hypothesis_run:
          $ref: '#/components/schemas/Partial_ExperimentHypothesisRunToOperator_'
        score_value:
          $ref: '#/components/schemas/Partial_ScoreValueToOperator_'
        request_response_log:
          $ref: '#/components/schemas/Partial_RequestResponseLogToOperators_'
        request_response_rmt:
          $ref: '#/components/schemas/Partial_RequestResponseRMTToOperators_'
        sessions_request_response_rmt:
          $ref: '#/components/schemas/Partial_SessionsRequestResponseRMTToOperators_'
        users_view:
          $ref: '#/components/schemas/Partial_UserViewToOperators_'
        properties_v3:
          $ref: '#/components/schemas/Partial_PropertiesV3ToOperators_'
        property_with_response_v1:
          $ref: '#/components/schemas/Partial_PropertyWithResponseV1ToOperators_'
        job:
          $ref: '#/components/schemas/Partial_JobToOperators_'
        job_node:
          $ref: '#/components/schemas/Partial_NodesToOperators_'
        cache_metrics:
          $ref: '#/components/schemas/Partial_CacheMetricsTableToOperators_'
        rate_limit_log:
          $ref: '#/components/schemas/Partial_RateLimitTableToOperators_'
        organization_properties:
          $ref: '#/components/schemas/Partial_OrganizationPropertiesToOperators_'
        properties:
          properties: {}
          additionalProperties:
            $ref: '#/components/schemas/Partial_TextOperators_'
          type: object
        values:
          properties: {}
          additionalProperties:
            $ref: '#/components/schemas/Partial_TextOperators_'
          type: object
      type: object
      description: Make all properties in T optional
    LatencyOverTime:
      properties:
        time:
          type: string
          format: date-time
        duration:
          type: number
          format: double
      required:
      - time
      - duration
      type: object
      additionalProperties: false
    ResultSuccess_RequestsOverTime-Array_:
      properties:
        data:
          items:
            $ref: '#/components/schemas/RequestsOverTime'
          type: array
        error:
          type: number
          enum:
          - null
          nullable: true
      required:
      - data
      - error
      type: object
      additionalProperties: false
    Result_UsersOverTime-Array.string_:
      anyOf:
      - $ref: '#/components/schemas/ResultSuccess_UsersOverTime-Array_'
      - $ref: '#/components/schemas/ResultError_string_'
    Partial_PropertyWithResponseV1ToOperators_:
      properties:
        property_key:
          $ref: '#/components/schemas/Partial_TextOperators_'
        property_value:
          $ref: '#/components/schemas/Partial_TextOperators_'
        request_created_at:
          $ref: '#/components/schemas/Partial_TimestampOperatorsTyped_'
        organization_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        threat:
          $ref: '#/components/schemas/Partial_BooleanOperators_'
      type: object
      description: Make all properties in T optional
    Partial_RateLimitTableToOperators_:
      properties:
        organization_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        created_at:
          $ref: '#/components/schemas/Partial_TimestampOperatorsTyped_'
      type: object
      description: Make all properties in T optional
    ResultSuccess_ModelMetric-Array_:
      properties:
        data:
          items:
            $ref: '#/components/schemas/ModelMetric'
          type: array
        error:
          type: number
          enum:
          - null
          nullable: true
      required:
      - data
      - error
      type: object
      additionalProperties: false
    Partial_PromptToOperators_:
      properties:
        id:
          $ref: '#/components/schemas/Partial_TextOperators_'

# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/helicone/refs/heads/main/openapi/helicone-metrics-api-openapi.yml