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'''