Helicone Session API

The Session API from Helicone — 6 operation(s) for session.

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-session-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: helicone-api Agent Session API
  version: 1.0.0
  license:
    name: MIT
  contact: {}
servers:
- url: https://api.helicone.ai/
- url: http://localhost:8585/
tags:
- name: Session
paths:
  /v1/session/query:
    post:
      operationId: GetSessions
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_SessionResult-Array.string_'
      tags:
      - Session
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SessionQueryParams'
  /v1/session/count:
    post:
      operationId: GetSessionsCount
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_SessionsAggregateMetrics.string_'
      tags:
      - Session
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SessionQueryParams'
  /v1/session/name/query:
    post:
      operationId: GetNames
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_SessionNameResult-Array.string_'
      tags:
      - Session
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SessionNameQueryParams'
  /v1/session/metrics/query:
    post:
      operationId: GetMetrics
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_SessionMetrics.string_'
      tags:
      - Session
      security:
      - api_key: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SessionMetricsQueryParams'
  /v1/session/{sessionId}/feedback:
    post:
      operationId: UpdateSessionFeedback
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_null.string_'
      tags:
      - Session
      security:
      - api_key: []
      parameters:
      - in: path
        name: sessionId
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              properties:
                rating:
                  type: boolean
              required:
              - rating
              type: object
  /v1/session/{sessionId}/tag:
    get:
      operationId: GetSessionTag
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_string-or-null.string_'
      tags:
      - Session
      security:
      - api_key: []
      parameters:
      - in: path
        name: sessionId
        required: true
        schema:
          type: string
    post:
      operationId: UpdateSessionTag
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_null.string_'
      tags:
      - Session
      security:
      - api_key: []
      parameters:
      - in: path
        name: sessionId
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              properties:
                tag:
                  type: string
              required:
              - tag
              type: object
components:
  schemas:
    Partial_RequestResponseRMTToOperators_:
      properties:
        country_code:
          $ref: '#/components/schemas/Partial_TextOperators_'
        latency:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        cost:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        provider:
          $ref: '#/components/schemas/Partial_TextOperators_'
        time_to_first_token:
          $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_'
        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_'
        request_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        prompt_tokens:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        completion_tokens:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        prompt_cache_read_tokens:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        prompt_cache_write_tokens:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        total_tokens:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        target_url:
          $ref: '#/components/schemas/Partial_TextOperators_'
        property_key:
          properties:
            equals:
              type: string
          required:
          - equals
          type: object
        properties:
          properties: {}
          additionalProperties:
            $ref: '#/components/schemas/Partial_TextOperators_'
          type: object
        search_properties:
          properties: {}
          additionalProperties:
            $ref: '#/components/schemas/Partial_TextOperators_'
          type: object
        scores:
          properties: {}
          additionalProperties:
            $ref: '#/components/schemas/Partial_TextOperators_'
          type: object
        scores_column:
          $ref: '#/components/schemas/Partial_TextOperators_'
        request_body:
          $ref: '#/components/schemas/Partial_TextOperators_'
        response_body:
          $ref: '#/components/schemas/Partial_TextOperators_'
        cache_enabled:
          $ref: '#/components/schemas/Partial_BooleanOperators_'
        cache_reference_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        cached:
          $ref: '#/components/schemas/Partial_BooleanOperators_'
        assets:
          $ref: '#/components/schemas/Partial_TextOperators_'
        helicone-score-feedback:
          $ref: '#/components/schemas/Partial_BooleanOperators_'
        prompt_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        prompt_version:
          $ref: '#/components/schemas/Partial_TextOperators_'
        request_referrer:
          $ref: '#/components/schemas/Partial_TextOperators_'
        is_passthrough_billing:
          $ref: '#/components/schemas/Partial_BooleanOperators_'
      type: object
      description: Make all properties in T optional
    Partial_SessionsRequestResponseRMTToOperators_:
      properties:
        session_session_id:
          $ref: '#/components/schemas/Partial_TextOperators_'
        session_session_name:
          $ref: '#/components/schemas/Partial_TextOperators_'
        session_total_cost:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        session_total_tokens:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        session_prompt_tokens:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        session_completion_tokens:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        session_total_requests:
          $ref: '#/components/schemas/Partial_NumberOperators_'
        session_created_at:
          $ref: '#/components/schemas/Partial_TimestampOperatorsTyped_'
        session_latest_request_created_at:
          $ref: '#/components/schemas/Partial_TimestampOperatorsTyped_'
        session_tag:
          $ref: '#/components/schemas/Partial_TextOperators_'
      type: object
      description: Make all properties in T optional
    ResultSuccess_SessionResult-Array_:
      properties:
        data:
          items:
            $ref: '#/components/schemas/SessionResult'
          type: array
        error:
          type: number
          enum:
          - null
          nullable: true
      required:
      - data
      - error
      type: object
      additionalProperties: false
    ResultSuccess_SessionsAggregateMetrics_:
      properties:
        data:
          $ref: '#/components/schemas/SessionsAggregateMetrics'
        error:
          type: number
          enum:
          - null
          nullable: true
      required:
      - data
      - error
      type: object
      additionalProperties: false
    Result_SessionsAggregateMetrics.string_:
      anyOf:
      - $ref: '#/components/schemas/ResultSuccess_SessionsAggregateMetrics_'
      - $ref: '#/components/schemas/ResultError_string_'
    SessionNameQueryParams:
      properties:
        nameContains:
          type: string
        timezoneDifference:
          type: number
          format: double
        pSize:
          type: string
          enum:
          - p50
          - p75
          - p95
          - p99
          - p99.9
        useInterquartile:
          type: boolean
        timeFilter:
          $ref: '#/components/schemas/TimeFilterMs'
        filter:
          $ref: '#/components/schemas/SessionFilterNode'
      required:
      - nameContains
      - timezoneDifference
      type: object
      additionalProperties: false
    FilterLeafSubset_request_response_rmt-or-sessions_request_response_rmt_:
      $ref: '#/components/schemas/Pick_FilterLeaf.request_response_rmt-or-sessions_request_response_rmt_'
    SessionQueryParams:
      properties:
        search:
          type: string
        timeFilter:
          properties:
            endTimeUnixMs:
              type: number
              format: double
            startTimeUnixMs:
              type: number
              format: double
          required:
          - endTimeUnixMs
          - startTimeUnixMs
          type: object
        nameEquals:
          type: string
        timezoneDifference:
          type: number
          format: double
        filter:
          $ref: '#/components/schemas/SessionFilterNode'
        offset:
          type: number
          format: double
        limit:
          type: number
          format: double
      required:
      - search
      - timeFilter
      - timezoneDifference
      - filter
      type: object
      additionalProperties: false
    ResultSuccess_SessionMetrics_:
      properties:
        data:
          $ref: '#/components/schemas/SessionMetrics'
        error:
          type: number
          enum:
          - null
          nullable: true
      required:
      - data
      - error
      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
    SessionMetricsQueryParams:
      properties:
        nameContains:
          type: string
        timezoneDifference:
          type: number
          format: double
        pSize:
          type: string
          enum:
          - p50
          - p75
          - p95
          - p99
          - p99.9
        useInterquartile:
          type: boolean
        timeFilter:
          $ref: '#/components/schemas/TimeFilterMs'
        filter:
          $ref: '#/components/schemas/SessionFilterNode'
      required:
      - nameContains
      - timezoneDifference
      type: object
      additionalProperties: false
    Result_SessionMetrics.string_:
      anyOf:
      - $ref: '#/components/schemas/ResultSuccess_SessionMetrics_'
      - $ref: '#/components/schemas/ResultError_string_'
    HistogramRow:
      properties:
        range_start:
          type: string
        range_end:
          type: string
        value:
          type: number
          format: double
      required:
      - range_start
      - range_end
      - value
      type: object
      additionalProperties: false
    SessionsAggregateMetrics:
      properties:
        count:
          type: number
          format: double
        total_cost:
          type: number
          format: double
        avg_cost:
          type: number
          format: double
        avg_latency:
          type: number
          format: double
        avg_requests:
          type: number
          format: double
      required:
      - count
      - total_cost
      - avg_cost
      - avg_latency
      - avg_requests
      type: object
      additionalProperties: false
    Result_SessionResult-Array.string_:
      anyOf:
      - $ref: '#/components/schemas/ResultSuccess_SessionResult-Array_'
      - $ref: '#/components/schemas/ResultError_string_'
    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
    Partial_BooleanOperators_:
      properties:
        equals:
          type: boolean
      type: object
      description: Make all properties in T optional
    Result_null.string_:
      anyOf:
      - $ref: '#/components/schemas/ResultSuccess_null_'
      - $ref: '#/components/schemas/ResultError_string_'
    ResultSuccess_string-or-null_:
      properties:
        data:
          type: string
          nullable: true
        error:
          type: number
          enum:
          - null
          nullable: true
      required:
      - data
      - error
      type: object
      additionalProperties: false
    SessionResult:
      properties:
        created_at:
          type: string
        latest_request_created_at:
          type: string
        session_id:
          type: string
        session_name:
          type: string
        total_cost:
          type: number
          format: double
        total_requests:
          type: number
          format: double
        prompt_tokens:
          type: number
          format: double
        completion_tokens:
          type: number
          format: double
        total_tokens:
          type: number
          format: double
        avg_latency:
          type: number
          format: double
        user_ids:
          items:
            type: string
          type: array
      required:
      - created_at
      - latest_request_created_at
      - session_id
      - session_name
      - total_cost
      - total_requests
      - prompt_tokens
      - completion_tokens
      - total_tokens
      - avg_latency
      - user_ids
      type: object
      additionalProperties: false
    ResultSuccess_SessionNameResult-Array_:
      properties:
        data:
          items:
            $ref: '#/components/schemas/SessionNameResult'
          type: array
        error:
          type: number
          enum:
          - null
          nullable: true
      required:
      - data
      - error
      type: object
      additionalProperties: false
    ResultSuccess_null_:
      properties:
        data:
          type: number
          enum:
          - null
          nullable: true
        error:
          type: number
          enum:
          - null
          nullable: true
      required:
      - data
      - error
      type: object
      additionalProperties: false
    SessionFilterBranch:
      properties:
        right:
          $ref: '#/components/schemas/SessionFilterNode'
        operator:
          type: string
          enum:
          - or
          - and
        left:
          $ref: '#/components/schemas/SessionFilterNode'
      required:
      - right
      - operator
      - left
      type: object
    Pick_FilterLeaf.request_response_rmt-or-sessions_request_response_rmt_:
      properties:
        request_response_rmt:
          $ref: '#/components/schemas/Partial_RequestResponseRMTToOperators_'
        sessions_request_response_rmt:
          $ref: '#/components/schemas/Partial_SessionsRequestResponseRMTToOperators_'
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    Result_string-or-null.string_:
      anyOf:
      - $ref: '#/components/schemas/ResultSuccess_string-or-null_'
      - $ref: '#/components/schemas/ResultError_string_'
    TimeFilterMs:
      properties:
        startTimeUnixMs:
          type: number
          format: double
        endTimeUnixMs:
          type: number
          format: double
      required:
      - startTimeUnixMs
      - endTimeUnixMs
      type: object
      additionalProperties: false
    SessionMetrics:
      properties:
        session_count:
          items:
            $ref: '#/components/schemas/HistogramRow'
          type: array
        session_duration:
          items:
            $ref: '#/components/schemas/HistogramRow'
          type: array
        session_cost:
          items:
            $ref: '#/components/schemas/HistogramRow'
          type: array
        average:
          properties:
            session_cost:
              items:
                $ref: '#/components/schemas/AverageRow'
              type: array
            session_duration:
              items:
                $ref: '#/components/schemas/AverageRow'
              type: array
            session_count:
              items:
                $ref: '#/components/schemas/AverageRow'
              type: array
          required:
          - session_cost
          - session_duration
          - session_count
          type: object
      required:
      - session_count
      - session_duration
      - session_cost
      - average
      type: object
      additionalProperties: false
    AverageRow:
      properties:
        average:
          type: number
          format: double
      required:
      - average
      type: object
      additionalProperties: false
    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
    SessionFilterNode:
      anyOf:
      - $ref: '#/components/schemas/FilterLeafSubset_request_response_rmt-or-sessions_request_response_rmt_'
      - $ref: '#/components/schemas/SessionFilterBranch'
      - type: string
        enum:
        - all
    Result_SessionNameResult-Array.string_:
      anyOf:
      - $ref: '#/components/schemas/ResultSuccess_SessionNameResult-Array_'
      - $ref: '#/components/schemas/ResultError_string_'
    ResultError_string_:
      properties:
        data:
          type: number
          enum:
          - null
          nullable: true
        error:
          type: string
      required:
      - data
      - error
      type: object
      additionalProperties: false
    SessionNameResult:
      properties:
        name:
          type: string
        created_at:
          type: string
        last_used:
          type: string
        first_used:
          type: string
        session_count:
          type: number
          format: double
        avg_latency:
          type: number
          format: double
      required:
      - name
      - created_at
      - last_used
      - first_used
      - session_count
      - avg_latency
      type: object
      additionalProperties: false
  securitySchemes:
    api_key:
      type: apiKey
      name: Authorization
      in: header
      description: 'Bearer token authentication. Format: ''Bearer YOUR_API_KEY'''