# Query Sessions

> Search and filter through session data

`POST /v1/session/query`

import EUAPIWarning from "/snippets/eu-api-warning.mdx";

<EUAPIWarning />

## OpenAPI

````yaml swagger.json post /v1/session/query
openapi: 3.0.0
info:
  title: helicone-api
  version: 1.0.0
  license:
    name: MIT
  contact: {}
servers:
  - url: https://api.helicone.ai/
  - url: http://localhost:8585/
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"
components:
  schemas:
    ResultError_string_:
      properties:
        data:
          type: number
          enum:
            - null
          nullable: true
        error:
          type: string
      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
    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
    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
    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
    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_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
    Result_SessionResult-Array.string_:
      anyOf:
        - $ref: "#/components/schemas/ResultSuccess_SessionResult-Array_"
        - $ref: "#/components/schemas/ResultError_string_"
    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
    FilterLeafSubset_request_response_rmt-or-sessions_request_response_rmt_:
      $ref: "#/components/schemas/Pick_FilterLeaf.request_response_rmt-or-sessions_re\
        quest_response_rmt_"
    SessionFilterNode:
      anyOf:
        - $ref: "#/components/schemas/FilterLeafSubset_request_response_rmt-or-sessions_r\
            equest_response_rmt_"
        - $ref: "#/components/schemas/SessionFilterBranch"
        - type: string
          enum:
            - all
    SessionFilterBranch:
      properties:
        right:
          $ref: "#/components/schemas/SessionFilterNode"
        operator:
          type: string
          enum:
            - or
            - and
        left:
          $ref: "#/components/schemas/SessionFilterNode"
      required:
        - right
        - operator
        - left
      type: object
    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
````
