{"openapi":"3.1.0","info":{"title":"API Reference","version":"1.0.0"},"paths":{"/api/request-logs/":{"post":{"operationId":"create-span","summary":"Create a span","description":"Create a request-log span via the logging API. This is the standard create endpoint; `/api/request-logs/create/` remains supported as a legacy alias. For LLM request logs, send `prompt_messages`, `completion_message`, token counts, timing, metadata, tools, and trace fields directly in the body. `generation_time` is accepted and normalized to `latency`; `ttft` is accepted and normalized to `time_to_first_token`. The stored `environment` is derived from the API key environment, so use a key for the target environment rather than relying on a body override. Metadata keys beginning with `_` are reserved for platform use and are omitted from customer-facing span and trace responses, so they do not round-trip through read APIs.","tags":["spans"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Span created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Spans_createSpan_Response_201"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpanRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpanRequestUnprocessableEntityError"}}}},"429":{"description":"Rate Limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpanRequestTooManyRequestsError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpanRequestInternalServerError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpanCreateRequest"}}}}}},"/api/request-logs/bulk/":{"post":{"operationId":"bulk-create-spans","summary":"Bulk create spans","description":"Create up to 500 spans in one request. Each item in `logs` accepts the same fields as the [single-span create operation](/docs/apis/spans/create-span). Rows are processed independently: one invalid row does not prevent the remaining rows from being accepted. A response is `201 Created` whenever at least one row is accepted, including partial success; inspect `error_count` and `errors` on every response. `success_count` means the row passed synchronous validation and was accepted for ingestion.\n\nFor API-key authentication, this endpoint is limited to 30 requests per minute per organization, shared across all API keys in that organization. JWT requests are limited per user. At the 500-row maximum, the API-key limit allows up to approximately 15,000 accepted rows per minute. Metadata keys beginning with `_` are reserved for platform use and are omitted from customer-facing span and trace responses, so they do not round-trip through read APIs.","tags":["spans"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"At least one row was accepted. This status is also used for partial success; inspect the response counts and indexed errors.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkOperationResponse"}}}},"400":{"description":"Every row failed, the `logs` envelope was missing or malformed, the list was empty, or the organization is blocked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCreateSpansRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"403":{"description":"Forbidden - The authenticated principal cannot access this organization","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"The batch contains more than 500 rows.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCreateSpansRequestUnprocessableEntityError"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCreateSpansRequestTooManyRequestsError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"logs":{"type":"array","items":{"$ref":"#/components/schemas/SpanCreateRequest"},"description":"Non-empty array of span payloads. Each object uses the same schema as `POST /api/request-logs/`."}},"required":["logs"]}}}}}},"/api/request-logs/list/":{"post":{"operationId":"list-spans","summary":"List spans","description":"Retrieve spans matching the specified filters with pagination. Supports filtering by any span field, URL-based quick filters, and sorting by evaluator scores. See [Filters API Reference](/docs/apis/reference/filters-api-reference) for full filter syntax. Metadata keys beginning with `_` are reserved for platform use and are omitted from customer-facing span and trace responses, so they do not round-trip through read APIs.","tags":["spans"],"parameters":[{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","default":1}},{"name":"page_size","in":"query","description":"Results per page (max 1000).","required":false,"schema":{"type":"integer","maximum":1000,"default":50}},{"name":"sort_by","in":"query","description":"Field to sort by. Prefix `-` for descending.","required":false,"schema":{"type":"string","default":"-timestamp"}},{"name":"start_time","in":"query","description":"Start of time range (ISO 8601).","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"End of time range (ISO 8601).","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"environment","in":"query","description":"Filter by environment (`prod` or `test`).","required":false,"schema":{"$ref":"#/components/schemas/ApiRequestLogsListPostParametersEnvironment"}},{"name":"log_type","in":"query","description":"Filter by span/log type. Use values like `chat`, `completion`, or `response` to focus on model-inference spans; omitting this can also return non-chat span/log rows such as legacy `text` logs.","required":false,"schema":{"$ref":"#/components/schemas/ApiRequestLogsListPostParametersLogType"}},{"name":"include_fields","in":"query","description":"Comma-separated list of fields to include in each span. Reduces response size.","required":false,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response for List spans","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Spans_listSpans_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSpansRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"413":{"description":"The query exceeded the service's memory or execution-time limit. Narrow the time range or add filters before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSpansRequestContentTooLargeError"}}}},"429":{"description":"Rate Limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSpansRequestTooManyRequestsError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSpansRequestInternalServerError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/Filters"}}}}}}}},"/api/request-logs/{unique_id}/":{"get":{"operationId":"retrieve-span","summary":"Retrieve a span","description":"Retrieve a span by its unique ID. Returns the full span including input, output, metrics, metadata, trace context, evaluation scores, and credit/budget info (`limit_info`). Metadata keys beginning with `_` are reserved for platform use and are omitted from customer-facing span and trace responses, so they do not round-trip through read APIs.","tags":["spans"],"parameters":[{"name":"unique_id","in":"path","description":"The unique ID of the log to get.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response for Retrieve span","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Spans_retrieveSpan_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveSpanRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveSpanRequestNotFoundError"}}}},"429":{"description":"Rate Limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveSpanRequestTooManyRequestsError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveSpanRequestInternalServerError"}}}}}}},"/api/request-logs/summary/":{"post":{"operationId":"get-spans-summary","summary":"Get spans summary","description":"Get aggregated statistics for spans/log rows in a time range. `start_time`, `end_time`, and `environment` are URL query parameters. Additional filters must be sent in the JSON body under `filters`; fields such as `log_type` are not read as summary query parameters. When `filters` is omitted or empty, the backend may use the pre-aggregated summary path; when `filters` is non-empty, it queries raw logs using the same filter object shape as List spans.","tags":["spans"],"parameters":[{"name":"start_time","in":"query","description":"Start of time range (ISO 8601).","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"End of time range (ISO 8601).","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"environment","in":"query","description":"Filter by environment (`prod` or `test`).","required":false,"schema":{"$ref":"#/components/schemas/ApiRequestLogsSummaryPostParametersEnvironment"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Summary statistics for matching spans.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Spans_getSpansSummary_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSpansSummaryRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"413":{"description":"The query exceeded the service's memory or execution-time limit. Narrow the time range or add filters before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSpansSummaryRequestContentTooLargeError"}}}},"429":{"description":"Rate Limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSpansSummaryRequestTooManyRequestsError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSpansSummaryRequestInternalServerError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/Filters"}}}}}}}},"/api/request-logs/groups/":{"get":{"operationId":"request-logs-groups-list","summary":"List span groups","description":"Group spans by a supported dimension and return one aggregate row per group. `trace` and `thread` roll spans up through their dedicated entity views.","tags":["spans"],"parameters":[{"name":"group_by","in":"query","description":"Grouping dimension. `trace` and `thread` use entity rollups.","required":false,"schema":{"$ref":"#/components/schemas/ApiRequestLogsGroupsGetParametersGroupBy"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"number_of_requests"}},{"name":"start_time","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"environment","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated groups and aggregate metrics.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Spans_request_logs_groups_list_Response_200"}}}},"400":{"description":"Unsupported group_by value. Invalid sort_by falls back to number_of_requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Request_logs_groups_listRequestBadRequestError"}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Request_logs_groups_listRequestUnauthorizedError"}}}},"403":{"description":"Analytics read permission is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Request_logs_groups_listRequestForbiddenError"}}}}}},"post":{"operationId":"request-logs-groups-filter","summary":"Filter span groups","description":"Group spans using the same query parameters as GET and optional standard Respan filters in the request body.","tags":["spans"],"parameters":[{"name":"group_by","in":"query","description":"Grouping dimension. `trace` and `thread` use entity rollups.","required":false,"schema":{"$ref":"#/components/schemas/ApiRequestLogsGroupsPostParametersGroupBy"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"number_of_requests"}},{"name":"start_time","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"environment","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated groups and aggregate metrics.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Spans_request_logs_groups_filter_Response_200"}}}},"400":{"description":"Unsupported group_by value. Invalid sort_by falls back to number_of_requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Request_logs_groups_filterRequestBadRequestError"}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Request_logs_groups_filterRequestUnauthorizedError"}}}},"403":{"description":"Analytics read permission is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Request_logs_groups_filterRequestForbiddenError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"type":"object","additionalProperties":{"description":"Any type"}}}}}}}}},"/api/traces/list/":{"post":{"operationId":"list-traces","summary":"List traces","description":"Retrieve a paginated list of traces matching your filters. Supports the filter payload documented in the Filters API. Metadata keys beginning with `_` are reserved for platform use and are omitted from customer-facing span and trace responses, so they do not round-trip through read APIs.","tags":["traces"],"parameters":[{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","default":1}},{"name":"page_size","in":"query","description":"Results per page (max 1000).","required":false,"schema":{"type":"integer","maximum":1000,"default":50}},{"name":"sort_by","in":"query","description":"Field to sort by. Prefix `-` for descending. Common values include `-timestamp`, `-total_cost`, `-duration`, `-total_tokens`, and `-error_count`.","required":false,"schema":{"type":"string","default":"-timestamp"}},{"name":"start_time","in":"query","description":"Start of time range (ISO 8601). Defaults to one hour before `end_time` when omitted.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"End of time range (ISO 8601). Defaults to now when omitted.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"environment","in":"query","description":"Filter by environment.","required":false,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of traces.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Traces_listTraces_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTracesRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"413":{"description":"The query exceeded the service's memory or execution-time limit. Narrow the time range or add filters before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTracesRequestContentTooLargeError"}}}},"429":{"description":"Rate Limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTracesRequestTooManyRequestsError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTracesRequestInternalServerError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/Filters"}}}}}}}},"/api/traces/bulk/":{"post":{"operationId":"bulk-delete-traces","summary":"Bulk delete traces","description":"Delete traces matching a non-empty filter object. The endpoint resolves at most 1,000 trace IDs per request; requests matching more are rejected with `422`. Use the query parameters for the canonical environment and time window; the same fields in the body only narrow that window. Only the documented filter fields and `metadata__<key>` are supported. The current server ignores unknown fields and invalid operators, which can broaden the deletion selection, so validate filters carefully before sending them. ClickHouse deletion is asynchronous, so `success_count` and `deleted_count` report traces submitted for deletion, not confirmation that every row has already disappeared. Rate limit: 10 requests per minute per organization and exact endpoint path for API-key calls (shared across API keys), and per user and exact endpoint path for JWT calls.","tags":["traces"],"parameters":[{"name":"start_time","in":"query","description":"Start of time range (ISO 8601). Defaults to one hour before `end_time` when omitted.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"End of time range (ISO 8601). Defaults to now when omitted.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"environment","in":"query","description":"Filter by environment.","required":false,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Traces were matched and submitted for asynchronous deletion.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteResponse"}}}},"400":{"description":"The request body is missing `filters`, or `filters` is empty.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteTracesRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"403":{"description":"Forbidden - The caller cannot delete traces","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"The filters matched more than 1,000 traces. Narrow the filters and retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteTracesRequestUnprocessableEntityError"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteTracesRequestTooManyRequestsError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteTracesRequestInternalServerError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/TraceBulkDeleteFilters"}},"required":["filters"]}}}}}},"/api/traces/{trace_unique_id}/":{"get":{"operationId":"retrieve-trace","summary":"Retrieve a trace","description":"Retrieve a single trace by `trace_unique_id`, including aggregate metrics and the full span tree. Metadata keys beginning with `_` are reserved for platform use and are omitted from customer-facing span and trace responses, so they do not round-trip through read APIs.","tags":["traces"],"parameters":[{"name":"trace_unique_id","in":"path","description":"Unique trace identifier.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Trace detail with span tree.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Traces_retrieveTrace_Response_200"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveTraceRequestNotFoundError"}}}},"429":{"description":"Rate Limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveTraceRequestTooManyRequestsError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveTraceRequestInternalServerError"}}}}}},"delete":{"operationId":"delete-trace","summary":"Delete a trace","description":"Delete a single trace by `trace_unique_id`. `start_time` and `end_time` can be provided to narrow the request to the relevant time range.","tags":["traces"],"parameters":[{"name":"trace_unique_id","in":"path","description":"Unique trace identifier.","required":true,"schema":{"type":"string"}},{"name":"start_time","in":"query","description":"Start of time range (ISO 8601). Defaults to one hour before `end_time` when omitted.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"End of time range (ISO 8601). Defaults to now when omitted.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Trace delete issued successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Traces_deleteTrace_Response_200"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteTraceRequestInternalServerError"}}}}}},"patch":{"operationId":"share-trace","summary":"Share a trace publicly","description":"Set public-sharing metadata for a trace ID. This operation upserts the sharing record and returns `200` when `is_public` is supplied; it does not first verify that trace spans exist.","tags":["traces"],"parameters":[{"name":"trace_unique_id","in":"path","description":"Unique trace identifier.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Trace sharing state updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Traces_shareTrace_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareTraceRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"is_public":{"type":"boolean","description":"Set `true` to make the trace public, or `false` to revoke public access."}},"required":["is_public"]}}}}}},"/api/{unique_organization_id}/traces/{trace_unique_id}/":{"get":{"operationId":"retrieve-public-trace","summary":"Retrieve a public trace","description":"Retrieve a publicly shared trace without authentication. The trace must have been shared first via `PATCH /api/traces/{trace_unique_id}/`. Metadata keys beginning with `_` are reserved for platform use and are omitted from customer-facing span and trace responses, so they do not round-trip through read APIs.","tags":["traces"],"parameters":[{"name":"unique_organization_id","in":"path","description":"Organization unique ID used in a public trace share link.","required":true,"schema":{"type":"string"}},{"name":"trace_unique_id","in":"path","description":"Unique trace identifier.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Trace detail with span tree.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Traces_retrievePublicTrace_Response_200"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrievePublicTraceRequestNotFoundError"}}}},"429":{"description":"Rate Limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrievePublicTraceRequestTooManyRequestsError"}}}}}}},"/api/v1/traces/ingest":{"post":{"operationId":"create-trace-legacy","summary":"Ingest spans from traces (v1 legacy)","description":"Legacy trace-ingest endpoint. Accepts spans either as a raw JSON array or as an object with a `data` field containing the span array. Each span uses the same fields as [Create a span](/docs/apis/spans/api-request-logs), plus `trace_unique_id`, `span_unique_id`, and optional `span_parent_id` to build the trace tree. For new integrations, prefer [Create a trace (OTLP)](/docs/apis/traces/create-trace).","tags":["traces"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Trace spans processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Traces_createTraceLegacy_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTraceLegacyRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTraceLegacyRequestInternalServerError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Traces_createTraceLegacy_Request"}}}}}},"/api/v2/traces":{"post":{"operationId":"create-trace","summary":"Create a trace (OTLP)","description":"Send traces using the standard [OTLP/HTTP](https://opentelemetry.io/docs/specs/otlp/) protocol. This endpoint expects OTLP JSON or protobuf, not the simpler span fields used by `POST /api/request-logs/`. To create a visible sample trace from the API reference, use the `Sample two-span trace` request example below; it creates a workflow root span and one chat child span. If you run the same example more than once, change `traceId` and `spanId` values to new 32-hex and 16-hex IDs so each run creates a separate trace.\n\nFor SDK setup, use the [Respan tracing SDK](/docs/sdks/python-sdk/overview) or the [OpenTelemetry integration](/docs/integrations/opentelemetry), which auto-configures the exporter.","tags":["traces"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Spans accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Traces_createTrace_Response_200"}}}},"400":{"description":"Bad Request - Malformed payload.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTraceRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Invalid or missing API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTraceRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"resourceSpans":{"type":"array","items":{"$ref":"#/components/schemas/ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItems"},"description":"Array of resource spans. Each element represents spans from a single resource (service)."}},"required":["resourceSpans"]}}}}}},"/api/log_threads/":{"post":{"operationId":"list-threads","summary":"List thread","description":"Retrieve threads matching the specified filters with pagination.","tags":["threads"],"parameters":[{"name":"page","in":"query","description":"The page number to retrieve.","required":false,"schema":{"type":"integer","default":1}},{"name":"page_size","in":"query","description":"The number of items per page. Maximum is 1000.","required":false,"schema":{"type":"integer","default":100}},{"name":"environment","in":"query","description":"This is controlled by the API key. A prod API key creates prod threads, test key creates test threads.","required":false,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of threads.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Threads_listThreads_Response_200"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListThreadsRequestUnauthorizedError"}}}},"413":{"description":"The query exceeded a memory or execution-time resource limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListThreadsRequestContentTooLargeError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ApiLogThreadsPostRequestBodyContentApplicationJsonSchemaFilters","description":"Filter criteria. See [Filters API Reference](/docs/apis/reference/filters-api-reference)."}}}}}}}},"/api/users/list/":{"post":{"operationId":"list-customers","summary":"List customers","description":"Retrieve customers in your organization with analytics and budget fields. Available filter fields include `customer_identifier`, `name`, `email`, `number_of_requests`, `total_tokens`, `total_cost`, and `active_days`.","tags":["users"],"parameters":[{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","default":1}},{"name":"page_size","in":"query","description":"Number of customers per page. Maximum is 1000.","required":false,"schema":{"type":"integer","maximum":1000,"default":50}},{"name":"sort_by","in":"query","description":"Sort field. Prefix with `-` for descending. Common values include `customer_identifier`, `email`, `name`, `-first_seen`, `-number_of_requests`, and `-total_cost`.","required":false,"schema":{"type":"string","default":"-first_seen"}},{"name":"environment","in":"query","description":"Optional environment filter. If omitted, the backend uses the environment implied by your auth context when applicable.","required":false,"schema":{"$ref":"#/components/schemas/ApiUsersListPostParametersEnvironment"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of customers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Users_listCustomers_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCustomersRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"413":{"description":"The query exceeded a memory or execution-time resource limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCustomersRequestContentTooLargeError"}}}},"429":{"description":"Rate Limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCustomersRequestTooManyRequestsError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCustomersRequestInternalServerError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/Filters"}}}}}}}},"/api/users/{customer_identifier}/":{"get":{"operationId":"retrieve-user","summary":"Retrieve a customer","description":"Retrieve a customer by `customer_identifier`. This endpoint returns the editable customer profile and current budget usage fields.","tags":["users"],"parameters":[{"name":"customer_identifier","in":"path","description":"Your unique identifier for this customer.","required":true,"schema":{"type":"string"}},{"name":"environment","in":"query","description":"Optional environment filter. If omitted, the backend uses the environment implied by your auth context when applicable.","required":false,"schema":{"$ref":"#/components/schemas/ApiUsersCustomerIdentifierGetParametersEnvironment"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Customer details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Users_retrieveUser_Response_200"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveUserRequestNotFoundError"}}}},"429":{"description":"Rate Limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveUserRequestTooManyRequestsError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveUserRequestInternalServerError"}}}}}},"patch":{"operationId":"update-user","summary":"Update a customer","description":"Update customer profile and budget settings. Customers are created automatically from usage; use this endpoint to configure budgets or update profile fields after creation.","tags":["users"],"parameters":[{"name":"customer_identifier","in":"path","description":"Your unique identifier for this customer.","required":true,"schema":{"type":"string"}},{"name":"environment","in":"query","description":"Optional environment filter. If omitted, the backend uses the environment implied by your auth context when applicable.","required":false,"schema":{"$ref":"#/components/schemas/ApiUsersCustomerIdentifierPatchParametersEnvironment"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated customer details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Users_updateUser_Response_200"}}}},"400":{"description":"Validation Error","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiUsersCustomerIdentifierPatchResponsesContentApplicationJsonSchema"}}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRequestNotFoundError"}}}},"429":{"description":"Rate Limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRequestTooManyRequestsError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRequestInternalServerError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":["string","null"],"description":"Customer email address."},"name":{"type":["string","null"],"description":"Customer display name."},"metadata":{"$ref":"#/components/schemas/ApiUsersCustomerIdentifierPatchRequestBodyContentApplicationJsonSchemaMetadata","description":"Custom key-value metadata."},"period_budget":{"type":["number","null"],"format":"double","description":"Spending budget per period in USD."},"budget_duration":{"$ref":"#/components/schemas/ApiUsersCustomerIdentifierPatchRequestBodyContentApplicationJsonSchemaBudgetDuration","description":"Budget renewal period."},"total_budget":{"type":["number","null"],"format":"double","description":"Total lifetime spending budget in USD."},"period_start":{"type":"string","format":"date-time","description":"Optional custom budget period start."},"period_end":{"type":["string","null"],"format":"date-time","description":"Optional custom budget period end."},"markup_percentage":{"type":"number","format":"double","description":"Markup percentage applied to usage reports for this customer."}}}}}}},"delete":{"operationId":"delete-user","summary":"Delete a customer","description":"Delete a customer by `customer_identifier`. This action is irreversible.","tags":["users"],"parameters":[{"name":"customer_identifier","in":"path","description":"Your unique identifier for this customer.","required":true,"schema":{"type":"string"}},{"name":"environment","in":"query","description":"Optional environment filter. If omitted, the backend uses the environment implied by your auth context when applicable.","required":false,"schema":{"$ref":"#/components/schemas/ApiUsersCustomerIdentifierDeleteParametersEnvironment"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteUserRequestNotFoundError"}}}},"429":{"description":"Rate Limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteUserRequestTooManyRequestsError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteUserRequestInternalServerError"}}}}}}},"/api/chat/completions":{"post":{"operationId":"create-chat-completion","summary":"Create chat completion","description":"Send a chat completion request through the Respan gateway. Supports 250+ models across OpenAI, Anthropic, Google, Azure, and more with automatic logging, fallbacks, caching, and prompt management.\n\nAccepts all [OpenAI chat completion parameters](https://platform.openai.com/docs/apis/chat). Respan-specific parameters can be passed three ways:\n1. **Top-level body fields** - add directly to the request body\n2. **Nested under `respan_params`** - explicit namespacing to avoid conflicts\n3. **Header `X-Data-Respan-Params`** - base64-encoded JSON header\n\nMerge order: top-level body fields > `respan_params` > header.\n\nLegacy compatibility:\n- `keywordsai_params` is still accepted and merged into `respan_params`\n- `X-Data-Keywordsai-Params` is still accepted and auto-renamed internally\n\nWhen using the OpenAI SDK, pass Respan parameters via `extra_body`.","tags":["gateway"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}},{"name":"X-Data-Respan-Params","in":"header","description":"Base64-encoded JSON object of Respan parameters. Legacy `X-Data-Keywordsai-Params` is still accepted.","required":false,"schema":{"type":"string"}},{"name":"X-Respan-Route-Provider","in":"header","description":"Pin the request to a specific provider without changing the model slug. Example: `vertex_ai` routes a `claude-sonnet-4-5-20250929` request to Vertex AI Claude.","required":false,"schema":{"type":"string"}},{"name":"X-Respan-Beta","in":"header","description":"Comma-separated beta feature flags. Available: token-breakdown-2026-03-26, env-scoped-integrations-2026-03-28","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response for Create chat completion","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Gateway_createChatCompletion_Response_200"}}}},"400":{"description":"Invalid request or preprocessing failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateChatCompletionRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"424":{"description":"The upstream model provider failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateChatCompletionRequestFailedDependencyError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItems"},"description":"Array of messages in the conversation. Each message has `role` (`system`, `user`, `assistant`, `tool`) and `content`."},"model":{"type":"string","description":"Model to use. See [Models](https://platform.respan.ai/platform/models) for available options."},"stream":{"type":"boolean","description":"Stream back partial progress token by token as server-sent events."},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaToolsItems"},"description":"Tools the model may call. Currently only functions are supported."},"tool_choice":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaToolChoice","description":"Controls tool selection. `\"none\"` = no tools, `\"auto\"` = model decides, or specify a tool object."},"frequency_penalty":{"type":"number","format":"double","description":"Penalizes tokens based on frequency in text so far (-2 to 2)."},"max_tokens":{"type":"number","format":"double","description":"Maximum tokens to generate."},"temperature":{"type":"number","format":"double","default":1,"description":"Sampling temperature (0-2). Higher = more random."},"n":{"type":"number","format":"double","default":1,"description":"Number of completions to generate. Note: costs multiply with `n`."},"logprobs":{"type":"boolean","description":"Return log probabilities of output tokens."},"echo":{"type":"boolean","description":"Echo back the prompt in addition to the completion"},"stop":{"type":"array","items":{"type":"string"},"description":"Stop sequences where generation halts."},"presence_penalty":{"type":"number","format":"double","description":"Penalizes tokens already present in text (-2 to 2)."},"logit_bias":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaLogitBias","description":"Used to modify the probability of tokens appearing in the response"},"response_format":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaResponseFormat","description":"Output format. Set `{\"type\": \"json_schema\", \"json_schema\": {...}}` for structured output, or `{\"type\": \"json_object\"}` for JSON mode."},"parallel_tool_calls":{"type":"boolean","description":"Enable parallel function calling during tool use."},"load_balance_group":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaLoadBalanceGroup","description":"Load balance group selection. Use `{\"group_id\": \"...\"}` to route through a configured group."},"fallback_models":{"type":"array","items":{"type":"string"},"description":"Backup models (ranked by priority) if the primary model fails."},"customer_credentials":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaCustomerCredentials","description":"Per-customer LLM provider credentials. Keys are provider names, values are API keys."},"credential_override":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaCredentialOverride","description":"One-off credential overrides per provider. Overrides uploaded provider keys for this request only."},"cache_enabled":{"type":"boolean","description":"Enable response caching. See [Caching](/docs/documentation/features/gateway/advanced)."},"cache_ttl":{"type":"number","format":"double","description":"Cache time-to-live in seconds. Default: 30 days."},"cache_options":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaCacheOptions","description":"Cache behavior options. Properties: `cache_by_customer`, `is_cached_by_model`, `omit_log`."},"prompt":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaPrompt","description":"Prompt template config. Properties: `prompt_id` (required), `variables` (template variables), `version` (number, or `\"latest\"` for draft), `echo` (return rendered prompt), `override` (use override_params), `override_params` (OpenAI params to override), `schema_version` (`1` = legacy, `2` = prompt config wins). See [Prompt management](/docs/documentation/features/prompt-management/advanced)."},"retry_params":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaRetryParams","description":"Retry config. Properties: `retry_enabled` (boolean, required), `num_retries` (number), `retry_after` (seconds to wait)."},"disable_log":{"type":"boolean","description":"When `true`, omits input/output from the log. Metrics (tokens, cost, latency) are still recorded."},"model_name_map":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaModelNameMap","description":"Azure deployment name mapping. Maps your custom Azure deployment names to standard model names."},"models":{"type":"array","items":{"type":"string"},"description":"Model list for LLM router selection."},"exclude_providers":{"type":"array","items":{"type":"string"},"description":"Providers to exclude from routing. All models under excluded providers are skipped."},"exclude_models":{"type":"array","items":{"type":"string"},"description":"Specific models to exclude from routing."},"metadata":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMetadata","description":"Custom key-value metadata attached to the span."},"custom_identifier":{"type":"string","description":"Indexed custom tag for fast querying."},"customer_identifier":{"type":"string","maxLength":254,"description":"End user identifier for analytics and budgets."},"customer_params":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaCustomerParams","description":"Extended customer info. Properties: `customer_identifier` (required), `group_identifier`, `name`, `email`, `period_budget`, `budget_duration` (`daily`/`weekly`/`monthly`), `total_budget`, `markup_percentage`."},"request_breakdown":{"type":"boolean","description":"Return response metrics summary in the response body. For streaming, metrics appear in the final chunk."},"positive_feedback":{"type":"boolean","description":"User feedback. `true` = liked, `false` = disliked."},"load_balance_models":{"type":"array","items":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaLoadBalanceModelsItems"},"description":"Inline load balancing options. Each item can include `model`, `weight`, and optional `credentials`."},"thread_identifier":{"type":"string","description":"Conversation thread ID. Spans with the same `thread_identifier` are grouped together."},"properties":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchema","description":"Typed metadata preserving native types (numbers, booleans, nested objects). Unlike `metadata` which coerces to strings."},"retries":{"type":"integer","default":0,"description":"Number of retries on failure."},"weight":{"type":"number","format":"double","description":"Load balancing weight."},"span_name":{"type":"string","description":"Custom span name for tracing."},"respan_params":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaRespanParams","description":"Namespaced container for all Respan parameters. Alternative to passing them at top level."}},"required":["messages","model"]}}}}}},"/api/responses":{"post":{"operationId":"create-response","summary":"Create a response","description":"Create an OpenAI-compatible response through Respan. Enter RESPAN_API_KEY in the Authorization control, choose the openai, azure, or perplexity example, and replace PROVIDER_API_KEY with that provider's key. Each example owns its fixed route-provider header and compatible request shape. The OpenAI example is otherwise ready to run. For Azure, also replace YOUR_AZURE_DEPLOYMENT and YOUR_RESOURCE; a Responses-compatible api_version is prefilled. Switching examples clears provider-specific fields left by the previous selection. Provider credentials may alternatively be stored in Settings -> Providers. Successful responses include X-Respan-Log-Id and are logged with the actual provider model and cost.","tags":["gateway"],"parameters":[{"name":"format","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ApiResponsesPostParametersFormat"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}},{"name":"X-Respan-Route-Provider","in":"header","description":"Responses upstream. Each named API Explorer example prepopulates its matching value; keep the header paired with the selected example. The Perplexity opt-in is header-only, case-insensitive, and whitespace-tolerant.","required":false,"schema":{"$ref":"#/components/schemas/ApiResponsesPostParametersXRespanRouteProvider"}}],"responses":{"200":{"description":"Response object or event stream from the selected Responses upstream.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"400":{"description":"Invalid request, provider route configuration, or upstream provider request. Include input and a route-appropriate model, preset, or models value.","content":{"application/json":{"schema":{"description":"Any type"}}}},"401":{"description":"Missing or invalid Respan authentication, or no usable provider credential. Configure the provider in Settings or supply respan_params.credential_override.","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"description":"OpenAI Responses API request. Standard Responses fields are accepted. Perplexity extensions are accepted only when X-Respan-Route-Provider is perplexity. Respan cache controls and `customer_identifier` may be sent at the request root or under `respan_params`; nested values win when both are present.","content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"OpenAI: use a supported model such as gpt-4o-mini. Azure: use azure/<your-deployment-name>. Perplexity: use a provider-prefixed model, or omit model when using preset or models."},"input":{"$ref":"#/components/schemas/ApiResponsesPostRequestBodyContentApplicationJsonSchemaInput","description":"Text or structured input for the response."},"stream":{"type":"boolean","default":false,"description":"Return Responses API server-sent events when true."},"preset":{"type":"string","description":"Perplexity Agent API preset. May be used without model."},"models":{"type":"array","items":{"type":"string"},"description":"Perplexity Agent API fallback model chain, tried in order."},"max_steps":{"type":"integer","minimum":1,"description":"Maximum Perplexity agent steps."},"language_preference":{"type":"string","description":"Preferred response language for Perplexity Agent API."},"response_format":{"$ref":"#/components/schemas/ApiResponsesPostRequestBodyContentApplicationJsonSchemaResponseFormat","description":"Perplexity Agent API structured response configuration."},"skills":{"type":"array","items":{"description":"Any type"},"description":"Perplexity Agent API skills."},"tools":{"type":"array","items":{"description":"Any type"},"description":"Response tools. Perplexity supports web_search with filters such as search_domain_filter."},"respan_params":{"$ref":"#/components/schemas/ApiResponsesPostRequestBodyContentApplicationJsonSchemaRespanParams","description":"Respan metadata, prompt configuration, customer identifiers, provider credentials, and other gateway parameters. route_provider_override here cannot activate the Perplexity route."},"cache_enabled":{"type":"boolean","description":"Enable response caching for this request."},"cache_ttl":{"type":"number","format":"double","description":"Cache lifetime in seconds."},"cache_options":{"$ref":"#/components/schemas/ApiResponsesPostRequestBodyContentApplicationJsonSchemaCacheOptions"},"customer_identifier":{"type":"string","description":"End-customer identifier used for logging and optional cache partitioning."}},"required":["input"]}}}}}},"/api/prompts/list/":{"post":{"operationId":"list-prompts","summary":"List prompts","description":"Retrieve prompts with pagination, sorting, and POST-based filters. Common filter fields include `prompt_id`, `prompt_slug`, `name`, `description`, `starred`, `tags`, `current_version__updated_at`, and `is_deleted`.","tags":["prompts"],"parameters":[{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","default":1}},{"name":"page_size","in":"query","description":"Number of prompts per page. Maximum is 100.","required":false,"schema":{"type":"integer","maximum":100,"default":25}},{"name":"sort_by","in":"query","description":"Sort field. Prefix with `-` for descending. Common values are `-id` and `-current_version__updated_at`.","required":false,"schema":{"$ref":"#/components/schemas/ApiPromptsListPostParametersSortBy"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of prompts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Prompts_listPrompts_Response_200"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ApiPromptsListPostRequestBodyContentApplicationJsonSchemaFilters","description":"Prompt filters. See [Filters API Reference](/docs/apis/reference/filters-api-reference) for operator syntax."}}}}}}}},"/api/prompts/":{"post":{"operationId":"create-prompt","summary":"Create a prompt","description":"Create a new prompt template.","tags":["prompts"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Prompt created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Prompts_createPrompt_Response_201"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePromptRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Prompt name."},"description":{"type":"string","description":"Prompt description."}},"required":["name"]}}}}}},"/api/prompts/bulk/":{"post":{"operationId":"process-prompt-bulk-operations","summary":"Bulk update, commit, or deploy prompts","description":"Process 1 to 100 prompt operations sequentially in request order using exact `prompt_id` matching. Each item runs in its own transaction, so a failed item is rolled back without undoing successful items. `update` changes model configuration on the latest draft and does not accept content fields such as `messages`, `variables`, or `description`; `commit` snapshots the latest draft; `deploy` promotes the latest committed version. A later duplicate successful `commit` or `deploy` for the same prompt in one request is returned as an indexed error. This endpoint inherits the caller's configured API-key or JWT rate limits; it has no fixed endpoint-specific RPM.","tags":["prompts"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"All prompt operations succeeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkOperationResponse"}}}},"400":{"description":"The request failed validation, or every prompt operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessPromptBulkOperationsRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"403":{"description":"Forbidden - The caller does not have permission to update prompts","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"The request contains more than 100 prompt operations.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessPromptBulkOperationsRequestUnprocessableEntityError"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessPromptBulkOperationsRequestTooManyRequestsError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptBulkRequest"}}}}}},"/api/prompts/{prompt_id}/":{"get":{"operationId":"retrieve-prompt","summary":"Retrieve a prompt","description":"Retrieve a prompt template by ID, including its current and live versions.","tags":["prompts"],"parameters":[{"name":"prompt_id","in":"path","description":"The unique prompt identifier.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Prompt details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Prompts_retrievePrompt_Response_200"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Prompt not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrievePromptRequestNotFoundError"}}}}}},"patch":{"operationId":"update-prompt","summary":"Update a prompt","description":"Update prompt metadata such as its name or description.","tags":["prompts"],"parameters":[{"name":"prompt_id","in":"path","description":"The unique prompt identifier.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Prompt updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Prompts_updatePrompt_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePromptRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Prompt not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePromptRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Updated prompt name."},"description":{"type":"string","description":"Updated prompt description."}}}}}}},"delete":{"operationId":"delete-prompt","summary":"Delete a prompt","description":"Delete a prompt and its versions from the active prompt library.","tags":["prompts"],"parameters":[{"name":"prompt_id","in":"path","description":"The unique prompt identifier.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Prompt not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletePromptRequestNotFoundError"}}}}}}},"/api/prompts/{prompt_id}/versions/":{"post":{"operationId":"create-prompt-version","summary":"Create a prompt version","description":"Create a new version of a prompt. Use `{{variable_name}}` syntax in messages to define template variables.","tags":["prompts"],"parameters":[{"name":"prompt_id","in":"path","description":"The unique prompt identifier.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Prompt version created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Prompts_createPromptVersion_Response_201"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePromptVersionRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Prompt not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePromptVersionRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"description":{"type":"string","description":"Version description."},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaMessagesItems"},"description":"Non-empty message array. Each message requires `role`; `content` may be omitted, an empty string, `null`, or an empty array."},"thinking":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaThinking"},{"type":"null"}],"description":"Optional provider-specific reasoning configuration."},"model":{"type":"string","description":"Primary model for this version."},"stream":{"type":"boolean","default":false,"description":"Whether to stream responses."},"temperature":{"type":"number","format":"double","description":"Sampling temperature (0-2)."},"max_tokens":{"type":"integer","description":"Maximum tokens to generate."},"top_p":{"type":"number","format":"double","description":"Nucleus sampling parameter."},"frequency_penalty":{"type":"number","format":"double","description":"Frequency penalty (-2 to 2)."},"presence_penalty":{"type":"number","format":"double","description":"Presence penalty (-2 to 2)."},"reasoning_effort":{"type":["string","null"]},"verbosity":{"type":["string","null"]},"seed":{"type":["integer","null"]},"variables":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaVariables","description":"Template variables and their default values."},"fallback_models":{"type":"array","items":{"type":"string"},"description":"Fallback models if the primary model fails."},"load_balance_models":{"type":"array","items":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaLoadBalanceModelsItems"},"description":"Weighted load-balancing model configuration."},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaToolsItems"},"description":"Tools available to the model."},"tool_choice":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaToolChoice"},"response_format":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaResponseFormat"},{"type":"null"}],"description":"Structured output / response format configuration."},"json_schema":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaJsonSchema"},{"type":"null"}],"description":"JSON schema used for structured outputs when configured."},"is_enforcing_response_format":{"type":"boolean","default":false,"description":"Whether to strictly enforce the response format."},"deploy":{"type":"boolean","default":false,"description":"Deploy this version as the live version immediately."}},"required":["messages"]}}}}},"get":{"operationId":"list-prompt-versions","summary":"List prompt versions","description":"List all versions for a prompt. Results are ordered newest first.","tags":["prompts"],"parameters":[{"name":"prompt_id","in":"path","description":"The unique prompt identifier.","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","default":1}},{"name":"page_size","in":"query","description":"Number of prompt versions per page. Maximum is 500.","required":false,"schema":{"type":"integer","maximum":500,"default":200}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of prompt versions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Prompts_listPromptVersions_Response_200"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Prompt not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPromptVersionsRequestNotFoundError"}}}}}}},"/api/prompts/{prompt_id}/versions/{version}/":{"get":{"operationId":"retrieve-prompt-version","summary":"Retrieve a prompt version","description":"Retrieve a specific version of a prompt.","tags":["prompts"],"parameters":[{"name":"prompt_id","in":"path","description":"The unique prompt identifier.","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","description":"The prompt version number.","required":true,"schema":{"type":"integer"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Prompt version details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Prompts_retrievePromptVersion_Response_200"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Prompt version not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrievePromptVersionRequestNotFoundError"}}}}}},"patch":{"operationId":"update-prompt-version","summary":"Update a prompt version","description":"Update a prompt version. Set `deploy: true` to make this version live immediately.","tags":["prompts"],"parameters":[{"name":"prompt_id","in":"path","description":"The unique prompt identifier.","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","description":"The prompt version number.","required":true,"schema":{"type":"integer"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Prompt version updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Prompts_updatePromptVersion_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePromptVersionRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Prompt version not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePromptVersionRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"description":{"type":"string","description":"Version description."},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaMessagesItems"},"description":"Messages for this version. Use `{{variable_name}}` placeholders for template variables."},"thinking":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaThinking"},{"type":"null"}],"description":"Optional provider-specific reasoning configuration."},"model":{"type":"string","description":"Primary model for this version."},"stream":{"type":"boolean","default":false,"description":"Whether to stream responses."},"temperature":{"type":"number","format":"double","description":"Sampling temperature (0-2)."},"max_tokens":{"type":"integer","description":"Maximum tokens to generate."},"top_p":{"type":"number","format":"double","description":"Nucleus sampling parameter."},"frequency_penalty":{"type":"number","format":"double","description":"Frequency penalty (-2 to 2)."},"presence_penalty":{"type":"number","format":"double","description":"Presence penalty (-2 to 2)."},"reasoning_effort":{"type":["string","null"]},"verbosity":{"type":["string","null"]},"seed":{"type":["integer","null"]},"variables":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaVariables","description":"Template variables and their default values."},"fallback_models":{"type":"array","items":{"type":"string"},"description":"Fallback models if the primary model fails."},"load_balance_models":{"type":"array","items":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaLoadBalanceModelsItems"},"description":"Weighted load-balancing model configuration."},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaToolsItems"},"description":"Tools available to the model."},"tool_choice":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaToolChoice"},"response_format":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaResponseFormat"},{"type":"null"}],"description":"Structured output / response format configuration."},"json_schema":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaJsonSchema"},{"type":"null"}],"description":"JSON schema used for structured outputs when configured."},"is_enforcing_response_format":{"type":"boolean","default":false,"description":"Whether to strictly enforce the response format."},"deploy":{"type":"boolean","default":false,"description":"Deploy this version as the live version immediately."}}}}}}},"delete":{"operationId":"delete-prompt-version","summary":"Delete a prompt version","description":"Delete a specific prompt version. The currently deployed live version cannot be deleted.","tags":["prompts"],"parameters":[{"name":"prompt_id","in":"path","description":"The unique prompt identifier.","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","description":"The prompt version number.","required":true,"schema":{"type":"integer"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletePromptVersionRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Prompt version not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletePromptVersionRequestNotFoundError"}}}}}}},"/api/prompts/{prompt_id}/commits/":{"post":{"operationId":"commit-prompt-version","summary":"Commit a prompt version","description":"Commit the current draft version. This creates a readonly snapshot and advances the draft workflow.","tags":["prompts"],"parameters":[{"name":"prompt_id","in":"path","description":"The unique prompt identifier.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Committed version created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Prompts_commitPromptVersion_Response_201"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommitPromptVersionRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Prompt not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommitPromptVersionRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"description":{"type":"string","description":"Optional commit message describing the changes."}}}}}}}},"/api/prompts/{prompt_id}/deployments/":{"post":{"operationId":"deploy-prompt-version","summary":"Deploy a prompt version","description":"Deploy a committed version as the live version for this prompt.","tags":["prompts"],"parameters":[{"name":"prompt_id","in":"path","description":"The unique prompt identifier.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Version deployed successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Prompts_deployPromptVersion_Response_201"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeployPromptVersionRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Version not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeployPromptVersionRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"integer","description":"Version number to deploy as live."}},"required":["version"]}}}}}},"/api/prompts/summary/":{"post":{"operationId":"get-prompts-summary-with-filters","summary":"Get prompts summary with filters","description":"Get summary statistics for prompts that match the specified filters.","tags":["prompts"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Filtered prompt summary statistics.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Prompts_getPromptsSummaryWithFilters_Response_200"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ApiPromptsSummaryPostRequestBodyContentApplicationJsonSchemaFilters","description":"Prompt filters. See [Filters API Reference](/docs/apis/reference/filters-api-reference) for operator syntax."}}}}}}}},"/api/response-format-presets/":{"get":{"operationId":"api-response-format-presets-list","summary":"List response-format presets","description":"List the project's saved response-format schemas. List rows intentionally omit the schema content; retrieve a preset to load it into an editor.","tags":["prompts"],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"-updated_at"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated response-format presets.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Prompts_api_response_format_presets_list_Response_200"}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}}},"post":{"operationId":"api-response-format-presets-create","summary":"Create a response-format preset","description":"Save JSON-schema text in the caller's project. The content remains a JSON string and is validated without reformatting. Project and creator are server stamped.","tags":["prompts"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Preset created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Prompts_api_response_format_presets_create_Response_201"}}}},"400":{"description":"Invalid preset content.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"response_format_content":{"type":"string","description":"JSON text preserved verbatim. It must decode to an object with a non-empty `name` and an object-valued `schema`."},"is_enforcing_response_format":{"type":"boolean","default":false}},"required":["name","response_format_content"]}}}}}},"/api/response-format-presets/{id}/":{"get":{"operationId":"api-response-format-presets-retrieve","summary":"Get a response-format preset","description":"Retrieve the complete saved response-format schema text.","tags":["prompts"],"parameters":[{"name":"id","in":"path","description":"Response-format preset ID.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Response-format preset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Prompts_api_response_format_presets_retrieve_Response_200"}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"404":{"description":"Preset not found in the caller's project.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}}},"delete":{"operationId":"api-response-format-presets-destroy","summary":"Delete a response-format preset","description":"Delete a response-format preset from the caller's project.","tags":["prompts"],"parameters":[{"name":"id","in":"path","description":"Response-format preset ID.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"404":{"description":"Preset not found in the caller's project.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}}},"patch":{"operationId":"api-response-format-presets-partial-update","summary":"Update a response-format preset","description":"Partially update a preset. When supplied, schema content is validated and preserved verbatim.","tags":["prompts"],"parameters":[{"name":"id","in":"path","description":"Response-format preset ID.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Preset updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Prompts_api_response_format_presets_partial_update_Response_200"}}}},"400":{"description":"Invalid preset content.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"404":{"description":"Preset not found in the caller's project.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"response_format_content":{"type":"string","description":"JSON text preserved verbatim. It must decode to an object with a non-empty `name` and an object-valued `schema`."},"is_enforcing_response_format":{"type":"boolean"}}}}}}}},"/api/workflows/":{"get":{"operationId":"api-workflows-list","summary":"List workflows","description":"List one representative version per workflow family. The editable draft is returned when one exists; otherwise the latest committed version is returned. Public Respan-managed workflows are included only when requested.","tags":["workflows"],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"sort_by","in":"query","description":"Sort field, for example `-updated_at`.","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ApiWorkflowsGetParametersType"}},{"name":"trigger_event_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ApiWorkflowsGetParametersTriggerEventType"}},{"name":"search","in":"query","description":"Free-text search over workflow names.","required":false,"schema":{"type":"string"}},{"name":"is_including_public_workflows","in":"query","description":"Include Respan-managed public workflows.","required":false,"schema":{"type":"boolean","default":false}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated workflow families.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workflows_api_workflows_list_Response_200"}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Api_workflows_listRequestUnauthorizedError"}}}}}},"post":{"operationId":"create-workflow","summary":"Create a workflow","description":"Create a new workflow family with an editable draft. Task IDs and sequential links are generated when omitted. `type` defaults to `automations`; deployment and read-only state are server controlled.","tags":["workflows"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Workflow draft created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workflows_createWorkflow_Response_201"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkflowRequestBadRequestError"}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkflowRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":["string","null"]},"description":{"type":["string","null"]},"type":{"$ref":"#/components/schemas/ApiWorkflowsPostRequestBodyContentApplicationJsonSchemaType","description":"Workflow category. Defaults to `automations`."},"trigger_event_type":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsPostRequestBodyContentApplicationJsonSchemaTriggerEventType"},{"type":"null"}],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`."},"schedule_cron":{"type":["string","null"],"description":"UTC five-field cron expression. Required when `trigger_event_type` is `scheduled`, forbidden for other trigger types, and limited to a minimum five-minute cadence. Timezone prefixes such as `TZ` and `CRON_TZ` are not supported."},"is_starred":{"type":"boolean"},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsPostRequestBodyContentApplicationJsonSchemaTasksItems"}}}}}}}}},"/api/workflows/list/":{"post":{"operationId":"filter-workflows","summary":"Filter workflows","description":"List one representative version per workflow family using optional complex filters in the request body. An omitted body or omitted `filters` object applies only the query-string filters.","tags":["workflows"],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"sort_by","in":"query","description":"Sort field, for example `-updated_at`.","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ApiWorkflowsListPostParametersType"}},{"name":"trigger_event_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ApiWorkflowsListPostParametersTriggerEventType"}},{"name":"search","in":"query","description":"Free-text search over workflow names.","required":false,"schema":{"type":"string"}},{"name":"is_including_public_workflows","in":"query","description":"Include Respan-managed public workflows.","required":false,"schema":{"type":"boolean","default":false}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated filtered workflow families.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workflows_filterWorkflows_Response_200"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterWorkflowsRequestBadRequestError"}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterWorkflowsRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Filter parameters keyed by field name."}}}}}}}},"/api/workflows/{workflow_id}/":{"get":{"operationId":"get-workflow","summary":"Get a workflow","description":"Return the editable draft when one exists, otherwise the latest committed version. Set `is_exporting=true` for a portable, secret-sanitized export. Webhook secrets remain masked unless an authorized caller sets `is_including_secrets=true`.","tags":["workflows"],"parameters":[{"name":"workflow_id","in":"path","description":"Logical workflow-family ID.","required":true,"schema":{"type":"string"}},{"name":"is_including_secrets","in":"query","description":"Reveal webhook secret values when authorized.","required":false,"schema":{"type":"boolean","default":false}},{"name":"is_exporting","in":"query","description":"Return a portable export envelope.","required":false,"schema":{"type":"boolean","default":false}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Workflow detail or portable export.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workflows_getWorkflow_Response_200"}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetWorkflowRequestUnauthorizedError"}}}},"404":{"description":"Workflow family not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetWorkflowRequestNotFoundError"}}}}}},"patch":{"operationId":"update-workflow","summary":"Update a workflow","description":"Update a workflow family. `name`, `description`, and `is_starred` are family metadata and propagate to every version. Structural fields edit the current draft; committed-only families must create a new draft first.","tags":["workflows"],"parameters":[{"name":"workflow_id","in":"path","description":"Logical workflow-family ID.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Workflow updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workflows_updateWorkflow_Response_200"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkflowRequestBadRequestError"}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkflowRequestUnauthorizedError"}}}},"404":{"description":"Workflow family not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkflowRequestNotFoundError"}}}},"409":{"description":"The family has no editable draft.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkflowRequestConflictError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":["string","null"]},"description":{"type":["string","null"]},"type":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdPatchRequestBodyContentApplicationJsonSchemaType","description":"Workflow category. Defaults to `automations`."},"trigger_event_type":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdPatchRequestBodyContentApplicationJsonSchemaTriggerEventType"},{"type":"null"}],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`."},"schedule_cron":{"type":["string","null"],"description":"UTC five-field cron expression. Required when `trigger_event_type` is `scheduled`, forbidden for other trigger types, and limited to a minimum five-minute cadence. Timezone prefixes such as `TZ` and `CRON_TZ` are not supported."},"is_starred":{"type":"boolean"},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdPatchRequestBodyContentApplicationJsonSchemaTasksItems"}}}}}}}},"delete":{"operationId":"delete-workflow","summary":"Delete a workflow","description":"Delete every version in a workflow family.","tags":["workflows"],"parameters":[{"name":"workflow_id","in":"path","description":"Logical workflow-family ID.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteWorkflowRequestUnauthorizedError"}}}},"404":{"description":"Workflow family not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteWorkflowRequestNotFoundError"}}}}}}},"/api/workflows/{workflow_id}/versions/":{"get":{"operationId":"list-workflow-versions","summary":"List workflow versions","description":"List all draft and committed versions in a workflow family. An unknown family returns an empty page.","tags":["workflows"],"parameters":[{"name":"workflow_id","in":"path","description":"Logical workflow-family ID.","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"sort_by","in":"query","description":"Sort field, for example `-updated_at`.","required":false,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated workflow versions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workflows_listWorkflowVersions_Response_200"}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWorkflowVersionsRequestUnauthorizedError"}}}}}},"post":{"operationId":"create-workflow-version","summary":"Create a workflow draft","description":"Create a new editable draft from the submitted workflow content. The server assigns the next version and the family identity. This does not clone, commit, deploy, or modify any existing version.","tags":["workflows"],"parameters":[{"name":"workflow_id","in":"path","description":"Logical workflow-family ID.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Editable draft created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workflows_createWorkflowVersion_Response_201"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkflowVersionRequestBadRequestError"}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkflowVersionRequestUnauthorizedError"}}}},"404":{"description":"Workflow family not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkflowVersionRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":["string","null"]},"description":{"type":["string","null"]},"type":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsPostRequestBodyContentApplicationJsonSchemaType","description":"Workflow category. Defaults to `automations`."},"trigger_event_type":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsPostRequestBodyContentApplicationJsonSchemaTriggerEventType"},{"type":"null"}],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`."},"schedule_cron":{"type":["string","null"],"description":"UTC five-field cron expression. Required when `trigger_event_type` is `scheduled`, forbidden for other trigger types, and limited to a minimum five-minute cadence. Timezone prefixes such as `TZ` and `CRON_TZ` are not supported."},"is_starred":{"type":"boolean"},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsPostRequestBodyContentApplicationJsonSchemaTasksItems"}}}}}}}}},"/api/workflows/{workflow_id}/versions/{version}/":{"get":{"operationId":"get-workflow-version","summary":"Get a workflow version","description":"Retrieve one exact workflow version, including its current write-access metadata.","tags":["workflows"],"parameters":[{"name":"workflow_id","in":"path","description":"Logical workflow-family ID.","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","description":"Workflow version number.","required":true,"schema":{"type":"integer"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Workflow version.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workflows_getWorkflowVersion_Response_200"}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetWorkflowVersionRequestUnauthorizedError"}}}},"404":{"description":"Workflow version not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetWorkflowVersionRequestNotFoundError"}}}}}},"patch":{"operationId":"update-workflow-version","summary":"Update a workflow version","description":"Update an editable workflow version. Committed read-only versions cannot be changed; create a new draft instead. Commit messages and read-only state are controlled by the commit endpoint.","tags":["workflows"],"parameters":[{"name":"workflow_id","in":"path","description":"Logical workflow-family ID.","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","description":"Workflow version number.","required":true,"schema":{"type":"integer"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Workflow version updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workflows_updateWorkflowVersion_Response_200"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkflowVersionRequestBadRequestError"}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkflowVersionRequestUnauthorizedError"}}}},"403":{"description":"The requested version is read-only.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkflowVersionRequestForbiddenError"}}}},"404":{"description":"Workflow version not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkflowVersionRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":["string","null"]},"description":{"type":["string","null"]},"type":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaType","description":"Workflow category. Defaults to `automations`."},"trigger_event_type":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaTriggerEventType"},{"type":"null"}],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`."},"schedule_cron":{"type":["string","null"],"description":"UTC five-field cron expression. Required when `trigger_event_type` is `scheduled`, forbidden for other trigger types, and limited to a minimum five-minute cadence. Timezone prefixes such as `TZ` and `CRON_TZ` are not supported."},"is_starred":{"type":"boolean"},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaTasksItems"}}}}}}}}},"/api/workflows/{workflow_id}/commits/":{"post":{"operationId":"api-workflows-commits-create","summary":"Commit a workflow draft","description":"Commit the current editable draft in place. Omitting `version_description` preserves its existing commit message; an explicit empty string clears it.","tags":["workflows"],"parameters":[{"name":"workflow_id","in":"path","description":"Logical workflow-family ID.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Draft committed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workflows_api_workflows_commits_create_Response_200"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Api_workflows_commits_createRequestBadRequestError"}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Api_workflows_commits_createRequestUnauthorizedError"}}}},"404":{"description":"Workflow family not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Api_workflows_commits_createRequestNotFoundError"}}}},"409":{"description":"The family has no draft to commit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Api_workflows_commits_createRequestConflictError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"version_description":{"type":"string","description":"Commit message for this version."}}}}}}}},"/api/workflows/{workflow_id}/deployments/":{"post":{"operationId":"deploy-workflow","summary":"Deploy a workflow version","description":"Deploy one committed workflow version and disable any previously deployed version in the family. Omitting `version` deploys the latest committed version.","tags":["workflows"],"parameters":[{"name":"workflow_id","in":"path","description":"Logical workflow-family ID.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Workflow version deployed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workflows_deployWorkflow_Response_200"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeployWorkflowRequestBadRequestError"}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeployWorkflowRequestUnauthorizedError"}}}},"404":{"description":"Workflow family or committed version not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeployWorkflowRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"integer","minimum":1}}}}}}},"delete":{"operationId":"undeploy-workflow","summary":"Undeploy a workflow","description":"Disable the deployed version in an existing workflow family. The operation is idempotent when the family has no active deployment.","tags":["workflows"],"parameters":[{"name":"workflow_id","in":"path","description":"Logical workflow-family ID.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UndeployWorkflowRequestUnauthorizedError"}}}},"404":{"description":"Workflow family not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UndeployWorkflowRequestNotFoundError"}}}}}}},"/api/workflows/{workflow_id}/validations/":{"post":{"operationId":"validate-workflow","summary":"Validate a workflow","description":"Validate the latest editable draft and send real preview notifications or webhooks for delivery tasks. No logs are fetched and no aggregation runs. Configuration failures are returned in the `200` validation envelope; a draft with no tasks succeeds with an empty `task_results` array.","tags":["workflows"],"parameters":[{"name":"workflow_id","in":"path","description":"Logical workflow-family ID.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Workflow validation result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workflows_validateWorkflow_Response_200"}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateWorkflowRequestUnauthorizedError"}}}},"404":{"description":"Workflow family has no editable draft.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateWorkflowRequestNotFoundError"}}}}}}},"/api/datasets/":{"post":{"operationId":"create-dataset","summary":"Create a dataset","description":"Create a new dataset from existing logs, create an empty dataset, or duplicate an existing dataset.","tags":["datasets"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Dataset created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Datasets_createDataset_Response_201"}}}},"400":{"description":"Invalid dataset request, time range, sampling, or processing limit.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"402":{"description":"The organization has reached its dataset plan limit.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"404":{"description":"Source dataset not found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Dataset name. Required unless `source_dataset_id` is provided."},"description":{"type":"string","description":"Dataset description."},"sampling":{"type":"integer","default":100,"description":"Percent of matching logs to add (1-100)."},"start_time":{"type":"string","format":"date-time","description":"Start of the time range to sample logs from."},"end_time":{"type":"string","format":"date-time","description":"End of the time range to sample logs from."},"is_empty":{"type":"boolean","default":false,"description":"Create an empty dataset without importing logs."},"initial_log_filters":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiDatasetsPostRequestBodyContentApplicationJsonSchemaInitialLogFilters"},"description":"Platform-standard filters keyed by field name."},"source_dataset_id":{"type":"string","description":"Existing dataset ID to duplicate. Copies logs asynchronously."},"granularity":{"$ref":"#/components/schemas/ApiDatasetsPostRequestBodyContentApplicationJsonSchemaGranularity","description":"Evaluation unit. Immutable after dataset creation."}}}}}}}},"/api/datasets/list/":{"post":{"operationId":"list-datasets","summary":"List datasets","description":"List datasets with pagination and optional filters.","tags":["datasets"],"parameters":[{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","default":1}},{"name":"page_size","in":"query","description":"Results per page.","required":false,"schema":{"type":"integer","default":25}},{"name":"sort_by","in":"query","description":"Sort field. Prefix with `-` for descending order.","required":false,"schema":{"type":"string","default":"-created_at"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of datasets.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Datasets_listDatasets_Response_200"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDatasetsRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiDatasetsListPostRequestBodyContentApplicationJsonSchemaFilters"},"description":"Platform-standard filters keyed by field name."}}}}}}}},"/api/datasets/{id}/":{"get":{"operationId":"retrieve-dataset","summary":"Retrieve a dataset","description":"Retrieve a dataset by ID.","tags":["datasets"],"parameters":[{"name":"id","in":"path","description":"Dataset ID.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response for Retrieve dataset","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Datasets_retrieveDataset_Response_200"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}}}},"patch":{"operationId":"update-dataset","summary":"Update a dataset","description":"Update dataset metadata such as the name, description, starred state, or tags.","tags":["datasets"],"parameters":[{"name":"id","in":"path","description":"Dataset ID.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Datasets_updateDataset_Response_200"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Updated dataset name."},"description":{"type":"string","description":"Updated dataset description."},"starred":{"type":"boolean","description":"Whether the dataset is starred."},"tags":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of tag IDs to assign. Replaces existing tags."}}}}}}},"delete":{"operationId":"delete-dataset","summary":"Delete a dataset","description":"Delete a dataset and the logs it contains.","tags":["datasets"],"parameters":[{"name":"id","in":"path","description":"Dataset ID.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}}}}},"/api/datasets/{dataset_id}/logs/":{"post":{"operationId":"create-dataset-log","summary":"Create a dataset log","description":"Create a single dataset log from unified-format input/output data.","tags":["datasets"],"parameters":[{"name":"dataset_id","in":"path","description":"Dataset ID. Use `_saved_logs` for the virtual saved-logs collection.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Dataset log created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Datasets_createDatasetLog_Response_201"}}}},"400":{"description":"Invalid dataset-log payload.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Dataset not found.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetLogCreateRequest"}}}}}},"/api/datasets/{dataset_id}/logs/list/":{"post":{"operationId":"list-dataset-logs","summary":"List dataset logs","description":"List logs in a dataset with filters and pagination. Set `is_exporting=true` to trigger an asynchronous CSV or JSONL export instead of returning results.","tags":["datasets"],"parameters":[{"name":"dataset_id","in":"path","description":"Dataset ID. Use `_saved_logs` for the virtual saved-logs collection.","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","default":1}},{"name":"page_size","in":"query","description":"Results per page. Maximum is 100.","required":false,"schema":{"type":"integer","maximum":100,"default":25}},{"name":"sort_by","in":"query","description":"Sort field for dataset logs. Prefix with `-` for descending order.","required":false,"schema":{"type":"string","default":"-timestamp"}},{"name":"include_fields","in":"query","description":"Comma-separated list of response fields to include.","required":false,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated dataset logs, or an export acknowledgement when `is_exporting=true`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Datasets_listDatasetLogs_Response_200"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsListPostRequestBodyContentApplicationJsonSchemaFilters"},"description":"Platform-standard filters keyed by field name."},"is_exporting":{"type":"boolean","description":"Set to `true` to export logs instead of returning a paginated list."},"export_format":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsListPostRequestBodyContentApplicationJsonSchemaExportFormat","description":"Export format. Defaults to `.csv`."},"name":{"type":"string","description":"Optional export file name."}}}}}}}},"/api/datasets/{dataset_id}/logs/{unique_id}/":{"get":{"operationId":"retrieve-dataset-log","summary":"Retrieve a dataset log","description":"Retrieve the full dataset log object, including input/output data, metadata, and associated scores.","tags":["datasets"],"parameters":[{"name":"dataset_id","in":"path","description":"Dataset ID. Use `_saved_logs` for the virtual saved-logs collection.","required":true,"schema":{"type":"string"}},{"name":"unique_id","in":"path","description":"Unique log ID within the dataset.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Dataset log details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Datasets_retrieveDatasetLog_Response_200"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Dataset log not found.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}}},"patch":{"operationId":"update-dataset-log","summary":"Update a dataset log","description":"Partially update a dataset log. Only provided fields are changed.","tags":["datasets"],"parameters":[{"name":"dataset_id","in":"path","description":"Dataset ID. Use `_saved_logs` for the virtual saved-logs collection.","required":true,"schema":{"type":"string"}},{"name":"unique_id","in":"path","description":"Unique log ID within the dataset.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated dataset log.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Datasets_updateDatasetLog_Response_200"}}}},"400":{"description":"Invalid dataset-log update.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Dataset log not found.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"description":"Any type"},"output":{"description":"Any type"},"expected_output":{"description":"Any type"},"prompt":{"type":"string"},"completion":{"type":"string"},"metadata":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsUniqueIdPatchRequestBodyContentApplicationJsonSchemaMetadata"},"error_code":{"type":"string","maxLength":120},"error_message":{"type":"string"}}}}}}},"delete":{"operationId":"delete-dataset-log","summary":"Delete a dataset log","description":"Remove a single log from a dataset.","tags":["datasets"],"parameters":[{"name":"dataset_id","in":"path","description":"Dataset ID. Use `_saved_logs` for the virtual saved-logs collection.","required":true,"schema":{"type":"string"}},{"name":"unique_id","in":"path","description":"Unique log ID within the dataset.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}}}},"put":{"operationId":"replace-dataset-log","summary":"Replace a dataset log","description":"Replace a dataset log with a new payload. Fields omitted from the body are removed.","tags":["datasets"],"parameters":[{"name":"dataset_id","in":"path","description":"Dataset ID. Use `_saved_logs` for the virtual saved-logs collection.","required":true,"schema":{"type":"string"}},{"name":"unique_id","in":"path","description":"Unique log ID within the dataset.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated dataset log.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Datasets_replaceDatasetLog_Response_200"}}}},"400":{"description":"Invalid dataset-log update.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Dataset log not found.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"description":"Any type"},"output":{"description":"Any type"},"expected_output":{"description":"Any type"},"prompt":{"type":"string"},"completion":{"type":"string"},"metadata":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsUniqueIdPutRequestBodyContentApplicationJsonSchemaMetadata"},"error_code":{"type":"string","maxLength":120},"error_message":{"type":"string"}}}}}}}},"/api/datasets/{dataset_id}/logs/bulk/":{"post":{"operationId":"bulk-create-dataset-logs","summary":"Bulk create dataset logs","description":"Submit 1 to 500 dataset logs for ingestion in one request. Each log uses the same object as the single-create endpoint, and partial success is allowed. A `201` response can therefore contain item-level errors; if every item fails, the endpoint returns `400`. Rate limit: 30 requests per minute per organization for API-key calls (shared across API keys) and per user for JWT calls.","tags":["datasets"],"parameters":[{"name":"dataset_id","in":"path","description":"Dataset ID. Use `_saved_logs` for the virtual saved-logs collection.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"At least one dataset log was accepted for ingestion. Inspect `error_count` and `errors` for partial failures.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkOperationResponse"}}}},"400":{"description":"The request is invalid, or every submitted log failed.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"403":{"description":"Forbidden - The caller cannot add logs to this dataset","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"The requested dataset does not exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCreateDatasetLogsRequestNotFoundError"}}}},"422":{"description":"The request contains more than 500 logs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCreateDatasetLogsRequestUnprocessableEntityError"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCreateDatasetLogsRequestTooManyRequestsError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"logs":{"type":"array","items":{"$ref":"#/components/schemas/DatasetLogCreateRequest"},"description":"Dataset log objects to create. Items are processed independently and errors use their zero-based array index."}},"required":["logs"]}}}}}},"/api/datasets/{dataset_id}/eval-reports/create/":{"post":{"operationId":"run-eval-on-dataset","summary":"Run evaluators on a dataset","description":"Create dataset evaluation tasks for one or more evaluators.","tags":["datasets"],"parameters":[{"name":"dataset_id","in":"path","description":"Dataset ID.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Evaluation tasks created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Datasets_runEvalOnDataset_Response_201"}}}},"400":{"description":"Bad request - missing dataset or evaluator IDs, or evaluator access denied.","content":{"application/json":{"schema":{"description":"Any type"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication.","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Dataset not found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"evaluator_ids":{"type":"array","items":{"type":"string"},"description":"Evaluator IDs to run against the dataset."},"experiment_id":{"type":"string","description":"Optional experiment to associate with the evaluation runs."},"generation_method":{"type":"string","description":"Optional generation strategy. Defaults to `auto`."}},"required":["evaluator_ids"]}}}}}},"/api/datasets/{dataset_id}/eval-reports/list/":{"get":{"operationId":"list-dataset-eval-runs","summary":"List dataset evaluation runs","description":"List evaluation runs that were created for a dataset.","tags":["datasets"],"parameters":[{"name":"dataset_id","in":"path","description":"Dataset ID.","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","default":1}},{"name":"page_size","in":"query","description":"Results per page. Maximum is 100.","required":false,"schema":{"type":"integer","maximum":100,"default":25}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of dataset evaluation runs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Datasets_listDatasetEvalRuns_Response_200"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}}}}},"/api/datasets/{dataset_id}/logs/import/":{"post":{"operationId":"import-dataset-logs","summary":"Import existing logs into a dataset","description":"Import existing request logs into a dataset asynchronously using a time range, filters, and optional sampling.","tags":["datasets"],"parameters":[{"name":"dataset_id","in":"path","description":"Dataset ID.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Import started.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Datasets_importDatasetLogs_Response_200"}}}},"400":{"description":"Bad request - invalid time range, filters, or plan limit exceeded.","content":{"application/json":{"schema":{"description":"Any type"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication.","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Dataset not found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"start_time":{"type":"string","format":"date-time"},"end_time":{"type":"string","format":"date-time"},"filters":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsImportPostRequestBodyContentApplicationJsonSchemaFilters"},"description":"Platform-standard filters keyed by field name."},"sampling_percentage":{"type":"integer","default":100,"description":"Percent of matching logs to import (1-100)."}},"required":["start_time","end_time"]}}}}},"delete":{"operationId":"remove-dataset-logs","summary":"Remove logs from a dataset","description":"Remove logs from a dataset asynchronously by filters, or remove all logs by setting `is_deleting_all_logs=true`.","tags":["datasets"],"parameters":[{"name":"dataset_id","in":"path","description":"Dataset ID.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Removal started.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Datasets_removeDatasetLogs_Response_200"}}}},"400":{"description":"Bad request - provide `filters` or set `is_deleting_all_logs=true`.","content":{"application/json":{"schema":{"description":"Any type"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication.","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Dataset not found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"is_deleting_all_logs":{"type":"boolean","default":false,"description":"Set to `true` to remove every log in the dataset."},"filters":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsImportDeleteRequestBodyContentApplicationJsonSchemaFilters"},"description":"Platform-standard filters keyed by field name."}}}}}}}},"/api/datasets/{dataset_id}/logs/summary/":{"post":{"operationId":"summarize-dataset-logs-filtered","summary":"Get filtered dataset logs summary","description":"Get aggregate usage metrics and evaluator score summaries for a filtered subset of dataset logs.","tags":["datasets"],"parameters":[{"name":"dataset_id","in":"path","description":"Dataset ID.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Filtered dataset log summary.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Datasets_summarizeDatasetLogsFiltered_Response_200"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication.","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Dataset not found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsSummaryPostRequestBodyContentApplicationJsonSchemaFilters"},"description":"Platform-standard filters keyed by field name."}}}}}}}},"/api/testsets/":{"post":{"operationId":"create-testset","summary":"Create a testset","description":"Create a new testset for evaluation. Public API responses return the external testset ID and column metadata only.","tags":["testsets"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Created testset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Testsets_createTestset_Response_201"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTestsetRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTestsetRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Testset name."},"description":{"type":"string","description":"Optional description stored with the testset."},"starred":{"type":"boolean","default":false,"description":"Whether to star the testset in the UI."},"column_definitions":{"type":"array","items":{"$ref":"#/components/schemas/ApiTestsetsPostRequestBodyContentApplicationJsonSchemaColumnDefinitionsItems"},"description":"Column definitions for the testset rows."}},"required":["name"]}}}}}},"/api/testsets/list/":{"post":{"operationId":"list-testsets","summary":"List testsets","description":"List testsets with pagination and optional filters.","tags":["testsets"],"parameters":[{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","minimum":1}},{"name":"page_size","in":"query","description":"Number of results to return per page. Maximum 100.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"sort_by","in":"query","description":"Sort field. Common values include `-created_at`, `name`, and `updated_at`.","required":false,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated testset list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Testsets_listTestsets_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTestsetsRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTestsetsRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ApiTestsetsListPostRequestBodyContentApplicationJsonSchemaFilters","description":"Filter criteria using the standard Respan filter format."}}}}}}}},"/api/testsets/{testset_id}/":{"get":{"operationId":"retrieve-testset","summary":"Retrieve a testset","description":"Retrieve a testset by ID.","tags":["testsets"],"parameters":[{"name":"testset_id","in":"path","description":"The testset ID returned as `id` by the API.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Testset details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Testsets_retrieveTestset_Response_200"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveTestsetRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveTestsetRequestNotFoundError"}}}}}},"patch":{"operationId":"update-testset","summary":"Update a testset","description":"Partially update testset metadata such as the name, description, starred state, or column definitions.","tags":["testsets"],"parameters":[{"name":"testset_id","in":"path","description":"The testset ID returned as `id` by the API.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated testset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Testsets_updateTestset_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTestsetRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTestsetRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTestsetRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Testset name."},"description":{"type":"string","description":"Optional description stored with the testset."},"starred":{"type":"boolean","default":false,"description":"Whether to star the testset in the UI."},"column_definitions":{"type":"array","items":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdPatchRequestBodyContentApplicationJsonSchemaColumnDefinitionsItems"},"description":"Column definitions for the testset rows."}}}}}}},"delete":{"operationId":"delete-testset","summary":"Delete a testset","description":"Delete a testset and all of its rows.","tags":["testsets"],"parameters":[{"name":"testset_id","in":"path","description":"The testset ID returned as `id` by the API.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteTestsetRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteTestsetRequestNotFoundError"}}}}}},"put":{"operationId":"replace-testset","summary":"Replace a testset","description":"Replace a testset metadata payload.","tags":["testsets"],"parameters":[{"name":"testset_id","in":"path","description":"The testset ID returned as `id` by the API.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated testset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Testsets_replaceTestset_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceTestsetRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceTestsetRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceTestsetRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Testset name."},"description":{"type":"string","description":"Optional description stored with the testset."},"starred":{"type":"boolean","default":false,"description":"Whether to star the testset in the UI."},"column_definitions":{"type":"array","items":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdPutRequestBodyContentApplicationJsonSchemaColumnDefinitionsItems"},"description":"Column definitions for the testset rows."}},"required":["name"]}}}}}},"/api/testsets/{testset_id}/rows/":{"post":{"operationId":"create-testset-rows","summary":"Create testset rows","description":"Create or upsert one or more rows in a testset. Send the rows in the required `testset_rows` envelope.","tags":["testsets"],"parameters":[{"name":"testset_id","in":"path","description":"The testset ID returned as `id` by the API.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Rows created or upserted.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdRowsPostResponsesContentApplicationJsonSchemaItems"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTestsetRowsRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTestsetRowsRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTestsetRowsRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"testset_rows":{"type":"array","items":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdRowsPostRequestBodyContentApplicationJsonSchemaTestsetRowsItems"}}},"required":["testset_rows"]}}}}},"get":{"operationId":"list-testset-rows","summary":"List testset rows","description":"List rows in a testset.","tags":["testsets"],"parameters":[{"name":"testset_id","in":"path","description":"The testset ID returned as `id` by the API.","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","minimum":1}},{"name":"page_size","in":"query","description":"Number of results to return per page. Maximum 1000.","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated row list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Testsets_listTestsetRows_Response_200"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTestsetRowsRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTestsetRowsRequestNotFoundError"}}}}}},"delete":{"operationId":"delete-testset-rows","summary":"Delete testset rows","description":"Delete multiple rows from a testset by `row_index`.","tags":["testsets"],"parameters":[{"name":"testset_id","in":"path","description":"The testset ID returned as `id` by the API.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteTestsetRowsRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteTestsetRowsRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteTestsetRowsRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"row_indexes":{"type":"array","items":{"type":"number","format":"double"},"description":"Row indexes to delete."}},"required":["row_indexes"]}}}}}},"/api/testsets/{testset_id}/rows/{row_index}/":{"patch":{"operationId":"update-testset-row","summary":"Update a testset row","description":"Partially update a single row in a testset.","tags":["testsets"],"parameters":[{"name":"testset_id","in":"path","description":"The testset ID returned as `id` by the API.","required":true,"schema":{"type":"string"}},{"name":"row_index","in":"path","description":"The row index returned by the API. Decimal values are allowed, for example `1` or `1.5`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated row.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Testsets_updateTestsetRow_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTestsetRowRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTestsetRowRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTestsetRowRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"row_data":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdRowsRowIndexPatchRequestBodyContentApplicationJsonSchemaRowData","description":"Updated row payload keyed by testset column field."}}}}}}},"delete":{"operationId":"delete-testset-row","summary":"Delete a testset row","description":"Delete a single row from a testset.","tags":["testsets"],"parameters":[{"name":"testset_id","in":"path","description":"The testset ID returned as `id` by the API.","required":true,"schema":{"type":"string"}},{"name":"row_index","in":"path","description":"The row index returned by the API. Decimal values are allowed, for example `1` or `1.5`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteTestsetRowRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteTestsetRowRequestNotFoundError"}}}}}},"get":{"operationId":"retrieve-testset-row","summary":"Retrieve a testset row","description":"Retrieve a single row from a testset.","tags":["testsets"],"parameters":[{"name":"testset_id","in":"path","description":"The testset ID returned as `id` by the API.","required":true,"schema":{"type":"string"}},{"name":"row_index","in":"path","description":"The row index returned by the API. Decimal values are allowed, for example `1` or `1.5`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Row details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Testsets_retrieveTestsetRow_Response_200"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveTestsetRowRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveTestsetRowRequestNotFoundError"}}}}}},"put":{"operationId":"replace-testset-row","summary":"Replace a testset row","description":"Replace the payload for a single row.","tags":["testsets"],"parameters":[{"name":"testset_id","in":"path","description":"The testset ID returned as `id` by the API.","required":true,"schema":{"type":"string"}},{"name":"row_index","in":"path","description":"The row index returned by the API. Decimal values are allowed, for example `1` or `1.5`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated row.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Testsets_replaceTestsetRow_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceTestsetRowRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceTestsetRowRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceTestsetRowRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"row_data":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdRowsRowIndexPutRequestBodyContentApplicationJsonSchemaRowData","description":"Updated row payload keyed by testset column field."}},"required":["row_data"]}}}}}},"/api/testsets/summary/":{"post":{"operationId":"get-filtered-testsets-summary","summary":"Get filtered testsets summary","description":"Return summary statistics for testsets after applying filters.","tags":["testsets"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Filtered summary statistics.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Testsets_getFilteredTestsetsSummary_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetFilteredTestsetsSummaryRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing/invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetFilteredTestsetsSummaryRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ApiTestsetsSummaryPostRequestBodyContentApplicationJsonSchemaFilters","description":"Filter criteria using the standard Respan filter format."}}}}}}}},"/api/evaluators/":{"post":{"operationId":"create-evaluator","summary":"Create an evaluator","description":"Create a grader/evaluator. Current public evaluator types are `llm`, `human`, and `code`; legacy human-specific types remain readable for older evaluators. New clients should use the flat config fields (`score_config`, `passing_conditions`, `llm_config`, `code_config`) instead of relying on legacy `configurations`.","tags":["evaluators"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Created evaluator.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Evaluators_createEvaluator_Response_201"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEvaluatorRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEvaluatorRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"evaluator_slug":{"type":"string","description":"Organization-scoped evaluator slug."},"type":{"$ref":"#/components/schemas/ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaType"},"score_value_type":{"$ref":"#/components/schemas/ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaScoreValueType"},"eval_class":{"$ref":"#/components/schemas/ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaEvalClass","description":"Optional pre-built evaluator template."},"description":{"type":["string","null"]},"score_config":{"$ref":"#/components/schemas/ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaScoreConfig","description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`."},"passing_conditions":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaPassingConditions"},{"type":"null"}],"description":"Passing conditions in the standard Respan filter format."},"llm_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaLlmConfig"},{"type":"null"}],"description":"LLM grader configuration. The backend validates this against the selected evaluator form."},"code_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaCodeConfig"},{"type":"null"}],"description":"Code grader configuration."},"configurations":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Legacy user-facing configuration object. New clients should prefer `llm_config`, `code_config`, `score_config`, and `passing_conditions`."},"categorical_choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems"}},"starred":{"type":"boolean"}},"required":["name"]}}}}}},"/api/evaluators/list/":{"post":{"operationId":"list-evaluators","summary":"List evaluators with filters","description":"List evaluators using POST-for-filtering. The backend returns only the current draft/latest row for each evaluator and includes filter metadata for dashboard clients.","tags":["evaluators"],"parameters":[{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","minimum":1}},{"name":"page_size","in":"query","description":"Number of results to return per page. Maximum 100.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"sort_by","in":"query","description":"Field to sort by. Prefix with `-` for descending order.","required":false,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated filtered evaluator list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Evaluators_listEvaluators_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListEvaluatorsRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListEvaluatorsRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ApiEvaluatorsListPostRequestBodyContentApplicationJsonSchemaFilters","description":"Filter criteria using the standard Respan filter format."},"is_exporting":{"type":"boolean","default":false,"description":"Reserved for dashboard exports."}}}}}}}},"/api/evaluators/{evaluator_id}/":{"get":{"operationId":"retrieve-evaluator","summary":"Retrieve an evaluator","description":"Retrieve the current draft/latest version of an evaluator by ID.","tags":["evaluators"],"parameters":[{"name":"evaluator_id","in":"path","description":"Evaluator ID. To run a specific version, pass an ID with a version suffix where supported, for example `evl_abc123:2`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Evaluator details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Evaluators_retrieveEvaluator_Response_200"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveEvaluatorRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveEvaluatorRequestNotFoundError"}}}}}},"patch":{"operationId":"update-evaluator","summary":"Update an evaluator","description":"Partially update the current draft/latest evaluator configuration. Committed read-only versions cannot be edited.","tags":["evaluators"],"parameters":[{"name":"evaluator_id","in":"path","description":"Evaluator ID. To run a specific version, pass an ID with a version suffix where supported, for example `evl_abc123:2`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated evaluator.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Evaluators_updateEvaluator_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvaluatorRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvaluatorRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvaluatorRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"evaluator_slug":{"type":"string","description":"Organization-scoped evaluator slug."},"type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaType"},"score_value_type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaScoreValueType"},"eval_class":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaEvalClass","description":"Optional pre-built evaluator template."},"description":{"type":["string","null"]},"score_config":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaScoreConfig","description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`."},"passing_conditions":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaPassingConditions"},{"type":"null"}],"description":"Passing conditions in the standard Respan filter format."},"llm_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaLlmConfig"},{"type":"null"}],"description":"LLM grader configuration. The backend validates this against the selected evaluator form."},"code_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaCodeConfig"},{"type":"null"}],"description":"Code grader configuration."},"configurations":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Legacy user-facing configuration object. New clients should prefer `llm_config`, `code_config`, `score_config`, and `passing_conditions`."},"categorical_choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems"}},"starred":{"type":"boolean"}}}}}}},"delete":{"operationId":"delete-evaluator","summary":"Delete an evaluator","description":"Delete an evaluator and all of its versions. Individual committed versions cannot be deleted separately.","tags":["evaluators"],"parameters":[{"name":"evaluator_id","in":"path","description":"Evaluator ID. To run a specific version, pass an ID with a version suffix where supported, for example `evl_abc123:2`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvaluatorRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvaluatorRequestNotFoundError"}}}}}},"put":{"operationId":"replace-evaluator","summary":"Replace an evaluator","description":"Replace the current draft/latest evaluator configuration. Committed read-only versions cannot be edited.","tags":["evaluators"],"parameters":[{"name":"evaluator_id","in":"path","description":"Evaluator ID. To run a specific version, pass an ID with a version suffix where supported, for example `evl_abc123:2`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated evaluator.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Evaluators_replaceEvaluator_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceEvaluatorRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceEvaluatorRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceEvaluatorRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"evaluator_slug":{"type":"string","description":"Organization-scoped evaluator slug."},"type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaType"},"score_value_type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaScoreValueType"},"eval_class":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaEvalClass","description":"Optional pre-built evaluator template."},"description":{"type":["string","null"]},"score_config":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaScoreConfig","description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`."},"passing_conditions":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaPassingConditions"},{"type":"null"}],"description":"Passing conditions in the standard Respan filter format."},"llm_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaLlmConfig"},{"type":"null"}],"description":"LLM grader configuration. The backend validates this against the selected evaluator form."},"code_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaCodeConfig"},{"type":"null"}],"description":"Code grader configuration."},"configurations":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Legacy user-facing configuration object. New clients should prefer `llm_config`, `code_config`, `score_config`, and `passing_conditions`."},"categorical_choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems"}},"starred":{"type":"boolean"}},"required":["name"]}}}}}},"/api/evaluators/{evaluator_id}/run/":{"post":{"operationId":"run-evaluator","summary":"Run an evaluator","description":"Run an evaluator against raw unified inputs. The evaluator ID may include a version suffix such as `evl_abc123:2` to run a specific version.","tags":["evaluators"],"parameters":[{"name":"evaluator_id","in":"path","description":"Evaluator ID. To run a specific version, pass an ID with a version suffix where supported, for example `evl_abc123:2`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Evaluation result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Evaluators_runEvaluator_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEvaluatorRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEvaluatorRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEvaluatorRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"inputs":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostRequestBodyContentApplicationJsonSchemaInputs","description":"Unified evaluator inputs."},"generation_method":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostRequestBodyContentApplicationJsonSchemaGenerationMethod","description":"Optional method override for evaluators that support multiple execution modes."},"evaluation_id":{"type":"string","description":"Legacy evaluator ID field. Prefer the path parameter or `evaluator_id`."},"evaluator_id":{"type":"string","description":"Optional evaluator ID override. Supports version suffixes such as `evl_abc123:2`."}},"required":["inputs"]}}}}}},"/api/evaluators/summary/":{"post":{"operationId":"get-filtered-evaluators-summary","summary":"Get filtered evaluators summary","description":"Return the total number of current draft/latest evaluators after applying standard filters.","tags":["evaluators"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Filtered evaluator summary.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Evaluators_getFilteredEvaluatorsSummary_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetFilteredEvaluatorsSummaryRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetFilteredEvaluatorsSummaryRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ApiEvaluatorsSummaryPostRequestBodyContentApplicationJsonSchemaFilters","description":"Filter criteria using the standard Respan filter format."}}}}}}}},"/api/evaluators/{evaluator_id}/versions/":{"get":{"operationId":"list-evaluator-versions","summary":"List evaluator versions","description":"List all versions of an evaluator, ordered newest first. Version `0` is the initial draft; committed versions are returned with `is_read_only: true`.","tags":["evaluators"],"parameters":[{"name":"evaluator_id","in":"path","description":"Evaluator ID. To run a specific version, pass an ID with a version suffix where supported, for example `evl_abc123:2`.","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","minimum":1}},{"name":"page_size","in":"query","description":"Number of results to return per page. Maximum 100.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated evaluator versions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Evaluators_listEvaluatorVersions_Response_200"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListEvaluatorVersionsRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListEvaluatorVersionsRequestNotFoundError"}}}}}},"post":{"operationId":"create-evaluator-version","summary":"Create evaluator version","description":"Commit the current draft and create the next draft version. Supplying only `version_description` commits the existing draft snapshot; supplying configuration fields commits with changes.","tags":["evaluators"],"parameters":[{"name":"evaluator_id","in":"path","description":"Evaluator ID. To run a specific version, pass an ID with a version suffix where supported, for example `evl_abc123:2`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Created evaluator version.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Evaluators_createEvaluatorVersion_Response_201"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEvaluatorVersionRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEvaluatorVersionRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEvaluatorVersionRequestNotFoundError"}}}}},"requestBody":{"description":"Create a new evaluator version. If only `version_description` is provided, the backend commits the current draft and copies its configuration.","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"evaluator_slug":{"type":"string","description":"Organization-scoped evaluator slug."},"type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaType"},"score_value_type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaScoreValueType"},"eval_class":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaEvalClass","description":"Optional pre-built evaluator template."},"description":{"type":["string","null"]},"score_config":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaScoreConfig","description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`."},"passing_conditions":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaPassingConditions"},{"type":"null"}],"description":"Passing conditions in the standard Respan filter format."},"llm_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaLlmConfig"},{"type":"null"}],"description":"LLM grader configuration. The backend validates this against the selected evaluator form."},"code_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaCodeConfig"},{"type":"null"}],"description":"Code grader configuration."},"configurations":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Legacy user-facing configuration object. New clients should prefer `llm_config`, `code_config`, `score_config`, and `passing_conditions`."},"categorical_choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems"}},"starred":{"type":"boolean"},"version_description":{"type":"string","description":"Commit message for this version."}}}}}}}},"/api/evaluators/{evaluator_id}/versions/{version}/":{"get":{"operationId":"retrieve-evaluator-version","summary":"Retrieve evaluator version","description":"Retrieve a specific evaluator version by version number.","tags":["evaluators"],"parameters":[{"name":"evaluator_id","in":"path","description":"Evaluator ID. To run a specific version, pass an ID with a version suffix where supported, for example `evl_abc123:2`.","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","description":"Evaluator version number.","required":true,"schema":{"type":"integer","minimum":0}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Evaluator version details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Evaluators_retrieveEvaluatorVersion_Response_200"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveEvaluatorVersionRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveEvaluatorVersionRequestNotFoundError"}}}}}},"put":{"operationId":"replace-evaluator-version","summary":"Replace evaluator version","description":"Replace a specific evaluator version. Only the current draft (`is_read_only: false`) can be edited.","tags":["evaluators"],"parameters":[{"name":"evaluator_id","in":"path","description":"Evaluator ID. To run a specific version, pass an ID with a version suffix where supported, for example `evl_abc123:2`.","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","description":"Evaluator version number.","required":true,"schema":{"type":"integer","minimum":0}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated evaluator version.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Evaluators_replaceEvaluatorVersion_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceEvaluatorVersionRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceEvaluatorVersionRequestUnauthorizedError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceEvaluatorVersionRequestForbiddenError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceEvaluatorVersionRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"evaluator_slug":{"type":"string","description":"Organization-scoped evaluator slug."},"type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaType"},"score_value_type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaScoreValueType"},"eval_class":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaEvalClass","description":"Optional pre-built evaluator template."},"description":{"type":["string","null"]},"score_config":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaScoreConfig","description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`."},"passing_conditions":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaPassingConditions"},{"type":"null"}],"description":"Passing conditions in the standard Respan filter format."},"llm_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaLlmConfig"},{"type":"null"}],"description":"LLM grader configuration. The backend validates this against the selected evaluator form."},"code_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaCodeConfig"},{"type":"null"}],"description":"Code grader configuration."},"configurations":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Legacy user-facing configuration object. New clients should prefer `llm_config`, `code_config`, `score_config`, and `passing_conditions`."},"categorical_choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems"}},"starred":{"type":"boolean"}},"required":["name"]}}}}},"patch":{"operationId":"update-evaluator-version","summary":"Update evaluator version","description":"Partially update a specific evaluator version. Only the current draft (`is_read_only: false`) can be edited.","tags":["evaluators"],"parameters":[{"name":"evaluator_id","in":"path","description":"Evaluator ID. To run a specific version, pass an ID with a version suffix where supported, for example `evl_abc123:2`.","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","description":"Evaluator version number.","required":true,"schema":{"type":"integer","minimum":0}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated evaluator version.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Evaluators_updateEvaluatorVersion_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvaluatorVersionRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvaluatorVersionRequestUnauthorizedError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvaluatorVersionRequestForbiddenError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvaluatorVersionRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"evaluator_slug":{"type":"string","description":"Organization-scoped evaluator slug."},"type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaType"},"score_value_type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaScoreValueType"},"eval_class":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaEvalClass","description":"Optional pre-built evaluator template."},"description":{"type":["string","null"]},"score_config":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaScoreConfig","description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`."},"passing_conditions":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaPassingConditions"},{"type":"null"}],"description":"Passing conditions in the standard Respan filter format."},"llm_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaLlmConfig"},{"type":"null"}],"description":"LLM grader configuration. The backend validates this against the selected evaluator form."},"code_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaCodeConfig"},{"type":"null"}],"description":"Code grader configuration."},"configurations":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Legacy user-facing configuration object. New clients should prefer `llm_config`, `code_config`, `score_config`, and `passing_conditions`."},"categorical_choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems"}},"starred":{"type":"boolean"}}}}}}}},"/api/scores/":{"post":{"operationId":"create-score","summary":"Create a score","description":"Create an evaluation score. Prefer the log-scoped route `POST /api/logs/{log_id}/scores/` when creating a score for a known log.","tags":["scores"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Created score.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scores_createScore_Response_201"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScoreRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScoreRequestUnauthorizedError"}}}}},"requestBody":{"description":"Use the value field matching the evaluator `score_value_type`: `numerical`/`percentage` -> `numerical_value`, `boolean` -> `boolean_value`, `single_select`/`multi_select`/`categorical` -> `categorical_value`, `text`/`comment` -> `string_value`, `json` -> `json_value`.","content":{"application/json":{"schema":{"type":"object","properties":{"evaluator_id":{"type":"string","description":"Evaluator ID. Provide either `evaluator_id` or `evaluator_slug`."},"evaluator_slug":{"type":"string","description":"Custom evaluator slug. Provide either `evaluator_id` or `evaluator_slug`."},"log_id":{"type":"string","description":"Log/span ID. Required for general score creation when not using the log-scoped route."},"timestamp":{"type":"string","format":"date-time","description":"Log timestamp. Supplying it can avoid an additional log lookup."},"environment":{"type":"string","description":"Score environment."},"prompt_id":{"type":"string"},"prompt_version_number":{"type":"integer"},"dataset_id":{"type":"string"},"automation_id":{"type":"string"},"scorer":{"type":"string","description":"Optional score producer for general score creation. Log-scoped routes derive this from the authenticated user."},"numerical_value":{"type":["number","null"],"format":"double","description":"Numeric score value. Use for `numerical` and `percentage` evaluators."},"string_value":{"type":["string","null"],"description":"Text score value. Use for `text` and legacy `comment` evaluators."},"boolean_value":{"type":["boolean","null"],"description":"Boolean score value. Use for `boolean` evaluators."},"categorical_value":{"type":["array","null"],"items":{"type":"string"},"description":"Categorical score values. Use for `single_select`, `multi_select`, and legacy `categorical` evaluators."},"json_value":{"type":["string","null"],"description":"JSON score value encoded as a string. Use for `json` evaluators."},"explanation":{"type":"string","description":"Optional explanation for the score."}}}}}}}},"/api/scores/{id}/":{"get":{"operationId":"retrieve-score","summary":"Retrieve a score","description":"Retrieve a score by score ID.","tags":["scores"],"parameters":[{"name":"id","in":"path","description":"Score ID returned as `id` in score responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Score details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scores_retrieveScore_Response_200"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveScoreRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveScoreRequestNotFoundError"}}}}}},"patch":{"operationId":"update-score","summary":"Update a score","description":"Partially update a score by score ID.","tags":["scores"],"parameters":[{"name":"id","in":"path","description":"Score ID returned as `id` in score responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated score.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scores_updateScore_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateScoreRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateScoreRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateScoreRequestNotFoundError"}}}}},"requestBody":{"description":"Update one or more score values. Use the value field matching the evaluator `score_value_type`: `numerical`/`percentage` -> `numerical_value`, `boolean` -> `boolean_value`, `single_select`/`multi_select`/`categorical` -> `categorical_value`, `text`/`comment` -> `string_value`, `json` -> `json_value`.","content":{"application/json":{"schema":{"type":"object","properties":{"numerical_value":{"type":["number","null"],"format":"double","description":"Numeric score value. Use for `numerical` and `percentage` evaluators."},"string_value":{"type":["string","null"],"description":"Text score value. Use for `text` and legacy `comment` evaluators."},"boolean_value":{"type":["boolean","null"],"description":"Boolean score value. Use for `boolean` evaluators."},"categorical_value":{"type":["array","null"],"items":{"type":"string"},"description":"Categorical score values. Use for `single_select`, `multi_select`, and legacy `categorical` evaluators."},"json_value":{"type":["string","null"],"description":"JSON score value encoded as a string. Use for `json` evaluators."}}}}}}},"delete":{"operationId":"delete-score","summary":"Delete a score","description":"Delete a score by score ID.","tags":["scores"],"parameters":[{"name":"id","in":"path","description":"Score ID returned as `id` in score responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteScoreRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteScoreRequestNotFoundError"}}}}}},"put":{"operationId":"replace-score","summary":"Replace a score","description":"Replace a score by score ID.","tags":["scores"],"parameters":[{"name":"id","in":"path","description":"Score ID returned as `id` in score responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated score.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scores_replaceScore_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceScoreRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceScoreRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceScoreRequestNotFoundError"}}}}},"requestBody":{"description":"Use the value field matching the evaluator `score_value_type`: `numerical`/`percentage` -> `numerical_value`, `boolean` -> `boolean_value`, `single_select`/`multi_select`/`categorical` -> `categorical_value`, `text`/`comment` -> `string_value`, `json` -> `json_value`.","content":{"application/json":{"schema":{"type":"object","properties":{"evaluator_id":{"type":"string","description":"Evaluator ID. Provide either `evaluator_id` or `evaluator_slug`."},"evaluator_slug":{"type":"string","description":"Custom evaluator slug. Provide either `evaluator_id` or `evaluator_slug`."},"log_id":{"type":"string","description":"Log/span ID. Required for general score creation when not using the log-scoped route."},"timestamp":{"type":"string","format":"date-time","description":"Log timestamp. Supplying it can avoid an additional log lookup."},"environment":{"type":"string","description":"Score environment."},"prompt_id":{"type":"string"},"prompt_version_number":{"type":"integer"},"dataset_id":{"type":"string"},"automation_id":{"type":"string"},"scorer":{"type":"string","description":"Optional score producer for general score creation. Log-scoped routes derive this from the authenticated user."},"numerical_value":{"type":["number","null"],"format":"double","description":"Numeric score value. Use for `numerical` and `percentage` evaluators."},"string_value":{"type":["string","null"],"description":"Text score value. Use for `text` and legacy `comment` evaluators."},"boolean_value":{"type":["boolean","null"],"description":"Boolean score value. Use for `boolean` evaluators."},"categorical_value":{"type":["array","null"],"items":{"type":"string"},"description":"Categorical score values. Use for `single_select`, `multi_select`, and legacy `categorical` evaluators."},"json_value":{"type":["string","null"],"description":"JSON score value encoded as a string. Use for `json` evaluators."},"explanation":{"type":"string","description":"Optional explanation for the score."}}}}}}}},"/api/logs/{log_id}/scores/":{"post":{"operationId":"create-span-score","summary":"Create or update a log score","description":"Create a score for a specific log/span. The backend keeps one score per `(log, evaluator, scorer)` and updates the existing score if the same combination is submitted again.","tags":["scores"],"parameters":[{"name":"log_id","in":"path","description":"Log/span unique ID to manage scores for.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated existing score for this log/evaluator/scorer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scores_createSpanScore_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpanScoreRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpanScoreRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpanScoreRequestNotFoundError"}}}}},"requestBody":{"description":"Use the value field matching the evaluator `score_value_type`: `numerical`/`percentage` -> `numerical_value`, `boolean` -> `boolean_value`, `single_select`/`multi_select`/`categorical` -> `categorical_value`, `text`/`comment` -> `string_value`, `json` -> `json_value`. The log ID comes from the path. The backend derives `scorer` from the authenticated user for this route.","content":{"application/json":{"schema":{"type":"object","properties":{"evaluator_id":{"type":"string","description":"Evaluator ID. Provide either `evaluator_id` or `evaluator_slug`."},"evaluator_slug":{"type":"string","description":"Custom evaluator slug. Provide either `evaluator_id` or `evaluator_slug`."},"timestamp":{"type":"string","format":"date-time","description":"Log timestamp. Supplying it can avoid an additional log lookup."},"environment":{"type":"string","description":"Score environment."},"prompt_id":{"type":"string"},"prompt_version_number":{"type":"integer"},"dataset_id":{"type":"string"},"automation_id":{"type":"string"},"scorer":{"type":"string","description":"Optional score producer for general score creation. Log-scoped routes derive this from the authenticated user."},"numerical_value":{"type":["number","null"],"format":"double","description":"Numeric score value. Use for `numerical` and `percentage` evaluators."},"string_value":{"type":["string","null"],"description":"Text score value. Use for `text` and legacy `comment` evaluators."},"boolean_value":{"type":["boolean","null"],"description":"Boolean score value. Use for `boolean` evaluators."},"categorical_value":{"type":["array","null"],"items":{"type":"string"},"description":"Categorical score values. Use for `single_select`, `multi_select`, and legacy `categorical` evaluators."},"json_value":{"type":["string","null"],"description":"JSON score value encoded as a string. Use for `json` evaluators."},"explanation":{"type":"string","description":"Optional explanation for the score."}}}}}}},"get":{"operationId":"list-span-scores","summary":"List log scores","description":"List all scores for a specific log/span.","tags":["scores"],"parameters":[{"name":"log_id","in":"path","description":"Log/span unique ID to manage scores for.","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","minimum":1}},{"name":"page_size","in":"query","description":"Number of results to return per page. Maximum 100.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of scores for this log/span.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scores_listSpanScores_Response_200"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSpanScoresRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSpanScoresRequestNotFoundError"}}}}}}},"/api/logs/{log_id}/scores/{score_id}/":{"get":{"operationId":"retrieve-span-score","summary":"Retrieve a log score","description":"Retrieve a specific score for a log/span.","tags":["scores"],"parameters":[{"name":"log_id","in":"path","description":"Log/span unique ID to manage scores for.","required":true,"schema":{"type":"string"}},{"name":"score_id","in":"path","description":"Score ID returned as `id` in score responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Score details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scores_retrieveSpanScore_Response_200"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveSpanScoreRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveSpanScoreRequestNotFoundError"}}}}}},"patch":{"operationId":"update-span-score","summary":"Update a log score","description":"Partially update a specific score for a log/span.","tags":["scores"],"parameters":[{"name":"log_id","in":"path","description":"Log/span unique ID to manage scores for.","required":true,"schema":{"type":"string"}},{"name":"score_id","in":"path","description":"Score ID returned as `id` in score responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated score.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scores_updateSpanScore_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSpanScoreRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSpanScoreRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSpanScoreRequestNotFoundError"}}}}},"requestBody":{"description":"Update one or more score values. Use the value field matching the evaluator `score_value_type`: `numerical`/`percentage` -> `numerical_value`, `boolean` -> `boolean_value`, `single_select`/`multi_select`/`categorical` -> `categorical_value`, `text`/`comment` -> `string_value`, `json` -> `json_value`.","content":{"application/json":{"schema":{"type":"object","properties":{"numerical_value":{"type":["number","null"],"format":"double","description":"Numeric score value. Use for `numerical` and `percentage` evaluators."},"string_value":{"type":["string","null"],"description":"Text score value. Use for `text` and legacy `comment` evaluators."},"boolean_value":{"type":["boolean","null"],"description":"Boolean score value. Use for `boolean` evaluators."},"categorical_value":{"type":["array","null"],"items":{"type":"string"},"description":"Categorical score values. Use for `single_select`, `multi_select`, and legacy `categorical` evaluators."},"json_value":{"type":["string","null"],"description":"JSON score value encoded as a string. Use for `json` evaluators."}}}}}}},"delete":{"operationId":"delete-span-score","summary":"Delete a log score","description":"Delete a score from a log/span.","tags":["scores"],"parameters":[{"name":"log_id","in":"path","description":"Log/span unique ID to manage scores for.","required":true,"schema":{"type":"string"}},{"name":"score_id","in":"path","description":"Score ID returned as `id` in score responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSpanScoreRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSpanScoreRequestNotFoundError"}}}}}},"put":{"operationId":"replace-span-score","summary":"Replace a log score","description":"Replace a specific score for a log/span.","tags":["scores"],"parameters":[{"name":"log_id","in":"path","description":"Log/span unique ID to manage scores for.","required":true,"schema":{"type":"string"}},{"name":"score_id","in":"path","description":"Score ID returned as `id` in score responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated score.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scores_replaceSpanScore_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceSpanScoreRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceSpanScoreRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceSpanScoreRequestNotFoundError"}}}}},"requestBody":{"description":"Use the value field matching the evaluator `score_value_type`: `numerical`/`percentage` -> `numerical_value`, `boolean` -> `boolean_value`, `single_select`/`multi_select`/`categorical` -> `categorical_value`, `text`/`comment` -> `string_value`, `json` -> `json_value`. The log ID comes from the path. The backend derives `scorer` from the authenticated user for this route.","content":{"application/json":{"schema":{"type":"object","properties":{"evaluator_id":{"type":"string","description":"Evaluator ID. Provide either `evaluator_id` or `evaluator_slug`."},"evaluator_slug":{"type":"string","description":"Custom evaluator slug. Provide either `evaluator_id` or `evaluator_slug`."},"timestamp":{"type":"string","format":"date-time","description":"Log timestamp. Supplying it can avoid an additional log lookup."},"environment":{"type":"string","description":"Score environment."},"prompt_id":{"type":"string"},"prompt_version_number":{"type":"integer"},"dataset_id":{"type":"string"},"automation_id":{"type":"string"},"scorer":{"type":"string","description":"Optional score producer for general score creation. Log-scoped routes derive this from the authenticated user."},"numerical_value":{"type":["number","null"],"format":"double","description":"Numeric score value. Use for `numerical` and `percentage` evaluators."},"string_value":{"type":["string","null"],"description":"Text score value. Use for `text` and legacy `comment` evaluators."},"boolean_value":{"type":["boolean","null"],"description":"Boolean score value. Use for `boolean` evaluators."},"categorical_value":{"type":["array","null"],"items":{"type":"string"},"description":"Categorical score values. Use for `single_select`, `multi_select`, and legacy `categorical` evaluators."},"json_value":{"type":["string","null"],"description":"JSON score value encoded as a string. Use for `json` evaluators."},"explanation":{"type":"string","description":"Optional explanation for the score."}}}}}}}},"/api/scores/list/":{"post":{"operationId":"filter-scores","summary":"Filter scores","description":"List scores using POST-for-filtering. This endpoint accepts filters in the request body and returns paginated score results.","tags":["scores"],"parameters":[{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","minimum":1}},{"name":"page_size","in":"query","description":"Number of results to return per page. Maximum 100.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"sort_by","in":"query","description":"Field to sort by. Prefix with `-` for descending order.","required":false,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated filtered list of scores.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scores_filterScores_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterScoresRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterScoresRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ApiScoresListPostRequestBodyContentApplicationJsonSchemaFilters","description":"Filter criteria using the standard Respan filter format."}}}}}}}},"/api/v2/experiments/":{"post":{"operationId":"create-experiment","summary":"Create an experiment","description":"Create an experiment and start asynchronous workflow execution over a dataset.","tags":["experiments"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Created experiment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Experiments_createExperiment_Response_201"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateExperimentRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateExperimentRequestUnauthorizedError"}}}},"404":{"description":"Dataset or evaluator workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateExperimentRequestNotFoundError"}}}}},"requestBody":{"description":"Create and asynchronously run an experiment. Provide exactly one scoring path: `evaluator_ids`/`evaluator_slugs` or `evaluator_workflow_ids`.","content":{"application/json":{"schema":{"type":"object","properties":{"dataset_id":{"type":"string","description":"Dataset ID to process."},"workflow":{"type":"array","items":{"$ref":"#/components/schemas/ApiV2ExperimentsPostRequestBodyContentApplicationJsonSchemaWorkflowItems"},"description":"Workflow tasks to run for each dataset row."},"evaluator_ids":{"type":"array","items":{"type":"string"},"description":"Preferred evaluator identifiers for scoring. Mutually exclusive with `evaluator_workflow_ids`."},"evaluator_slugs":{"type":"array","items":{"type":"string"},"description":"Backward-compatible alias for `evaluator_ids`. If both are provided, `evaluator_ids` takes precedence."},"evaluator_workflow_ids":{"type":"array","items":{"type":"string"},"description":"WorkflowVersion IDs configured for eval-only scoring. Mutually exclusive with evaluator IDs/slugs."},"experiment_id":{"type":"string","description":"Optional client-provided experiment ID. The backend generates one when omitted."},"name":{"type":"string","description":"Experiment name."},"description":{"type":"string","description":"Experiment description."},"span_workflow_name":{"type":"string","default":"workflow","description":"Root workflow span name."},"enable_tracing":{"type":"boolean","default":true,"description":"Whether to create trace logs."},"batch_size":{"type":"integer","default":100,"description":"Batch size for processing."},"concurrency":{"type":"integer","default":15,"description":"Number of concurrent workers."},"generation_method":{"type":"string","description":"Optional evaluation generation method override."}},"required":["dataset_id","workflow"]}}}}}},"/api/v2/experiments/list/":{"post":{"operationId":"list-experiments","summary":"Filter experiments","description":"List experiments using POST-for-filtering.","tags":["experiments"],"parameters":[{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","minimum":1}},{"name":"page_size","in":"query","description":"Number of results to return per page. Maximum 100.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"sort_by","in":"query","description":"Field to sort by. Defaults to `-created_at`.","required":false,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated filtered list of experiments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Experiments_listExperiments_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListExperimentsRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListExperimentsRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ApiV2ExperimentsListPostRequestBodyContentApplicationJsonSchemaFilters","description":"Filter criteria using the standard Respan filter format."},"is_exporting":{"type":"boolean","default":false,"description":"Reserved for dashboard exports."}}}}}}}},"/api/v2/experiments/{experiment_id}/":{"get":{"operationId":"retrieve-experiment","summary":"Retrieve an experiment","description":"Retrieve an experiment by ID, including workflow and scoring configuration.","tags":["experiments"],"parameters":[{"name":"experiment_id","in":"path","description":"Experiment ID returned as `id` in experiment responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Experiment details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Experiments_retrieveExperiment_Response_200"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveExperimentRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveExperimentRequestNotFoundError"}}}}}},"delete":{"operationId":"delete-experiment","summary":"Delete an experiment","description":"Delete an experiment by ID.","tags":["experiments"],"parameters":[{"name":"experiment_id","in":"path","description":"Experiment ID returned as `id` in experiment responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteExperimentRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteExperimentRequestNotFoundError"}}}}}},"put":{"operationId":"replace-experiment","summary":"Replace an experiment","description":"Replace editable fields for an experiment.","tags":["experiments"],"parameters":[{"name":"experiment_id","in":"path","description":"Experiment ID returned as `id` in experiment responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated experiment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Experiments_replaceExperiment_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceExperimentRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceExperimentRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceExperimentRequestNotFoundError"}}}}},"requestBody":{"description":"Update editable experiment fields. `evaluator_ids` is accepted as an alias for `evaluator_slugs`.","content":{"application/json":{"schema":{"type":"object","properties":{"dataset_id":{"type":"string","description":"Dataset ID to process."},"workflow":{"type":"array","items":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdPutRequestBodyContentApplicationJsonSchemaWorkflowItems"},"description":"Workflow tasks to run for each dataset row."},"evaluator_ids":{"type":"array","items":{"type":"string"},"description":"Preferred evaluator identifiers for scoring. Mutually exclusive with `evaluator_workflow_ids`."},"evaluator_slugs":{"type":"array","items":{"type":"string"},"description":"Backward-compatible alias for `evaluator_ids`. If both are provided, `evaluator_ids` takes precedence."},"evaluator_workflow_ids":{"type":"array","items":{"type":"string"},"description":"WorkflowVersion IDs configured for eval-only scoring. Mutually exclusive with evaluator IDs/slugs."},"experiment_id":{"type":"string","description":"Optional client-provided experiment ID. The backend generates one when omitted."},"name":{"type":"string","description":"Experiment name."},"description":{"type":"string","description":"Experiment description."},"span_workflow_name":{"type":"string","default":"workflow","description":"Root workflow span name."},"enable_tracing":{"type":"boolean","default":true,"description":"Whether to create trace logs."},"batch_size":{"type":"integer","default":100,"description":"Batch size for processing."},"concurrency":{"type":"integer","default":15,"description":"Number of concurrent workers."},"generation_method":{"type":"string","description":"Optional evaluation generation method override."}}}}}}},"patch":{"operationId":"update-experiment","summary":"Update an experiment","description":"Partially update editable fields for an experiment.","tags":["experiments"],"parameters":[{"name":"experiment_id","in":"path","description":"Experiment ID returned as `id` in experiment responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated experiment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Experiments_updateExperiment_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateExperimentRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateExperimentRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateExperimentRequestNotFoundError"}}}}},"requestBody":{"description":"Update editable experiment fields. `evaluator_ids` is accepted as an alias for `evaluator_slugs`.","content":{"application/json":{"schema":{"type":"object","properties":{"dataset_id":{"type":"string","description":"Dataset ID to process."},"workflow":{"type":"array","items":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdPatchRequestBodyContentApplicationJsonSchemaWorkflowItems"},"description":"Workflow tasks to run for each dataset row."},"evaluator_ids":{"type":"array","items":{"type":"string"},"description":"Preferred evaluator identifiers for scoring. Mutually exclusive with `evaluator_workflow_ids`."},"evaluator_slugs":{"type":"array","items":{"type":"string"},"description":"Backward-compatible alias for `evaluator_ids`. If both are provided, `evaluator_ids` takes precedence."},"evaluator_workflow_ids":{"type":"array","items":{"type":"string"},"description":"WorkflowVersion IDs configured for eval-only scoring. Mutually exclusive with evaluator IDs/slugs."},"experiment_id":{"type":"string","description":"Optional client-provided experiment ID. The backend generates one when omitted."},"name":{"type":"string","description":"Experiment name."},"description":{"type":"string","description":"Experiment description."},"span_workflow_name":{"type":"string","default":"workflow","description":"Root workflow span name."},"enable_tracing":{"type":"boolean","default":true,"description":"Whether to create trace logs."},"batch_size":{"type":"integer","default":100,"description":"Batch size for processing."},"concurrency":{"type":"integer","default":15,"description":"Number of concurrent workers."},"generation_method":{"type":"string","description":"Optional evaluation generation method override."}}}}}}}},"/api/v2/experiments/{experiment_id}/logs/list/":{"post":{"operationId":"list-experiment-spans","summary":"Filter experiment traces","description":"List experiment traces using POST-for-filtering. Supports status, cost, comparison key, timestamp, metadata, and score filters.","tags":["experiments"],"parameters":[{"name":"experiment_id","in":"path","description":"Experiment ID returned as `id` in experiment responses.","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","minimum":1}},{"name":"page_size","in":"query","description":"Number of results to return per page. Maximum 100.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"sort_by","in":"query","description":"Field to sort by. Prefix with `-` for descending order.","required":false,"schema":{"type":"string"}},{"name":"start_time","in":"query","description":"Filter results at or after this timestamp.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"Filter results before this timestamp.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"detail","in":"query","description":"Set to `1` or `true` to include span tree details in list responses.","required":false,"schema":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdLogsListPostParametersDetail"}},{"name":"preview_length","in":"query","description":"Truncate `input`, `expected_output`, and `output` to this many characters. Omitted, non-positive, or unparseable values return full text; ignored when `detail` is set.","required":false,"schema":{"type":"integer","maximum":100000}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated filtered list of experiment traces.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Experiments_listExperimentSpans_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListExperimentSpansRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListExperimentSpansRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListExperimentSpansRequestNotFoundError"}}}},"413":{"description":"The query exceeded a memory or execution-time resource limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListExperimentSpansRequestContentTooLargeError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdLogsListPostRequestBodyContentApplicationJsonSchemaFilters","description":"Filter criteria using the standard Respan filter format."},"is_exporting":{"type":"boolean","default":false,"description":"Reserved for dashboard exports."}}}}}}}},"/api/v2/experiments/{experiment_id}/logs/{log_id}/":{"get":{"operationId":"retrieve-experiment-span","summary":"Retrieve an experiment trace","description":"Retrieve one experiment trace with its full span tree and enriched evaluator scores.","tags":["experiments"],"parameters":[{"name":"experiment_id","in":"path","description":"Experiment ID returned as `id` in experiment responses.","required":true,"schema":{"type":"string"}},{"name":"log_id","in":"path","description":"Trace ID returned as `id` in experiment trace list responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Experiment trace details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Experiments_retrieveExperimentSpan_Response_200"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveExperimentSpanRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveExperimentSpanRequestNotFoundError"}}}},"413":{"description":"The query exceeded a memory or execution-time resource limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveExperimentSpanRequestContentTooLargeError"}}}}}},"patch":{"operationId":"update-experiment-span","summary":"Resume a wait workflow trace","description":"Submit results for a paused `wait` workflow trace. The backend resumes the workflow and then runs the configured evaluators.","tags":["experiments"],"parameters":[{"name":"experiment_id","in":"path","description":"Experiment ID returned as `id` in experiment responses.","required":true,"schema":{"type":"string"}},{"name":"log_id","in":"path","description":"Trace ID returned as `id` in experiment trace list responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Trace resumed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Experiments_updateExperimentSpan_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateExperimentSpanRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateExperimentSpanRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateExperimentSpanRequestNotFoundError"}}}}},"requestBody":{"description":"Submit results for a paused `wait` workflow trace. `input` and `output` may be any JSON-serializable value.","content":{"application/json":{"schema":{"type":"object","properties":{"input":{"description":"Input data for the workflow."},"output":{"description":"Output data from the workflow."},"metrics":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Numeric metrics such as cost, latency, and token counts."},"metadata":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Additional metadata to attach to the trace."}},"required":["input","output"]}}}}}},"/api/v2/experiments/summary/":{"post":{"operationId":"filter-experiments-summary","summary":"Filter experiments summary","description":"Return the number of experiments matching a POST filter payload.","tags":["experiments"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Experiment summary.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Experiments_filterExperimentsSummary_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterExperimentsSummaryRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterExperimentsSummaryRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ApiV2ExperimentsSummaryPostRequestBodyContentApplicationJsonSchemaFilters","description":"Filter criteria using the standard Respan filter format."},"is_exporting":{"type":"boolean","default":false,"description":"Reserved for dashboard exports."}}}}}}}},"/api/v2/experiments/{experiment_id}/logs/summary/":{"post":{"operationId":"filter-experiment-spans-summary","summary":"Filter experiment trace summary","description":"Get aggregate workflow metrics and evaluator score summaries for traces matching a POST filter payload.","tags":["experiments"],"parameters":[{"name":"experiment_id","in":"path","description":"Experiment ID returned as `id` in experiment responses.","required":true,"schema":{"type":"string"}},{"name":"start_time","in":"query","description":"Filter results at or after this timestamp.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"Filter results before this timestamp.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Experiment trace summary.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Experiments_filterExperimentSpansSummary_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterExperimentSpansSummaryRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterExperimentSpansSummaryRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterExperimentSpansSummaryRequestNotFoundError"}}}},"413":{"description":"The query exceeded a memory or execution-time resource limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterExperimentSpansSummaryRequestContentTooLargeError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdLogsSummaryPostRequestBodyContentApplicationJsonSchemaFilters","description":"Filter criteria using the standard Respan filter format."},"is_exporting":{"type":"boolean","default":false,"description":"Reserved for dashboard exports."}}}}}}}},"/api/v2/experiments/{experiment_id}/histogram/":{"post":{"operationId":"filter-experiment-score-histogram","summary":"Get experiment score histogram with filters","description":"Compute histogram aggregation for experiment evaluation scores. The backend reads `evaluator_id` and `bins` from query parameters; it does not consume a request body.","tags":["experiments"],"parameters":[{"name":"experiment_id","in":"path","description":"Experiment ID returned as `id` in experiment responses.","required":true,"schema":{"type":"string"}},{"name":"evaluator_id","in":"query","description":"Evaluator ID, optionally including a grader suffix such as `eval_123:grader_name`.","required":true,"schema":{"type":"string"}},{"name":"bins","in":"query","description":"Number of histogram bins for numerical scores. Maximum 50.","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Experiment score histogram.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Experiments_filterExperimentScoreHistogram_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterExperimentScoreHistogramRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterExperimentScoreHistogramRequestUnauthorizedError"}}}},"404":{"description":"Evaluator or experiment not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterExperimentScoreHistogramRequestNotFoundError"}}}}}}},"/api/models/summary/":{"post":{"operationId":"filter-models-summary","summary":"Filter models summary","description":"Return model counts after applying an optional POST filter. Authentication is optional: anonymous counts cover managed global models, while authenticated counts also include the caller's custom models.","tags":["models"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Models summary.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Models_filterModelsSummary_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterModelsSummaryRequestBadRequestError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ApiModelsSummaryPostRequestBodyContentApplicationJsonSchemaFilters","description":"Filter criteria using the standard Respan filter format."}}}}}}}},"/api/models/list/":{"post":{"operationId":"filter-models","summary":"Filter models","description":"List models using POST-for-filtering. Authentication is optional: anonymous callers receive managed global models, while API-key and dashboard callers also receive their organization's custom models. Anonymous requests are rate-limited per client IP.","tags":["models"],"parameters":[{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","minimum":1}},{"name":"page_size","in":"query","description":"Number of results to return per page. Maximum 100.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"sort_by","in":"query","description":"Field to sort by. Prefix with `-` for descending order.","required":false,"schema":{"type":"string","default":"model_name"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated filtered list of models.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Models_filterModels_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterModelsRequestBadRequestError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ApiModelsListPostRequestBodyContentApplicationJsonSchemaFilters","description":"Filter criteria using the standard Respan filter format."},"is_exporting":{"type":"boolean","default":false,"description":"Reserved for dashboard exports."}}}}}}}},"/api/models/public/":{"get":{"operationId":"list-models","summary":"List public model catalog","description":"List built-in public models and provider metadata. This endpoint does not require authentication. By default the response is `{ \"models\": [...] }`; pass `unnest=true` to return the array directly.","tags":["models"],"parameters":[{"name":"unnest","in":"query","description":"If `true`, return the public model catalog as an array instead of `{ \"models\": [...] }`.","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Public model catalog.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Models_listModels_Response_200"}}}}}}},"/api/models/":{"post":{"operationId":"create-custom-model","summary":"Create or update a custom model","description":"Create an organization-specific custom model. If a model with the same `model_name` already exists in your organization, it is updated and the endpoint returns `200`.","tags":["models"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated existing model.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Models_createCustomModel_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomModelRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomModelRequestUnauthorizedError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomModelRequestForbiddenError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomModelRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"model_name":{"type":"string","description":"Unique model name within your organization."},"base_model_name":{"type":"string","description":"Base model to inherit properties from."},"display_name":{"type":"string","description":"Human-readable display name."},"custom_provider_id":{"type":"string","description":"Custom provider string ID or provider identifier to associate."},"provider_id":{"type":"string","description":"Alternative to `custom_provider_id`."},"input_cost":{"type":"number","format":"double","description":"Cost per 1M input tokens in USD."},"output_cost":{"type":"number","format":"double","description":"Cost per 1M output tokens in USD."},"cache_hit_input_cost":{"type":"number","format":"double","description":"Cost per 1M cached input tokens in USD."},"cache_creation_input_cost":{"type":"number","format":"double","description":"Cost per 1M cache creation input tokens in USD."},"max_context_window":{"type":"integer","description":"Maximum context window size."},"streaming_support":{"$ref":"#/components/schemas/ApiModelsPostRequestBodyContentApplicationJsonSchemaStreamingSupport"},"function_call":{"$ref":"#/components/schemas/ApiModelsPostRequestBodyContentApplicationJsonSchemaFunctionCall"},"image_support":{"$ref":"#/components/schemas/ApiModelsPostRequestBodyContentApplicationJsonSchemaImageSupport"},"supported_params_override":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Partial override for model parameter support. The response returns computed `supported_params`."}},"required":["model_name"]}}}}}},"/api/models/{model_name}/":{"get":{"operationId":"retrieve-custom-model","summary":"Retrieve a model","description":"Retrieve a built-in or custom model by model name. Custom models are only visible to the owning organization.","tags":["models"],"parameters":[{"name":"model_name","in":"path","description":"Model name. The route supports names containing slashes, such as `openai/gpt-4o-mini`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Model details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Models_retrieveCustomModel_Response_200"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveCustomModelRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveCustomModelRequestNotFoundError"}}}}}},"patch":{"operationId":"update-custom-model","summary":"Update a custom model","description":"Partially update editable fields for a custom model. The `model_name` field is read-only.","tags":["models"],"parameters":[{"name":"model_name","in":"path","description":"Model name. The route supports names containing slashes, such as `openai/gpt-4o-mini`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated model.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Models_updateCustomModel_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomModelRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomModelRequestUnauthorizedError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomModelRequestForbiddenError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomModelRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"base_model_name":{"type":"string","description":"Base model to inherit properties from."},"display_name":{"type":"string","description":"Human-readable display name."},"custom_provider_id":{"type":"string","description":"Custom provider string ID or provider identifier to associate."},"provider_id":{"type":"string","description":"Alternative to `custom_provider_id`."},"input_cost":{"type":"number","format":"double","description":"Cost per 1M input tokens in USD."},"output_cost":{"type":"number","format":"double","description":"Cost per 1M output tokens in USD."},"cache_hit_input_cost":{"type":"number","format":"double","description":"Cost per 1M cached input tokens in USD."},"cache_creation_input_cost":{"type":"number","format":"double","description":"Cost per 1M cache creation input tokens in USD."},"max_context_window":{"type":"integer","description":"Maximum context window size."},"streaming_support":{"$ref":"#/components/schemas/ApiModelsModelNamePatchRequestBodyContentApplicationJsonSchemaStreamingSupport"},"function_call":{"$ref":"#/components/schemas/ApiModelsModelNamePatchRequestBodyContentApplicationJsonSchemaFunctionCall"},"image_support":{"$ref":"#/components/schemas/ApiModelsModelNamePatchRequestBodyContentApplicationJsonSchemaImageSupport"},"supported_params_override":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Partial override for model parameter support. The response returns computed `supported_params`."}}}}}}},"delete":{"operationId":"delete-custom-model","summary":"Delete a custom model","description":"Delete a custom model by model name.","tags":["models"],"parameters":[{"name":"model_name","in":"path","description":"Model name. The route supports names containing slashes, such as `openai/gpt-4o-mini`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteCustomModelRequestUnauthorizedError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteCustomModelRequestForbiddenError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteCustomModelRequestNotFoundError"}}}}}},"put":{"operationId":"replace-custom-model","summary":"Replace a custom model","description":"Replace editable fields for a custom model. The `model_name` path value remains the identifier.","tags":["models"],"parameters":[{"name":"model_name","in":"path","description":"Model name. The route supports names containing slashes, such as `openai/gpt-4o-mini`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated model.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Models_replaceCustomModel_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceCustomModelRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceCustomModelRequestUnauthorizedError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceCustomModelRequestForbiddenError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceCustomModelRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"base_model_name":{"type":"string","description":"Base model to inherit properties from."},"display_name":{"type":"string","description":"Human-readable display name."},"custom_provider_id":{"type":"string","description":"Custom provider string ID or provider identifier to associate."},"provider_id":{"type":"string","description":"Alternative to `custom_provider_id`."},"input_cost":{"type":"number","format":"double","description":"Cost per 1M input tokens in USD."},"output_cost":{"type":"number","format":"double","description":"Cost per 1M output tokens in USD."},"cache_hit_input_cost":{"type":"number","format":"double","description":"Cost per 1M cached input tokens in USD."},"cache_creation_input_cost":{"type":"number","format":"double","description":"Cost per 1M cache creation input tokens in USD."},"max_context_window":{"type":"integer","description":"Maximum context window size."},"streaming_support":{"$ref":"#/components/schemas/ApiModelsModelNamePutRequestBodyContentApplicationJsonSchemaStreamingSupport"},"function_call":{"$ref":"#/components/schemas/ApiModelsModelNamePutRequestBodyContentApplicationJsonSchemaFunctionCall"},"image_support":{"$ref":"#/components/schemas/ApiModelsModelNamePutRequestBodyContentApplicationJsonSchemaImageSupport"},"supported_params_override":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Partial override for model parameter support. The response returns computed `supported_params`."}}}}}}}},"/api/providers/":{"get":{"operationId":"list-custom-providers","summary":"List custom providers","description":"List custom providers for the authenticated organization.","tags":["models"],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated custom providers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Models_listCustomProviders_Response_200"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCustomProvidersRequestUnauthorizedError"}}}}}},"post":{"operationId":"create-custom-provider","summary":"Create a custom provider","description":"Create a custom provider. Use `PATCH /api/providers/{provider_id}/` to update an existing provider.","tags":["models"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Created provider.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Models_createCustomProvider_Response_201"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomProviderRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomProviderRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"provider_id":{"type":"string","description":"Unique provider identifier within your organization."},"provider_name":{"type":"string","description":"Human-readable provider name."},"extra_kwargs":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Provider configuration. Put provider credentials under extra_kwargs.api_key."}},"required":["provider_id","provider_name"]}}}}}},"/api/providers/{provider_id}/":{"get":{"operationId":"retrieve-custom-provider","summary":"Retrieve a custom provider","description":"Retrieve a custom provider by its string provider ID. The current backend returns `extra_kwargs`, including any credentials stored in that object; handle this response as sensitive.","tags":["models"],"parameters":[{"name":"provider_id","in":"path","description":"Custom provider string ID returned as `id` and `provider_id` in provider responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Provider details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Models_retrieveCustomProvider_Response_200"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveCustomProviderRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveCustomProviderRequestNotFoundError"}}}}}},"patch":{"operationId":"update-custom-provider","summary":"Update a custom provider","description":"Partially update editable fields for a custom provider. The `provider_id` field is read-only.","tags":["models"],"parameters":[{"name":"provider_id","in":"path","description":"Custom provider string ID returned as `id` and `provider_id` in provider responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated provider.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Models_updateCustomProvider_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomProviderRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomProviderRequestUnauthorizedError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomProviderRequestForbiddenError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomProviderRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"provider_name":{"type":"string","description":"Human-readable provider name."},"extra_kwargs":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Provider configuration. Put provider credentials under extra_kwargs.api_key."}}}}}}},"delete":{"operationId":"delete-custom-provider","summary":"Delete a custom provider","description":"Delete a custom provider by string provider ID.","tags":["models"],"parameters":[{"name":"provider_id","in":"path","description":"Custom provider string ID returned as `id` and `provider_id` in provider responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteCustomProviderRequestUnauthorizedError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteCustomProviderRequestForbiddenError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteCustomProviderRequestNotFoundError"}}}}}},"put":{"operationId":"replace-custom-provider","summary":"Replace a custom provider","description":"Replace editable fields for a custom provider. The `provider_id` path value remains the identifier.","tags":["models"],"parameters":[{"name":"provider_id","in":"path","description":"Custom provider string ID returned as `id` and `provider_id` in provider responses.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated provider.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Models_replaceCustomProvider_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceCustomProviderRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceCustomProviderRequestUnauthorizedError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceCustomProviderRequestForbiddenError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceCustomProviderRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"provider_name":{"type":"string","description":"Human-readable provider name."},"extra_kwargs":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Provider configuration. Put provider credentials under extra_kwargs.api_key."}}}}}}}},"/api/models/{model_name}/status/":{"get":{"operationId":"api-models-status-retrieve","summary":"Get model status","description":"Get public uptime and normalized performance metrics for an exact logged model string. Authentication is optional. Public callers receive redacted volume fields.","tags":["models"],"parameters":[{"name":"model_name","in":"path","description":"Exact logged model string; provider-prefixed values may contain a slash.","required":true,"schema":{"type":"string"}},{"name":"provider_id","in":"query","required":false,"schema":{"type":"string","minLength":1}},{"name":"start_time","in":"query","required":true,"schema":{"type":"string"}},{"name":"end_time","in":"query","required":true,"schema":{"type":"string"}},{"name":"time_tick","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ApiModelsModelNameStatusGetParametersTimeTick"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Model status series. Unknown model names return empty series rather than 404.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelStatusResponse"}}}},"400":{"description":"Invalid timestamps, range, provider, or time tick.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"429":{"description":"Anonymous callers are limited to 30 requests per minute per IP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}}},"post":{"operationId":"api-models-status-create","summary":"Filter model status","description":"POST-for-filtering model status. Manually supplied query parameters override the same body values.","tags":["models"],"parameters":[{"name":"model_name","in":"path","description":"Exact logged model string; provider-prefixed values may contain a slash.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Model status series. Unknown model names return empty series rather than 404.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelStatusResponse"}}}},"400":{"description":"Invalid timestamps, range, provider, or time tick.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"429":{"description":"Anonymous callers are limited to 30 requests per minute per IP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"provider_id":{"type":["string","null"],"minLength":1},"start_time":{"type":"string","description":"ISO-8601 or epoch timestamp. Raw window max 90 days."},"end_time":{"type":"string","description":"Timestamp after start_time."},"time_tick":{"$ref":"#/components/schemas/ApiModelsModelNameStatusPostRequestBodyContentApplicationJsonSchemaTimeTick"}},"required":["start_time","end_time"]}}}}}},"/api/files/":{"post":{"operationId":"upload-file","summary":"Upload a file","description":"Upload a file to the upstream OpenAI Files API. Batch jobs use JSONL files with `purpose=batch`.","tags":["openAiBatch"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Uploaded file.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenAI Batch_uploadFile_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadFileRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadFileRequestUnauthorizedError"}}}}},"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"File to upload."},"purpose":{"type":"string","description":"File purpose."},"provider_id":{"type":"string","description":"Provider route with customer-owned credentials, for example `openai` or `parasail`."}},"required":["file","purpose","provider_id"]}}}}},"get":{"operationId":"list-files","summary":"List files","description":"List files from the upstream OpenAI Files API using the authenticated organization key's OpenAI credentials.","tags":["openAiBatch"],"parameters":[{"name":"provider_id","in":"query","description":"Provider route with customer-owned credentials, for example `openai` or `parasail`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List of files.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenAI Batch_listFiles_Response_200"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListFilesRequestUnauthorizedError"}}}}}}},"/api/files/{file_id}/":{"get":{"operationId":"retrieve-file","summary":"Retrieve a file","description":"Retrieve metadata for a file from the upstream OpenAI Files API.","tags":["openAiBatch"],"parameters":[{"name":"file_id","in":"path","description":"OpenAI file ID.","required":true,"schema":{"type":"string"}},{"name":"provider_id","in":"query","description":"Provider route with customer-owned credentials, for example `openai` or `parasail`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"File details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenAI Batch_retrieveFile_Response_200"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveFileRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveFileRequestNotFoundError"}}}}}},"delete":{"operationId":"delete-file","summary":"Delete a file","description":"Delete a file from the upstream OpenAI Files API.","tags":["openAiBatch"],"parameters":[{"name":"file_id","in":"path","description":"OpenAI file ID.","required":true,"schema":{"type":"string"}},{"name":"provider_id","in":"query","description":"Provider route with customer-owned credentials, for example `openai` or `parasail`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Deleted file.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenAI Batch_deleteFile_Response_200"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteFileRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteFileRequestNotFoundError"}}}}}}},"/api/files/{file_id}/content/":{"get":{"operationId":"retrieve-file-content","summary":"Retrieve file content","description":"Download file content. Batch output files are returned as JSONL.","tags":["openAiBatch"],"parameters":[{"name":"file_id","in":"path","description":"OpenAI file ID.","required":true,"schema":{"type":"string"}},{"name":"provider_id","in":"query","description":"Provider route with customer-owned credentials, for example `openai` or `parasail`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"File content.","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveFileContentRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveFileContentRequestNotFoundError"}}}}}}},"/api/v1/batches":{"post":{"operationId":"create-batch","summary":"Create a batch","description":"Create an OpenAI-compatible batch processing job from an uploaded JSONL file. `provider_id` is required and selects the customer-owned provider credential used for the batch.","tags":["openAiBatch"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}},{"name":"X-Data-Respan-Params","in":"header","description":"Base64-encoded JSON object of Respan request parameters. Legacy `X-Data-Keywordsai-Params` is still accepted.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Created batch.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenAI Batch_createBatch_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBatchRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBatchRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"input_file_id":{"type":"string","description":"Uploaded JSONL file ID."},"endpoint":{"$ref":"#/components/schemas/ApiV1BatchesPostRequestBodyContentApplicationJsonSchemaEndpoint","description":"Endpoint each JSONL request targets."},"completion_window":{"$ref":"#/components/schemas/ApiV1BatchesPostRequestBodyContentApplicationJsonSchemaCompletionWindow"},"metadata":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Custom metadata for tracking."},"customer_identifier":{"type":"string","description":"End-user identifier for logging."},"custom_identifier":{"type":"string","description":"Custom identifier for querying."},"thread_identifier":{"type":"string","description":"Conversation thread identifier."},"environment":{"type":"string","description":"Environment tag."},"provider_id":{"type":"string","description":"Provider route with customer-owned credentials."}},"required":["input_file_id","endpoint","completion_window","provider_id"]}}}}},"get":{"operationId":"api-v-1-batches-retrieve","summary":"List batches","description":"List batches from the selected provider using customer-owned credentials. The response is relayed in the provider's OpenAI-compatible shape.","tags":["openAiBatch"],"parameters":[{"name":"provider_id","in":"query","description":"Provider route, for example `openai` or `parasail`.","required":true,"schema":{"type":"string"}},{"name":"after","in":"query","description":"Provider pagination cursor.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum batches requested from the provider.","required":false,"schema":{"type":"integer","minimum":1}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OpenAI-compatible batch list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenAI Batch_api_v1_batches_retrieve_Response_200"}}}},"400":{"description":"Provider route is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Api_v1_batches_retrieveRequestBadRequestError"}}}},"401":{"description":"Authentication or customer-owned provider credential failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Api_v1_batches_retrieveRequestUnauthorizedError"}}}},"424":{"description":"The upstream provider failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Api_v1_batches_retrieveRequestFailedDependencyError"}}}}}}},"/api/v1/batches/{batch_id}":{"get":{"operationId":"retrieve-batch","summary":"Retrieve a batch","description":"Retrieve an OpenAI-compatible batch job by ID.","tags":["openAiBatch"],"parameters":[{"name":"batch_id","in":"path","description":"Batch ID.","required":true,"schema":{"type":"string"}},{"name":"provider_id","in":"query","description":"Provider route with customer-owned credentials, for example `openai` or `parasail`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}},{"name":"X-Data-Respan-Params","in":"header","description":"Base64-encoded JSON object of Respan request parameters. Legacy `X-Data-Keywordsai-Params` is still accepted.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Batch details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenAI Batch_retrieveBatch_Response_200"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveBatchRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveBatchRequestNotFoundError"}}}}}}},"/api/v1/batches/{batch_id}/cancel":{"post":{"operationId":"cancel-batch","summary":"Cancel a batch","description":"Cancel an in-progress OpenAI-compatible batch. Already completed requests are not affected.","tags":["openAiBatch"],"parameters":[{"name":"batch_id","in":"path","description":"Batch ID.","required":true,"schema":{"type":"string"}},{"name":"provider_id","in":"query","description":"Provider route with customer-owned credentials, for example `openai` or `parasail`.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}},{"name":"X-Data-Respan-Params","in":"header","description":"Base64-encoded JSON object of Respan request parameters. Legacy `X-Data-Keywordsai-Params` is still accepted.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Batch cancellation initiated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenAI Batch_cancelBatch_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelBatchRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelBatchRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelBatchRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}}}},"/api/embeddings":{"post":{"operationId":"create-embeddings","summary":"Create embeddings","description":"Create embeddings through the Respan gateway with automatic logging.","tags":["multimodal"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}},{"name":"X-Data-Respan-Params","in":"header","description":"Base64-encoded JSON object of Respan parameters. Legacy `X-Data-Keywordsai-Params` is still accepted.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Embedding results.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Multimodal_createEmbeddings_Response_200"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmbeddingsRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"$ref":"#/components/schemas/ApiEmbeddingsPostRequestBodyContentApplicationJsonSchemaModel","description":"Embedding model ID."},"input":{"description":"Text to embed. String or array of strings."},"encoding_format":{"$ref":"#/components/schemas/ApiEmbeddingsPostRequestBodyContentApplicationJsonSchemaEncodingFormat","description":"Output format."},"dimensions":{"type":"integer","description":"Output embedding dimensions. Only supported by `text-embedding-3-*` models."},"customer_credentials":{"$ref":"#/components/schemas/ApiEmbeddingsPostRequestBodyContentApplicationJsonSchemaCustomerCredentials","description":"Per-customer LLM provider credentials."},"disable_log":{"type":"boolean","default":false,"description":"When `true`, omits input/output from the log. Metrics still recorded."},"metadata":{"$ref":"#/components/schemas/ApiEmbeddingsPostRequestBodyContentApplicationJsonSchemaMetadata","description":"Custom key-value metadata."},"customer_identifier":{"type":"string","description":"End user identifier."},"thread_identifier":{"type":"string","description":"Conversation thread ID."}},"required":["model","input"]}}}}}},"/api/audio/transcriptions":{"post":{"operationId":"speech-to-text","summary":"Speech to text","description":"Transcribe audio to text through the Respan gateway with automatic logging.","tags":["multimodal"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}},{"name":"X-Data-Respan-Params","in":"header","description":"Base64-encoded JSON object of Respan parameters. Legacy `X-Data-Keywordsai-Params` is still accepted.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Transcription result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Multimodal_speechToText_Response_200"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeechToTextRequestUnauthorizedError"}}}}},"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"Audio file. Supported: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, webm."},"model":{"$ref":"#/components/schemas/ApiAudioTranscriptionsPostRequestBodyContentMultipartFormDataSchemaModel","description":"Model ID."},"language":{"type":"string","description":"Input audio language (ISO-639-1)."},"prompt":{"type":"string","description":"Optional text to guide the model's style."},"response_format":{"$ref":"#/components/schemas/ApiAudioTranscriptionsPostRequestBodyContentMultipartFormDataSchemaResponseFormat","description":"Output format."},"temperature":{"type":"number","format":"double","description":"Sampling temperature (0-1)."},"timestamp_granularities":{"type":"array","items":{"$ref":"#/components/schemas/ApiAudioTranscriptionsPostRequestBodyContentMultipartFormDataSchemaTimestampGranularitiesItems"},"description":"Timestamp granularities. Requires `verbose_json` response format."},"customer_credentials":{"$ref":"#/components/schemas/ApiAudioTranscriptionsPostRequestBodyContentMultipartFormDataSchemaCustomerCredentials","description":"Per-customer LLM provider credentials."},"disable_log":{"type":"boolean","default":false,"description":"When `true`, omits input/output from the log. Metrics still recorded."},"metadata":{"$ref":"#/components/schemas/ApiAudioTranscriptionsPostRequestBodyContentMultipartFormDataSchemaMetadata","description":"Custom key-value metadata."},"customer_identifier":{"type":"string","description":"End user identifier."},"thread_identifier":{"type":"string","description":"Conversation thread ID."}},"required":["file","model"]}}}}}},"/api/audio/speech":{"post":{"operationId":"text-to-speech","summary":"Text to speech","description":"Convert text to speech through the Respan gateway with automatic logging.","tags":["multimodal"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}},{"name":"X-Data-Respan-Params","in":"header","description":"Base64-encoded JSON object of Respan parameters. Legacy `X-Data-Keywordsai-Params` is still accepted.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Audio content in the requested format.","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TextToSpeechRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"$ref":"#/components/schemas/ApiAudioSpeechPostRequestBodyContentApplicationJsonSchemaModel","description":"TTS model."},"input":{"type":"string","description":"Text to generate audio for. Max 4096 characters."},"voice":{"$ref":"#/components/schemas/ApiAudioSpeechPostRequestBodyContentApplicationJsonSchemaVoice","description":"Voice to use."},"response_format":{"$ref":"#/components/schemas/ApiAudioSpeechPostRequestBodyContentApplicationJsonSchemaResponseFormat","description":"Audio output format."},"speed":{"type":"number","format":"double","default":1,"description":"Audio speed (0.25 to 4.0)."},"customer_credentials":{"$ref":"#/components/schemas/ApiAudioSpeechPostRequestBodyContentApplicationJsonSchemaCustomerCredentials","description":"Per-customer LLM provider credentials."},"disable_log":{"type":"boolean","default":false,"description":"When `true`, omits input/output from the log. Metrics still recorded."},"metadata":{"$ref":"#/components/schemas/ApiAudioSpeechPostRequestBodyContentApplicationJsonSchemaMetadata","description":"Custom key-value metadata."},"customer_identifier":{"type":"string","description":"End user identifier."},"thread_identifier":{"type":"string","description":"Conversation thread ID."}},"required":["model","input","voice"]}}}}}},"/api/assemblyai/v2/transcript/{transcript_id}":{"get":{"operationId":"retrieve-assemblyai-transcript","summary":"Retrieve AssemblyAI transcript","description":"Retrieve an AssemblyAI transcript by ID. Proxied through Respan for logging.","tags":["multimodal"],"parameters":[{"name":"transcript_id","in":"path","description":"The AssemblyAI transcript ID to retrieve.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Raw Respan API key for native AssemblyAI SDK compatibility. Do not prepend `Bearer` for this operation.","required":true,"schema":{"type":"string"}},{"name":"X-Assemblyai-Api-Key","in":"header","description":"Your AssemblyAI API key for authentication with AssemblyAI services.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Transcript details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Multimodal_retrieveAssemblyaiTranscript_Response_200"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveAssemblyaiTranscriptRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveAssemblyaiTranscriptRequestNotFoundError"}}}}}}},"/api/assemblyai/v2/transcript":{"post":{"operationId":"api-assemblyai-v-2-transcript-create","summary":"Create an AssemblyAI transcript","description":"Create an AssemblyAI transcript through Respan. Authorization contains the bare Respan API key for native AssemblyAI SDK compatibility; X-Assemblyai-Api-Key contains the AssemblyAI provider key.","tags":["multimodal"],"parameters":[{"name":"Authorization","in":"header","description":"Raw Respan API key for native AssemblyAI SDK compatibility. Do not prepend `Bearer` for this operation.","required":true,"schema":{"type":"string"}},{"name":"X-Assemblyai-Api-Key","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Transcript job created.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"400":{"description":"Invalid request or missing AssemblyAI key.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"401":{"description":"Invalid Respan API key.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"402":{"description":"Insufficient credits.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"424":{"description":"AssemblyAI failed.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"audio_url":{"type":"string","format":"uri"}},"required":["audio_url"]}}}}}},"/api/temporary-keys/":{"post":{"operationId":"create-api-key","summary":"Create an API key","description":"Create a new API key.","tags":["temporaryApiKeys"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Created API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Temporary API Keys_createApiKey_Response_201"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Key name."},"expiry_date":{"type":"string","format":"date-time","description":"Expiry date (ISO 8601)."},"max_usage":{"type":"integer","default":-1,"description":"Max usage count. -1 = unlimited."},"rate_limit":{"type":"integer","description":"Calls per minute. Overridden by plan limit."},"spending_limit":{"type":"number","format":"double","description":"Spending limit in USD for gateway usage."},"is_test":{"type":"boolean","default":false,"description":"Test key (`true`) or production key (`false`)."},"limit_policies":{"type":"array","items":{"$ref":"#/components/schemas/APIKeyLimitPolicySpec"},"description":"Optional. Spending, token, or request caps to create and scope to this key in the same call. The response echoes the created policies in full (each with its `id`, `meter_definition_id`, and `current_state`). Caps are stored and visible as soon as they are created, but the gateway enforces them only where the limit system is enabled for your environment. Where it is not enabled, a cap records no usage and never blocks."}}}}}}},"get":{"operationId":"list-api-keys","summary":"List API keys","description":"List all API keys for your organization.","tags":["temporaryApiKeys"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated API keys.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Temporary API Keys_listApiKeys_Response_200"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListApiKeysRequestUnauthorizedError"}}}}}}},"/api/temporary-keys/{id}/":{"get":{"operationId":"retrieve-api-key","summary":"Retrieve an API key","description":"Retrieve an API key by ID.","tags":["temporaryApiKeys"],"parameters":[{"name":"id","in":"path","description":"The ID of the temporary API key to retrieve.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"API key details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Temporary API Keys_retrieveApiKey_Response_200"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveApiKeyRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveApiKeyRequestNotFoundError"}}}}}},"patch":{"operationId":"update-api-key","summary":"Update an API key","description":"Update an API key's name, expiry, usage, rate, or spending limit.","tags":["temporaryApiKeys"],"parameters":[{"name":"id","in":"path","description":"The ID of the temporary API key to update.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Temporary API Keys_updateApiKey_Response_200"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApiKeyRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApiKeyRequestNotFoundError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Key name."},"expiry_date":{"type":"string","format":"date-time","description":"Expiry date (ISO 8601)."},"max_usage":{"type":"integer","description":"Maximum use count. -1 means unlimited."},"rate_limit":{"type":["number","null"],"format":"double"},"spending_limit":{"type":["number","null"],"format":"double"}}}}}}},"delete":{"operationId":"delete-api-key","summary":"Delete an API key","description":"Delete an API key. This action is irreversible.","tags":["temporaryApiKeys"],"parameters":[{"name":"id","in":"path","description":"The ID of the temporary API key to delete.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteApiKeyRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteApiKeyRequestNotFoundError"}}}}}}},"/api/limit-policies/":{"post":{"operationId":"create-limit-policy","summary":"Create a limit policy","description":"Create a policy. Returns the full policy, matching the retrieve response. Caps are stored and visible as soon as they are created, but the gateway enforces them only where the limit system is enabled for your environment. Where it is not enabled, a cap records no usage and never blocks.","tags":["limitPolicies"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"The created policy.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimitPolicy"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimitPolicyCreateRequest"}}}}},"get":{"operationId":"list-limit-policies","summary":"List limit policies","description":"List every configured policy in your organization, including zero-traffic policies. Each carries its live `current_state`.","tags":["limitPolicies"],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","default":50}},{"name":"ordering","in":"query","description":"Prefix with `-` for descending.","required":false,"schema":{"type":"string","default":"-updated_at"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of policies.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Limit Policies_list_limit_policies_Response_200"}}}}}}},"/api/limit-policies/{id}/":{"get":{"operationId":"retrieve-limit-policy","summary":"Retrieve a limit policy","description":"Retrieve one policy with its live `current_state`.","tags":["limitPolicies"],"parameters":[{"name":"id","in":"path","description":"Limit policy id.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The policy.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimitPolicy"}}}}}},"patch":{"operationId":"update-limit-policy","summary":"Update a limit policy","description":"Update mutable fields (`name`, `scope`, `rules`, `priority`, `is_active`). Immutable fields are ignored.","tags":["limitPolicies"],"parameters":[{"name":"id","in":"path","description":"Limit policy id.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The updated policy.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimitPolicy"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimitPolicyUpdateRequest"}}}}},"delete":{"operationId":"delete-limit-policy","summary":"Delete a limit policy","description":"Hard-delete the policy. Returns 204.","tags":["limitPolicies"],"parameters":[{"name":"id","in":"path","description":"Limit policy id.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"}}}},"/api/credit-transactions/list/":{"get":{"operationId":"list-credit-transactions","summary":"List credit transactions","description":"List credit transactions with pagination.","tags":["creditTransactions"],"parameters":[{"name":"page","in":"query","description":"Page number for pagination.","required":false,"schema":{"type":"integer","default":1}},{"name":"page_size","in":"query","description":"Number of items per page. Maximum is 1000.","required":false,"schema":{"type":"integer","default":100}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of transactions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Credit Transactions_listCreditTransactions_Response_200"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreditTransactionsRequestUnauthorizedError"}}}}}}},"/api/credit-transactions/{id}/":{"get":{"operationId":"retrieve-credit-transaction","summary":"Retrieve a credit transaction","description":"Retrieve details of a specific credit transaction.","tags":["creditTransactions"],"parameters":[{"name":"id","in":"path","description":"The unique identifier of the transaction to retrieve (e.g., ct_1a2b3c4d5e6f7g8h)","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Transaction details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Credit Transactions_retrieveCreditTransaction_Response_200"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveCreditTransactionRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveCreditTransactionRequestNotFoundError"}}}}}}},"/api/dashboard/llm-metrics/":{"post":{"operationId":"list-llm-metrics","summary":"List LLM metrics","description":"Returns LLM usage metrics (requests, tokens, cost, latency, cache hit rate, etc.) bucketed by `time_tick` (minute / hour / day).","tags":["dashboard"],"parameters":[{"name":"summary_type","in":"query","description":"Preset time range. Use this or explicit `start_time` / `end_time`.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardLlmMetricsPostParametersSummaryType"}},{"name":"date","in":"query","description":"Base date used with `summary_type` presets.","required":false,"schema":{"type":"string","format":"date"}},{"name":"start_time","in":"query","description":"Optional explicit ISO start time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"Optional explicit ISO end time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"time_tick","in":"query","description":"Bucket granularity for time-series responses.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardLlmMetricsPostParametersTimeTick"}},{"name":"timezone_offset","in":"query","description":"Timezone offset, in hours, used when resolving preset ranges.","required":false,"schema":{"type":"number","format":"double","default":0}},{"name":"fetch_filters","in":"query","description":"Whether to include available filter options in the response.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardLlmMetricsPostParametersFetchFilters"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dashboard_listLlmMetrics_Response_200"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardFiltersRequest"}}}}}},"/api/dashboard/llm-metrics/summary/":{"post":{"operationId":"get-llm-metrics-summary","summary":"Get LLM metrics summary","description":"Returns a single aggregated row of LLM metrics for the entire time range.","tags":["dashboard"],"parameters":[{"name":"summary_type","in":"query","description":"Preset time range. Use this or explicit `start_time` / `end_time`.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardLlmMetricsSummaryPostParametersSummaryType"}},{"name":"date","in":"query","description":"Base date used with `summary_type` presets.","required":false,"schema":{"type":"string","format":"date"}},{"name":"start_time","in":"query","description":"Optional explicit ISO start time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"Optional explicit ISO end time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"time_tick","in":"query","description":"Bucket granularity for time-series responses.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardLlmMetricsSummaryPostParametersTimeTick"}},{"name":"timezone_offset","in":"query","description":"Timezone offset, in hours, used when resolving preset ranges.","required":false,"schema":{"type":"number","format":"double","default":0}},{"name":"fetch_filters","in":"query","description":"Whether to include available filter options in the response.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardLlmMetricsSummaryPostParametersFetchFilters"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardLLMMetricsSummary"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardFiltersRequest"}}}}}},"/api/dashboard/quantiles/":{"post":{"operationId":"list-quantiles","summary":"List latency / TTFT / TPS quantiles","description":"Returns p50, p90, p95, and p99 distributions for latency, time-to-first-token, and tokens-per-second, bucketed by `time_tick`.","tags":["dashboard"],"parameters":[{"name":"summary_type","in":"query","description":"Preset time range. Use this or explicit `start_time` / `end_time`.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardQuantilesPostParametersSummaryType"}},{"name":"date","in":"query","description":"Base date used with `summary_type` presets.","required":false,"schema":{"type":"string","format":"date"}},{"name":"start_time","in":"query","description":"Optional explicit ISO start time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"Optional explicit ISO end time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"time_tick","in":"query","description":"Bucket granularity for time-series responses.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardQuantilesPostParametersTimeTick"}},{"name":"timezone_offset","in":"query","description":"Timezone offset, in hours, used when resolving preset ranges.","required":false,"schema":{"type":"number","format":"double","default":0}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dashboard_listQuantiles_Response_200"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardQuantilesRequest"}}}}}},"/api/dashboard/quantiles/summary/":{"post":{"operationId":"get-quantiles-summary","summary":"Get quantiles summary","description":"Returns latency / TTFT / TPS quantile distributions aggregated over the full time range.","tags":["dashboard"],"parameters":[{"name":"summary_type","in":"query","description":"Preset time range. Use this or explicit `start_time` / `end_time`.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardQuantilesSummaryPostParametersSummaryType"}},{"name":"date","in":"query","description":"Base date used with `summary_type` presets.","required":false,"schema":{"type":"string","format":"date"}},{"name":"start_time","in":"query","description":"Optional explicit ISO start time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"Optional explicit ISO end time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"time_tick","in":"query","description":"Bucket granularity for time-series responses.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardQuantilesSummaryPostParametersTimeTick"}},{"name":"timezone_offset","in":"query","description":"Timezone offset, in hours, used when resolving preset ranges.","required":false,"schema":{"type":"number","format":"double","default":0}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dashboard_getQuantilesSummary_Response_200"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardQuantilesRequest"}}}}}},"/api/dashboard/time-series/breakdown/":{"post":{"operationId":"list-metrics-breakdown","summary":"List metrics broken down by dimension","description":"Return time-series metrics broken down by a dimension. Span scope supports full filtering and dimensions; trace scope accepts no body filters and only customer or organization-key breakdowns; thread scope accepts neither filters nor a breakdown dimension. Each requested metric is a top-level key whose value is an array of time buckets.","tags":["dashboard"],"parameters":[{"name":"summary_type","in":"query","description":"Preset time range. Use this or explicit `start_time` / `end_time`.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardTimeSeriesBreakdownPostParametersSummaryType"}},{"name":"date","in":"query","description":"Base date used with `summary_type` presets.","required":false,"schema":{"type":"string","format":"date"}},{"name":"start_time","in":"query","description":"Optional explicit ISO start time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"Optional explicit ISO end time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"time_tick","in":"query","description":"Bucket granularity for time-series responses.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardTimeSeriesBreakdownPostParametersTimeTick"}},{"name":"timezone_offset","in":"query","description":"Timezone offset, in hours, used when resolving preset ranges.","required":false,"schema":{"type":"number","format":"double","default":0}},{"name":"breakdown_by","in":"query","description":"Dimension to break the time series down by.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardTimeSeriesBreakdownPostParametersBreakdownBy"}},{"name":"scope","in":"query","description":"Aggregation unit.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardTimeSeriesBreakdownPostParametersScope"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Metric-keyed time-series breakdown.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiDashboardTimeSeriesBreakdownPostResponsesContentApplicationJsonSchema"}}}}},"400":{"description":"Invalid scope, dimension, filters, or metric combination.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMetricsBreakdownRequestBadRequestError"}}}},"413":{"description":"The query exceeded a memory or execution-time resource limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMetricsBreakdownRequestContentTooLargeError"}}}}},"requestBody":{"description":"Optional POST body. Only `filters` is read from the body; time range controls are URL query parameters.","content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/Filters"},"metrics_to_aggregate":{"type":"array","items":{"$ref":"#/components/schemas/ApiDashboardTimeSeriesBreakdownPostRequestBodyContentApplicationJsonSchemaMetricsToAggregateItems"},"description":"Metrics to return. Supported values depend on `scope`; when omitted the API returns number of requests, total cost, and total tokens."}}}}}}}},"/api/dashboard/users/":{"post":{"operationId":"list-active-users","summary":"List active users over time","description":"Returns active user count as a time series, bucketed by `time_tick`.","tags":["dashboard"],"parameters":[{"name":"summary_type","in":"query","description":"Preset time range. Use this or explicit `start_time` / `end_time`.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardUsersPostParametersSummaryType"}},{"name":"date","in":"query","description":"Base date used with `summary_type` presets.","required":false,"schema":{"type":"string","format":"date"}},{"name":"start_time","in":"query","description":"Optional explicit ISO start time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"Optional explicit ISO end time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"time_tick","in":"query","description":"Bucket granularity for time-series responses.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardUsersPostParametersTimeTick"}},{"name":"timezone_offset","in":"query","description":"Timezone offset, in hours, used when resolving preset ranges.","required":false,"schema":{"type":"number","format":"double","default":0}},{"name":"environment","in":"query","description":"Filter by environment (`prod` or `test`).","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardUsersPostParametersEnvironment"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dashboard_listActiveUsers_Response_200"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardTimeRangeRequest"}}}}}},"/api/dashboard/total-users/":{"post":{"operationId":"get-total-users","summary":"Get total unique users","description":"Return the total customer-user count time series. Time controls are query parameters; the backend does not read a request body for this endpoint.","tags":["dashboard"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dashboard_getTotalUsers_Response_200"}}}}}}},"/api/dashboard/cache-hit-metrics/":{"post":{"operationId":"list-cache-hit-metrics","summary":"List cache hit metrics","description":"Returns semantic cache hit metrics (count, tokens, savings, hit %) as a time series.","tags":["dashboard"],"parameters":[{"name":"summary_type","in":"query","description":"Preset time range. Use this or explicit `start_time` / `end_time`.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardCacheHitMetricsPostParametersSummaryType"}},{"name":"date","in":"query","description":"Base date used with `summary_type` presets.","required":false,"schema":{"type":"string","format":"date"}},{"name":"start_time","in":"query","description":"Optional explicit ISO start time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"Optional explicit ISO end time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"time_tick","in":"query","description":"Bucket granularity for time-series responses.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardCacheHitMetricsPostParametersTimeTick"}},{"name":"timezone_offset","in":"query","description":"Timezone offset, in hours, used when resolving preset ranges.","required":false,"schema":{"type":"number","format":"double","default":0}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dashboard_listCacheHitMetrics_Response_200"}}}}}}},"/api/dashboard/cache-hit-metrics/summary/":{"post":{"operationId":"get-cache-hit-metrics-summary","summary":"Get cache hit summary","description":"Returns cache hit metrics aggregated over the time range.","tags":["dashboard"],"parameters":[{"name":"summary_type","in":"query","description":"Preset time range. Use this or explicit `start_time` / `end_time`.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardCacheHitMetricsSummaryPostParametersSummaryType"}},{"name":"date","in":"query","description":"Base date used with `summary_type` presets.","required":false,"schema":{"type":"string","format":"date"}},{"name":"start_time","in":"query","description":"Optional explicit ISO start time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"Optional explicit ISO end time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"time_tick","in":"query","description":"Bucket granularity for time-series responses.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardCacheHitMetricsSummaryPostParametersTimeTick"}},{"name":"timezone_offset","in":"query","description":"Timezone offset, in hours, used when resolving preset ranges.","required":false,"schema":{"type":"number","format":"double","default":0}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dashboard_getCacheHitMetricsSummary_Response_200"}}}}}}},"/api/dashboard/cache-hit-metrics/total-summary/":{"post":{"operationId":"get-lifetime-cache-hit-totals","summary":"Get lifetime cache hit totals","description":"Returns lifetime cache hit totals (not bounded by the request time range).","tags":["dashboard"],"parameters":[{"name":"summary_type","in":"query","description":"Preset time range. Use this or explicit `start_time` / `end_time`.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardCacheHitMetricsTotalSummaryPostParametersSummaryType"}},{"name":"date","in":"query","description":"Base date used with `summary_type` presets.","required":false,"schema":{"type":"string","format":"date"}},{"name":"start_time","in":"query","description":"Optional explicit ISO start time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"Optional explicit ISO end time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"time_tick","in":"query","description":"Bucket granularity for time-series responses.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardCacheHitMetricsTotalSummaryPostParametersTimeTick"}},{"name":"timezone_offset","in":"query","description":"Timezone offset, in hours, used when resolving preset ranges.","required":false,"schema":{"type":"number","format":"double","default":0}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dashboard_getLifetimeCacheHitTotals_Response_200"}}}}}}},"/api/dashboard/eval-results/":{"post":{"operationId":"list-eval-results","summary":"List evaluation scores","description":"Returns evaluation score breakdown as a time series.","tags":["dashboard"],"parameters":[{"name":"summary_type","in":"query","description":"Preset time range. Use this or explicit `start_time` / `end_time`.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardEvalResultsPostParametersSummaryType"}},{"name":"date","in":"query","description":"Base date used with `summary_type` presets.","required":false,"schema":{"type":"string","format":"date"}},{"name":"start_time","in":"query","description":"Optional explicit ISO start time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"Optional explicit ISO end time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"time_tick","in":"query","description":"Bucket granularity for time-series responses.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardEvalResultsPostParametersTimeTick"}},{"name":"timezone_offset","in":"query","description":"Timezone offset, in hours, used when resolving preset ranges.","required":false,"schema":{"type":"number","format":"double","default":0}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dashboard_listEvalResults_Response_200"}}}}}}},"/api/dashboard/eval-results/summary/":{"post":{"operationId":"get-eval-results-summary","summary":"Get evaluation scores summary","description":"Returns evaluation scores aggregated over the time range.","tags":["dashboard"],"parameters":[{"name":"summary_type","in":"query","description":"Preset time range. Use this or explicit `start_time` / `end_time`.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardEvalResultsSummaryPostParametersSummaryType"}},{"name":"date","in":"query","description":"Base date used with `summary_type` presets.","required":false,"schema":{"type":"string","format":"date"}},{"name":"start_time","in":"query","description":"Optional explicit ISO start time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","description":"Optional explicit ISO end time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"time_tick","in":"query","description":"Bucket granularity for time-series responses.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardEvalResultsSummaryPostParametersTimeTick"}},{"name":"timezone_offset","in":"query","description":"Timezone offset, in hours, used when resolving preset ranges.","required":false,"schema":{"type":"number","format":"double","default":0}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiDashboardEvalResultsSummaryPostResponsesContentApplicationJsonSchemaItems"}}}}}}}},"/api/dashboard/storage-volume/":{"get":{"operationId":"list-storage-volume","summary":"List storage volume","description":"Returns storage volume metrics as a time series.","tags":["dashboard"],"parameters":[{"name":"summary_type","in":"query","description":"Preset time range for the storage volume query.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardStorageVolumeGetParametersSummaryType"}},{"name":"date","in":"query","description":"Base date used with `summary_type` presets.","required":false,"schema":{"type":"string","format":"date"}},{"name":"timezone_offset","in":"query","description":"Timezone offset, in hours, used when resolving preset ranges.","required":false,"schema":{"type":"number","format":"double","default":0}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dashboard_listStorageVolume_Response_200"}}}}}}},"/api/dashboard/storage-volume/summary/":{"get":{"operationId":"get-storage-volume-summary","summary":"Get storage volume summary","description":"Returns total storage volume for the time range.","tags":["dashboard"],"parameters":[{"name":"summary_type","in":"query","description":"Preset time range for the storage volume query.","required":false,"schema":{"$ref":"#/components/schemas/ApiDashboardStorageVolumeSummaryGetParametersSummaryType"}},{"name":"date","in":"query","description":"Base date used with `summary_type` presets.","required":false,"schema":{"type":"string","format":"date"}},{"name":"timezone_offset","in":"query","description":"Timezone offset, in hours, used when resolving preset ranges.","required":false,"schema":{"type":"number","format":"double","default":0}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dashboard_getStorageVolumeSummary_Response_200"}}}}}}},"/api/platform-stats/":{"get":{"operationId":"get-platform-stats","summary":"Get public platform stats","description":"Public, unauthenticated endpoint. Returns platform-wide weekly token usage broken down by model or provider for the last 52 weeks. Top 10 breakdown values are returned; the remainder are aggregated into an `Others` bucket. Pre-aggregated weekly (Monday-aligned) in ClickHouse and cached for 1 hour. Rate limited to 30 requests per minute per IP.","tags":["dashboard"],"parameters":[{"name":"breakdown_by","in":"query","description":"Dimension to break the weekly totals down by.","required":false,"schema":{"$ref":"#/components/schemas/ApiPlatformStatsGetParametersBreakdownBy"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformStatsResponse"}}}}}}},"/api/caches/":{"post":{"operationId":"filter-cached-responses","summary":"List cached responses with filters","description":"List cached responses using POST-for-filtering. API-key responses expose public cache keys; dashboard JWT responses may include internal numeric identifiers.","tags":["caches"],"parameters":[{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","minimum":1}},{"name":"page_size","in":"query","description":"Number of results to return per page. Maximum 1000.","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Filtered cached responses plus aggregate cache savings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Caches_filterCachedResponses_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterCachedResponsesRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterCachedResponsesRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ApiCachesPostRequestBodyContentApplicationJsonSchemaFilters","description":"Filter criteria using the standard Respan filter format."}}}}}}}},"/api/caches/summary/":{"post":{"operationId":"get-filtered-cached-responses-summary","summary":"Get filtered cache summary","description":"Return the total number of cached responses after applying filters. This endpoint supports both JWT and API key authentication.","tags":["caches"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Filtered cache summary statistics.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Caches_getFilteredCachedResponsesSummary_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetFilteredCachedResponsesSummaryRequestBadRequestError"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetFilteredCachedResponsesSummaryRequestUnauthorizedError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ApiCachesSummaryPostRequestBodyContentApplicationJsonSchemaFilters","description":"Filter criteria using the standard Respan filter format."}}}}}}}},"/api/caches/bulk/":{"delete":{"operationId":"bulk-delete-cached-responses","summary":"Bulk delete cached responses","description":"Delete cached responses using exactly one selector: `cache_keys`, `ids`, or `all: true`. Up to 1,000 keys or IDs can be deleted per request. `ids` uses internal integer IDs and is JWT-only; API-key clients should use `cache_keys` or `all`. Rate limit: 60 requests per minute per organization for API-key calls (shared across API keys) and per user for JWT calls.","tags":["caches"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Cached responses were deleted synchronously.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteResponse"}}}},"400":{"description":"The selector is invalid, more than one selector was supplied, or API-key authentication was used with `ids`.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"description":"Any type"}}}},"403":{"description":"Forbidden - The caller cannot delete cached responses","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"The request contains more than 1,000 cache keys or IDs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteCachedResponsesRequestUnprocessableEntityError"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteCachedResponsesRequestTooManyRequestsError"}}}}},"requestBody":{"description":"Exactly one deletion mode is required.","content":{"application/json":{"schema":{"type":"object","properties":{"cache_keys":{"type":"array","items":{"type":"string"},"description":"Cache keys to delete. Supported for API key and JWT authentication."},"ids":{"type":"array","items":{"type":"integer"},"description":"Internal numeric cache entry IDs to delete. JWT only."},"all":{"type":"boolean","description":"Set to true to delete all cached responses for the current organization. The server rejects false."}}}}}}}},"/api/caches/{cache_key}/":{"get":{"operationId":"api-caches-retrieve","summary":"Retrieve a cached response","description":"Retrieve a cached response by its organization-scoped cache key. API-key responses omit internal numeric IDs.","tags":["caches"],"parameters":[{"name":"cache_key","in":"path","description":"Organization-scoped cache key returned by the cache list endpoint.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Cached response details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Caches_api_caches_retrieve_Response_200"}}}},"401":{"description":"Unauthorized - Missing or invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Api_caches_retrieveRequestUnauthorizedError"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Api_caches_retrieveRequestNotFoundError"}}}}}},"delete":{"operationId":"api-caches-destroy-2","summary":"Delete a cached response","description":"Delete one cached response by its organization-scoped cache key.","tags":["caches"],"parameters":[{"name":"cache_key","in":"path","description":"Organization-scoped cache key returned by the cache list endpoint.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"403":{"description":"The caller cannot delete caches.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"404":{"description":"Cached response not found.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}}},"patch":{"operationId":"api-caches-partial-update-2","summary":"Update a cached response","description":"Update the expiry date of a cached response identified by its public cache key.","tags":["caches"],"parameters":[{"name":"cache_key","in":"path","description":"Organization-scoped cache key returned by the cache list endpoint.","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated cached response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Caches_api_caches_partial_update_2_Response_200"}}}},"400":{"description":"Invalid update.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"401":{"description":"Authentication failed.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"403":{"description":"The caller cannot update caches.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"404":{"description":"Cached response not found.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"expiry_date":{"type":["string","null"],"format":"date-time","description":"New expiry time; null clears it."}}}}}}}},"/api/anthropic/v1/messages":{"post":{"operationId":"api-anthropic-v-1-messages-create","summary":"Create an Anthropic message","description":"Send an Anthropic Messages API payload through Respan. Use x-api-key for native Anthropic SDKs, or Authorization: Bearer for Claude Code and bearer clients. Provider credentials are configured in Respan.","tags":["anthropicGateway"],"parameters":[{"name":"x-api-key","in":"header","description":"Respan API key in Anthropic's native auth header. Bearer authentication is also accepted by the backend but is not the generated native-SDK form.","required":true,"schema":{"type":"string"}},{"name":"anthropic-version","in":"header","required":true,"schema":{"type":"string","default":"2023-06-01"}},{"name":"anthropic-beta","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Anthropic response or event stream.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"401":{"description":"Invalid Respan API key.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"402":{"description":"Insufficient credits.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"424":{"description":"Upstream provider failed.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string"},"max_tokens":{"type":"integer","minimum":1},"messages":{"type":"array","items":{"type":"object","additionalProperties":{"description":"Any type"}}},"stream":{"type":"boolean","default":false},"respan_params":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["model","max_tokens","messages"]}}}}}},"/api/google/{sdk_type}/v1beta/models/{model_name}:{render_format}":{"post":{"operationId":"api-google-v-1-beta-models-create","summary":"Generate Google model content","description":"Send a native Google Gen AI or Vertex AI content-generation payload through Respan. The Respan API key travels in x-goog-api-key; provider credentials are configured in Respan.","tags":["googleGateway"],"parameters":[{"name":"sdk_type","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ApiGoogleSdkTypeV1BetaModelsModelNameRenderFormatPostParametersSdkType"}},{"name":"model_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"render_format","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ApiGoogleSdkTypeV1BetaModelsModelNameRenderFormatPostParametersRenderFormat"}},{"name":"x-goog-api-key","in":"header","description":"Respan API key in Google's native auth header.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Google response or event stream.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"401":{"description":"Invalid Respan API key.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"402":{"description":"Insufficient credits.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"424":{"description":"Upstream provider failed.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}}},"/api/openrouter/v1/chat/completions":{"post":{"operationId":"openrouter-native-chat-completions","summary":"Create an OpenRouter chat completion","description":"Relay an OpenRouter chat-completions payload through Respan with nothing filtered out, so OpenRouter-owned fields such as provider and reasoning survive the call. This endpoint is BYOK: Authorization carries your Respan API key and x-openrouter-api-key carries your OpenRouter API key. There is no fallback to Respan gateway credits. OpenRouter's response, status code, and event stream are relayed back unchanged.","tags":["openRouterGateway"],"parameters":[{"name":"Authorization","in":"header","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.","required":true,"schema":{"type":"string"}},{"name":"x-openrouter-api-key","in":"header","description":"Your OpenRouter API key. Authorization carries the Respan API key on this operation.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OpenRouter response or event stream.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"400":{"description":"Invalid request, or the x-openrouter-api-key header is missing.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"401":{"description":"Invalid Respan API key.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"402":{"description":"Relayed from OpenRouter: insufficient credits.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"404":{"description":"Relayed from OpenRouter: unknown model or route.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}},"429":{"description":"Rate limit exceeded, from Respan or relayed from OpenRouter.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"description":"Any type"}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","description":"OpenRouter model slug, for example anthropic/claude-sonnet-4-5. An openrouter/ prefix is also accepted and is stripped before the call goes upstream."},"messages":{"type":"array","items":{"type":"object","additionalProperties":{"description":"Any type"}}},"stream":{"type":"boolean","default":false},"provider":{"type":"object","additionalProperties":{"description":"Any type"},"description":"OpenRouter provider routing block, forwarded unchanged."},"reasoning":{"type":"object","additionalProperties":{"description":"Any type"},"description":"OpenRouter reasoning block, forwarded unchanged."},"respan_params":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Respan gateway metadata. Stripped before the payload reaches OpenRouter."}},"required":["model","messages"]}}}}}}},"servers":[{"url":"https://api.respan.ai","description":"Respan API Server"}],"components":{"schemas":{"SpanCreateRequest":{"type":"object","properties":{},"description":"Typed metadata that preserves native JSON types.","title":"SpanCreateRequest"},"ApiRequestLogsPostResponsesContentApplicationJsonSchemaStatus":{"type":"string","enum":["success","error"],"description":"Request status.","title":"ApiRequestLogsPostResponsesContentApplicationJsonSchemaStatus"},"Spans_createSpan_Response_201":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the span. Alias for `unique_id`."},"unique_id":{"type":"string","description":"Full unique identifier for the created span."},"organization_id":{"type":"string","description":"Organization identifier associated with the span."},"customer_identifier":{"type":"string","description":"Customer identifier associated with the span."},"status":{"$ref":"#/components/schemas/ApiRequestLogsPostResponsesContentApplicationJsonSchemaStatus","description":"Request status."},"cost":{"type":"number","format":"double","description":"Computed or supplied request cost in USD."},"timestamp":{"type":"string","format":"date-time","description":"Timestamp when the span was recorded."},"environment":{"type":"string","description":"Environment derived from the API key used for the log."},"latency":{"type":"number","format":"double","description":"Stored total latency in seconds."},"time_to_first_token":{"type":"number","format":"double","description":"Stored time to first token in seconds."},"prompt_cache_creation_tokens":{"type":"integer","description":"Cache creation tokens normalized from usage."},"prompt_cache_hit_tokens":{"type":"integer","description":"Cache read/hit tokens normalized from usage."}},"title":"Spans_createSpan_Response_201"},"CreateSpanRequestBadRequestError":{"type":"object","properties":{"id":{"type":"string","description":"Error identifier when available."},"error":{"type":"string","description":"Error message."},"error_class":{"type":"string","description":"Error classification."}},"title":"CreateSpanRequestBadRequestError"},"CreateSpanRequestUnprocessableEntityError":{"type":"object","properties":{"error":{"type":"string","description":"Validation error message."}},"title":"CreateSpanRequestUnprocessableEntityError"},"CreateSpanRequestTooManyRequestsError":{"type":"object","properties":{"detail":{"type":"string","description":"Rate limit detail."},"error":{"type":"string","description":"Error message."}},"title":"CreateSpanRequestTooManyRequestsError"},"CreateSpanRequestInternalServerError":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}},"title":"CreateSpanRequestInternalServerError"},"BulkItemError":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"description":"Zero-based index of the failed item in the submitted array."},"error":{"type":"string","description":"Error message for the failed item."}},"required":["index","error"],"description":"An item that failed during a bulk operation. `index` is zero-based and identifies the corresponding item in the request array.","title":"BulkItemError"},"BulkOperationResponse":{"type":"object","properties":{"success_count":{"type":"integer","minimum":0,"description":"Number of items successfully processed."},"error_count":{"type":"integer","minimum":0,"description":"Number of items that failed."},"errors":{"type":"array","items":{"$ref":"#/components/schemas/BulkItemError"},"description":"Item-level failures, keyed by zero-based input index."}},"required":["success_count","error_count","errors"],"description":"Canonical result envelope for a bulk operation.","title":"BulkOperationResponse"},"BulkCreateSpansRequestBadRequestError":{"oneOf":[{"$ref":"#/components/schemas/BulkOperationResponse"},{"type":"object","additionalProperties":{"description":"Any type"}}],"title":"BulkCreateSpansRequestBadRequestError"},"BulkCreateSpansRequestUnprocessableEntityError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"BulkCreateSpansRequestUnprocessableEntityError"},"BulkCreateSpansRequestTooManyRequestsError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"BulkCreateSpansRequestTooManyRequestsError"},"ApiRequestLogsListPostParametersEnvironment":{"type":"string","enum":["prod","test"],"title":"ApiRequestLogsListPostParametersEnvironment"},"ApiRequestLogsListPostParametersLogType":{"type":"string","enum":["text","chat","completion","response","embedding","transcription","speech","workflow","task","tool","agent","handoff","guardrail","function","custom","generation","unknown","score","batch","span"],"title":"ApiRequestLogsListPostParametersLogType"},"FilterValueOperator":{"type":"string","enum":["","iexact","lt","lte","gt","gte","contains","icontains","startswith","endswith","in","isnull","not"],"default":"","description":"Comparison operator. Empty string for exact match.","title":"FilterValueOperator"},"FilterValue":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/FilterValueOperator","description":"Comparison operator. Empty string for exact match."},"value":{"type":"array","items":{"description":"Any type"},"description":"Value(s) to filter by."}},"required":["value"],"description":"A filter condition with an operator and value.","title":"FilterValue"},"Filters":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/FilterValue"},"status_code":{"$ref":"#/components/schemas/FilterValue"},"unique_id":{"$ref":"#/components/schemas/FilterValue"},"customer_identifier":{"$ref":"#/components/schemas/FilterValue"},"thread_identifier":{"$ref":"#/components/schemas/FilterValue"},"custom_identifier":{"$ref":"#/components/schemas/FilterValue"},"group_identifier":{"$ref":"#/components/schemas/FilterValue"},"prompt_id":{"$ref":"#/components/schemas/FilterValue"},"trace_unique_id":{"$ref":"#/components/schemas/FilterValue"},"span_parent_id":{"$ref":"#/components/schemas/FilterValue"},"is_root_span":{"$ref":"#/components/schemas/FilterValue"},"span_workflow_name":{"$ref":"#/components/schemas/FilterValue"},"span_name":{"$ref":"#/components/schemas/FilterValue"},"model":{"$ref":"#/components/schemas/FilterValue"},"log_type":{"$ref":"#/components/schemas/FilterValue"},"stream":{"$ref":"#/components/schemas/FilterValue"},"tools":{"$ref":"#/components/schemas/FilterValue"},"cache_hit":{"$ref":"#/components/schemas/FilterValue"},"cache_key":{"$ref":"#/components/schemas/FilterValue"},"prompt_tokens":{"$ref":"#/components/schemas/FilterValue"},"completion_tokens":{"$ref":"#/components/schemas/FilterValue"},"total_tokens":{"$ref":"#/components/schemas/FilterValue"},"cost":{"$ref":"#/components/schemas/FilterValue"},"latency":{"$ref":"#/components/schemas/FilterValue"},"metadata":{"$ref":"#/components/schemas/FilterValue"},"messages":{"$ref":"#/components/schemas/FilterValue"},"positive_feedback":{"$ref":"#/components/schemas/FilterValue"},"evaluator_id":{"$ref":"#/components/schemas/FilterValue"}},"description":"Filter criteria. See [Filters API Reference](/docs/apis/reference/filters-api-reference) for operator syntax.","title":"Filters"},"ApiRequestLogsListPostResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{},"title":"ApiRequestLogsListPostResponsesContentApplicationJsonSchemaResultsItems"},"Spans_listSpans_Response_200":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of results"},"next":{"type":["string","null"],"description":"URL for the next page of results"},"previous":{"type":["string","null"],"description":"URL for the previous page of results"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiRequestLogsListPostResponsesContentApplicationJsonSchemaResultsItems"},"description":"Array of results for the current page"}},"required":["count","results"],"title":"Spans_listSpans_Response_200"},"ListSpansRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}},"title":"ListSpansRequestBadRequestError"},"ListSpansRequestContentTooLargeError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"ListSpansRequestContentTooLargeError"},"ListSpansRequestTooManyRequestsError":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}},"title":"ListSpansRequestTooManyRequestsError"},"ListSpansRequestInternalServerError":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}},"title":"ListSpansRequestInternalServerError"},"ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaInput":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":{"description":"Any type"}},{"type":"array","items":{"description":"Any type"}},{"type":"number","format":"double"},{"type":"boolean"}],"description":"Canonical span input.","title":"ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaInput"},"ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaOutput":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":{"description":"Any type"}},{"type":"array","items":{"description":"Any type"}},{"type":"number","format":"double"},{"type":"boolean"}],"description":"Canonical span output.","title":"ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaOutput"},"ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaWarnings":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":{"description":"Any type"}},{"type":"array","items":{"description":"Any type"}},{"type":"number","format":"double"},{"type":"boolean"}],"description":"Warnings captured for the request.","title":"ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaWarnings"},"ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchema":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":{"description":"Any type"}},{"type":"array","items":{"description":"Any type"}},{"type":"number","format":"double"},{"type":"boolean"}],"description":"Typed span properties.","title":"ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchema"},"ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaScores":{"type":"object","properties":{"id":{"type":"string"},"evaluator_id":{"type":"string"},"evaluator_slug":{"type":["string","null"]},"evaluator_name":{"type":["string","null"]},"score_value_type":{"type":["string","null"]},"numerical_value":{"type":["number","null"],"format":"double"},"string_value":{"type":["string","null"]},"boolean_value":{"type":["boolean","null"]},"categorical_value":{"type":["array","null"],"items":{"type":"string"}},"json_value":{"oneOf":[{"description":"Any type"},{"type":"null"}]},"is_passed":{"type":["boolean","null"]},"explanation":{"type":"string"}},"title":"ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaScores"},"ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaLimitInfoLimitsItems":{"type":"object","properties":{"name":{"type":"string"},"current_value":{"type":"number","format":"double"},"new_value":{"type":"number","format":"double"},"limit_value":{"type":"number","format":"double"},"is_within_limit":{"type":"boolean"}},"title":"ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaLimitInfoLimitsItems"},"ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaLimitInfo":{"type":"object","properties":{"is_allowed":{"type":"boolean"},"limits":{"type":"array","items":{"$ref":"#/components/schemas/ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaLimitInfoLimitsItems"}}},"title":"ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaLimitInfo"},"Spans_retrieveSpan_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Span ID (alias of `unique_id`)."},"unique_id":{"type":"string","description":"Stored unique span ID."},"span_unique_id":{"type":"string","description":"Tracing span ID, when supplied."},"trace_unique_id":{"type":"string","description":"Parent trace ID."},"span_name":{"type":"string","description":"Span name."},"span_parent_id":{"type":"string","description":"Parent span ID."},"span_workflow_name":{"type":"string","description":"Workflow name associated with the span."},"timestamp":{"type":"string","format":"date-time","description":"Completion timestamp."},"start_time":{"type":"string","format":"date-time","description":"Start timestamp."},"period_start":{"type":"string","format":"date-time","description":"Billing/aggregation period start."},"period_end":{"type":"string","format":"date-time","description":"Billing/aggregation period end."},"input":{"$ref":"#/components/schemas/ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaInput","description":"Canonical span input."},"output":{"$ref":"#/components/schemas/ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaOutput","description":"Canonical span output."},"prompt_messages":{"type":"array","items":{"type":"object","additionalProperties":{"description":"Any type"}}},"completion_message":{"type":"object","additionalProperties":{"description":"Any type"}},"completion_messages":{"type":"array","items":{"description":"Any type"}},"full_request":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Credential-sanitized full request."},"full_response":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Credential-sanitized full response."},"model":{"type":"string","description":"Model used by the span."},"provider_id":{"type":"string","description":"Provider route used by the span."},"environment":{"type":"string","description":"API-key environment."},"log_type":{"type":"string","description":"Span/log type."},"log_method":{"type":"string","description":"How this span was ingested."},"status":{"type":"string","description":"Span status."},"status_code":{"type":"integer","description":"HTTP or application status code."},"error_code":{"type":"string","maxLength":120,"description":"Normalized error code."},"error_message":{"type":"string","description":"Error message, when the span failed."},"warnings":{"$ref":"#/components/schemas/ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaWarnings","description":"Warnings captured for the request."},"prompt_tokens":{"type":"integer","description":"Input token count."},"completion_tokens":{"type":"integer","description":"Output token count."},"total_request_tokens":{"type":"integer","description":"Total token count."},"prompt_cache_hit_tokens":{"type":"integer","description":"Cached input-token count."},"prompt_cache_creation_tokens":{"type":"integer","description":"Cache-creation input-token count."},"reasoning_tokens":{"type":"integer","description":"Reasoning-token count."},"cost":{"type":"number","format":"double","description":"Cost in USD."},"latency":{"type":"number","format":"double","description":"End-to-end latency in seconds."},"time_to_first_token":{"type":"number","format":"double","description":"Time to first token in seconds."},"tokens_per_second":{"type":"number","format":"double","description":"Output throughput."},"routing_time":{"type":"number","format":"double","description":"Gateway routing time."},"metadata":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Customer metadata. Keys beginning with `_` are reserved and omitted from customer-facing responses."},"properties":{"$ref":"#/components/schemas/ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchema","description":"Typed span properties."},"variables":{"type":"object","additionalProperties":{"description":"Any type"}},"tools":{"type":"array","items":{"type":"object","additionalProperties":{"description":"Any type"}}},"tool_calls":{"type":"array","items":{"type":"object","additionalProperties":{"description":"Any type"}}},"scores":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaScores"},"description":"Evaluation scores keyed by evaluator identifier or slug."},"customer_identifier":{"type":"string","description":"End-customer identifier."},"customer_email":{"type":"string","description":"End-customer email."},"customer_name":{"type":"string","description":"End-customer name."},"custom_identifier":{"type":"string","description":"Indexed custom identifier."},"group_identifier":{"type":"string","description":"Group identifier."},"session_identifier":{"type":"string","description":"Session identifier."},"thread_identifier":{"type":"string","description":"Conversation thread identifier."},"organization_id":{"type":"string","description":"Organization UUID."},"unique_organization_id":{"type":"string","description":"Organization UUID."},"organization_key_id":{"type":"string","description":"API-key identifier."},"organization_key_name":{"type":"string","description":"API-key display name."},"prompt_id":{"type":"string","description":"Prompt family ID."},"prompt_name":{"type":"string","description":"Prompt display name."},"prompt_version_number":{"type":"integer","description":"Prompt version number."},"deployment_id":{"type":"string","description":"Deployment ID."},"deployment_name":{"type":"string","description":"Deployment name."},"stream":{"type":"boolean","description":"Whether the response streamed."},"temperature":{"type":"number","format":"double","description":"Sampling temperature."},"top_p":{"type":"number","format":"double","description":"Nucleus-sampling parameter."},"max_tokens":{"type":"integer","description":"Configured generation limit."},"response_format":{"type":"object","additionalProperties":{"description":"Any type"}},"limit_info":{"$ref":"#/components/schemas/ApiRequestLogsUniqueIdGetResponsesContentApplicationJsonSchemaLimitInfo"},"blurred":{"type":"boolean","description":"When true, usage policy reduced the response to visibility-safe fields."}},"required":["id"],"description":"Full customer-facing span detail. Additional stored or enrichment fields may be present. For usage-capped records, the server can instead return a reduced object with `blurred: true`.","title":"Spans_retrieveSpan_Response_200"},"RetrieveSpanRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}},"title":"RetrieveSpanRequestBadRequestError"},"RetrieveSpanRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}},"title":"RetrieveSpanRequestNotFoundError"},"RetrieveSpanRequestTooManyRequestsError":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}},"title":"RetrieveSpanRequestTooManyRequestsError"},"RetrieveSpanRequestInternalServerError":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}},"title":"RetrieveSpanRequestInternalServerError"},"ApiRequestLogsSummaryPostParametersEnvironment":{"type":"string","enum":["prod","test"],"title":"ApiRequestLogsSummaryPostParametersEnvironment"},"Spans_getSpansSummary_Response_200":{"type":"object","properties":{"number_of_requests":{"type":"integer","description":"Total number of matching spans/log rows."},"total_cost":{"type":"number","format":"double","description":"Total cost in USD for all matching spans/log rows."},"total_tokens":{"type":"integer","description":"Total tokens across all matching spans/log rows."},"total_prompt_tokens":{"type":"integer","description":"Total prompt/input tokens."},"total_completion_tokens":{"type":"integer","description":"Total completion/output tokens."},"avg_latency":{"type":"number","format":"double","description":"Average latency in seconds."},"avg_tps":{"type":"number","format":"double","description":"Average tokens per second."},"avg_ttft":{"type":"number","format":"double","description":"Average time to first token in seconds."},"scores":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Aggregated score summaries grouped by evaluator ID."}},"required":["number_of_requests","total_cost","total_tokens","total_prompt_tokens","total_completion_tokens","avg_latency","avg_tps","avg_ttft","scores"],"title":"Spans_getSpansSummary_Response_200"},"GetSpansSummaryRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}},"title":"GetSpansSummaryRequestBadRequestError"},"GetSpansSummaryRequestContentTooLargeError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"GetSpansSummaryRequestContentTooLargeError"},"GetSpansSummaryRequestTooManyRequestsError":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}},"title":"GetSpansSummaryRequestTooManyRequestsError"},"GetSpansSummaryRequestInternalServerError":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}},"title":"GetSpansSummaryRequestInternalServerError"},"ApiRequestLogsGroupsGetParametersGroupBy":{"type":"string","enum":["model","provider_id","organization_key_id","prompt_id","deployment_id","deployment_name","custom_identifier","customer_identifier","trace","thread"],"default":"model","title":"ApiRequestLogsGroupsGetParametersGroupBy"},"ApiRequestLogsGroupsGetResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"date_group":{"type":"string","format":"date-time"},"model":{"type":"string"},"provider_id":{"type":"string"},"organization_key_id":{"type":"string"},"prompt_id":{"type":"string"},"deployment_id":{"type":"string"},"deployment_name":{"type":"string"},"custom_identifier":{"type":"string"},"customer_identifier":{"type":"string"},"trace_unique_id":{"type":"string"},"thread_identifier":{"type":"string"},"number_of_requests":{"type":["integer","null"]},"span_count":{"type":["integer","null"]},"total_cost":{"type":["number","null"],"format":"double"},"total_tokens":{"type":["integer","null"]},"error_count":{"type":["integer","null"]},"error_percentage":{"type":["number","null"],"format":"double"},"average_cost":{"type":["number","null"],"format":"double"},"average_tokens":{"type":["integer","null"]},"average_latency":{"type":["number","null"],"format":"double"},"average_ttft":{"type":["number","null"],"format":"double"},"average_tps":{"type":["number","null"],"format":"double"},"cache_hit_percentage":{"type":["number","null"],"format":"double"}},"description":"Aggregated metrics plus the selected group key. Trace and thread groups include their richer entity fields.","title":"ApiRequestLogsGroupsGetResponsesContentApplicationJsonSchemaResultsItems"},"Spans_request_logs_groups_list_Response_200":{"type":"object","properties":{"count":{"type":"integer"},"next":{"type":["string","null"]},"previous":{"type":["string","null"]},"total_count":{"type":"integer"},"current_filters":{"type":"object","additionalProperties":{"description":"Any type"}},"filters_data":{"type":"object","additionalProperties":{"description":"Any type"}},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiRequestLogsGroupsGetResponsesContentApplicationJsonSchemaResultsItems"}}},"required":["count","results"],"title":"Spans_request_logs_groups_list_Response_200"},"Request_logs_groups_listRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"title":"Request_logs_groups_listRequestBadRequestError"},"Request_logs_groups_listRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"Request_logs_groups_listRequestUnauthorizedError"},"Request_logs_groups_listRequestForbiddenError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"Request_logs_groups_listRequestForbiddenError"},"ApiRequestLogsGroupsPostParametersGroupBy":{"type":"string","enum":["model","provider_id","organization_key_id","prompt_id","deployment_id","deployment_name","custom_identifier","customer_identifier","trace","thread"],"default":"model","title":"ApiRequestLogsGroupsPostParametersGroupBy"},"ApiRequestLogsGroupsPostResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"date_group":{"type":"string","format":"date-time"},"model":{"type":"string"},"provider_id":{"type":"string"},"organization_key_id":{"type":"string"},"prompt_id":{"type":"string"},"deployment_id":{"type":"string"},"deployment_name":{"type":"string"},"custom_identifier":{"type":"string"},"customer_identifier":{"type":"string"},"trace_unique_id":{"type":"string"},"thread_identifier":{"type":"string"},"number_of_requests":{"type":["integer","null"]},"span_count":{"type":["integer","null"]},"total_cost":{"type":["number","null"],"format":"double"},"total_tokens":{"type":["integer","null"]},"error_count":{"type":["integer","null"]},"error_percentage":{"type":["number","null"],"format":"double"},"average_cost":{"type":["number","null"],"format":"double"},"average_tokens":{"type":["integer","null"]},"average_latency":{"type":["number","null"],"format":"double"},"average_ttft":{"type":["number","null"],"format":"double"},"average_tps":{"type":["number","null"],"format":"double"},"cache_hit_percentage":{"type":["number","null"],"format":"double"}},"description":"Aggregated metrics plus the selected group key. Trace and thread groups include their richer entity fields.","title":"ApiRequestLogsGroupsPostResponsesContentApplicationJsonSchemaResultsItems"},"Spans_request_logs_groups_filter_Response_200":{"type":"object","properties":{"count":{"type":"integer"},"next":{"type":["string","null"]},"previous":{"type":["string","null"]},"total_count":{"type":"integer"},"current_filters":{"type":"object","additionalProperties":{"description":"Any type"}},"filters_data":{"type":"object","additionalProperties":{"description":"Any type"}},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiRequestLogsGroupsPostResponsesContentApplicationJsonSchemaResultsItems"}}},"required":["count","results"],"title":"Spans_request_logs_groups_filter_Response_200"},"Request_logs_groups_filterRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"title":"Request_logs_groups_filterRequestBadRequestError"},"Request_logs_groups_filterRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"Request_logs_groups_filterRequestUnauthorizedError"},"Request_logs_groups_filterRequestForbiddenError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"Request_logs_groups_filterRequestForbiddenError"},"ApiTracesListPostResponsesContentApplicationJsonSchemaResultsItemsMetadata":{"type":"object","properties":{},"description":"Customer metadata. Keys beginning with `_` are reserved and omitted from customer-facing responses.","title":"ApiTracesListPostResponsesContentApplicationJsonSchemaResultsItemsMetadata"},"ApiTracesListPostResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string","description":"Trace identifier."},"trace_unique_id":{"type":"string","description":"Unique trace identifier."},"root_span_unique_id":{"type":"string","description":"Root span ID for the trace."},"unique_organization_id":{"type":"string","description":"Organization unique ID."},"organization_id":{"type":"string","description":"Alias of `unique_organization_id`."},"organization_name":{"type":"string","description":"Organization name when available."},"organization_key_id":{"type":"string","description":"API key identifier used to create the trace."},"environment":{"type":"string","description":"Environment for the trace."},"customer_identifier":{"type":"string","description":"Customer or user identifier."},"start_time":{"type":"string","format":"date-time","description":"When the trace started."},"end_time":{"type":"string","format":"date-time","description":"When the trace ended."},"duration":{"type":"number","format":"double","description":"Total duration in seconds."},"span_count":{"type":"integer","description":"Total spans in the trace."},"llm_call_count":{"type":"integer","description":"Number of LLM-call spans."},"total_cost":{"type":"number","format":"double","description":"Total cost in USD."},"total_prompt_tokens":{"type":"integer","description":"Sum of prompt tokens."},"total_completion_tokens":{"type":"integer","description":"Sum of completion tokens."},"total_tokens":{"type":"integer","description":"Sum of all tokens."},"error_count":{"type":"integer","description":"Number of error spans."},"name":{"type":"string","description":"Root span name."},"input":{"type":"string","description":"Root span input. API key responses may include full storage-enriched content."},"output":{"type":"string","description":"Root span output. API key responses may include full storage-enriched content."},"metadata":{"$ref":"#/components/schemas/ApiTracesListPostResponsesContentApplicationJsonSchemaResultsItemsMetadata","description":"Customer metadata. Keys beginning with `_` are reserved and omitted from customer-facing responses."},"trace_group_identifier":{"type":"string","description":"Workflow or trace-group identifier."},"session_identifier":{"type":"string","description":"Session identifier when present."},"model":{"type":"string","description":"Primary/root model used."},"storage_object_key":{"type":"string","description":"Storage object key for the root span payload when present."}},"title":"ApiTracesListPostResponsesContentApplicationJsonSchemaResultsItems"},"Traces_listTraces_Response_200":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of matching traces."},"next":{"type":["string","null"],"description":"URL for the next page of results."},"previous":{"type":["string","null"],"description":"URL for the previous page of results."},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiTracesListPostResponsesContentApplicationJsonSchemaResultsItems"},"description":"Current page of traces."}},"required":["count","results"],"title":"Traces_listTraces_Response_200"},"ListTracesRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListTracesRequestBadRequestError"},"ListTracesRequestContentTooLargeError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"ListTracesRequestContentTooLargeError"},"ListTracesRequestTooManyRequestsError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListTracesRequestTooManyRequestsError"},"ListTracesRequestInternalServerError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListTracesRequestInternalServerError"},"TraceFilterConditionOperator":{"type":"string","enum":["is","not","in","not_in","lt","lte","gt","gte","contains","not_contains","icontains","startswith","not_startswith","endswith","not_endswith","empty","notEmpty","not_empty","isnull"],"default":"is","description":"Comparison operator. If omitted, exact matching is used.","title":"TraceFilterConditionOperator"},"TraceFilterCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/TraceFilterConditionOperator","description":"Comparison operator. If omitted, exact matching is used."},"value":{"type":"array","items":{"description":"Any type"},"description":"One or more values used by the comparison."}},"required":["value"],"description":"A trace filter condition. Use `is` for an exact value or `in` for any value in a list.","title":"TraceFilterCondition"},"TraceBulkDeleteFilters":{"type":"object","properties":{"trace_unique_id":{"$ref":"#/components/schemas/TraceFilterCondition"},"unique_organization_id":{"$ref":"#/components/schemas/TraceFilterCondition"},"environment":{"$ref":"#/components/schemas/TraceFilterCondition"},"start_time":{"$ref":"#/components/schemas/TraceFilterCondition"},"end_time":{"$ref":"#/components/schemas/TraceFilterCondition"},"span_count":{"$ref":"#/components/schemas/TraceFilterCondition"},"llm_call_count":{"$ref":"#/components/schemas/TraceFilterCondition"},"total_cost":{"$ref":"#/components/schemas/TraceFilterCondition"},"total_prompt_tokens":{"$ref":"#/components/schemas/TraceFilterCondition"},"total_completion_tokens":{"$ref":"#/components/schemas/TraceFilterCondition"},"total_tokens":{"$ref":"#/components/schemas/TraceFilterCondition"},"error_count":{"$ref":"#/components/schemas/TraceFilterCondition"},"customer_identifier":{"$ref":"#/components/schemas/TraceFilterCondition"}},"description":"Non-empty trace-level filters. The named fields below are supported, along with dynamic `metadata__<key>` fields. Environment and time filters in this object are ANDed with the query-parameter/default window. Do not send other field names: the current server ignores unknown fields instead of rejecting them, which can broaden a delete request.","title":"TraceBulkDeleteFilters"},"BulkDeleteResponse":{"type":"object","properties":{"success_count":{"type":"integer","minimum":0,"description":"Number of items successfully processed."},"error_count":{"type":"integer","minimum":0,"description":"Number of items that failed."},"errors":{"type":"array","items":{"$ref":"#/components/schemas/BulkItemError"},"description":"Item-level failures, keyed by zero-based input index."},"deleted_count":{"type":"integer","minimum":0,"description":"Number of resources matched and processed for deletion."},"message":{"type":"string","description":"Human-readable deletion result."}},"required":["success_count","error_count","errors","deleted_count","message"],"description":"Canonical bulk result envelope plus delete-specific fields.","title":"BulkDeleteResponse"},"BulkDeleteTracesRequestBadRequestError":{"type":"object","properties":{"filters":{"type":"array","items":{"type":"string"}}},"required":["filters"],"title":"BulkDeleteTracesRequestBadRequestError"},"BulkDeleteTracesRequestUnprocessableEntityError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"BulkDeleteTracesRequestUnprocessableEntityError"},"BulkDeleteTracesRequestTooManyRequestsError":{"type":"object","properties":{"detail":{"type":"string"},"retry_after":{"type":"integer","minimum":0,"description":"Seconds to wait before retrying."}},"required":["detail"],"title":"BulkDeleteTracesRequestTooManyRequestsError"},"BulkDeleteTracesRequestInternalServerError":{"type":"object","properties":{"error":{"type":"string"}},"title":"BulkDeleteTracesRequestInternalServerError"},"ApiTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaMetadata":{"type":"object","properties":{},"description":"Customer metadata. Keys beginning with `_` are reserved and omitted from customer-facing responses.","title":"ApiTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaMetadata"},"ApiTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsMetadata":{"type":"object","properties":{},"description":"Customer metadata. Keys beginning with `_` are reserved and omitted from customer-facing responses.","title":"ApiTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsMetadata"},"ApiTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsChildrenItems":{"type":"object","properties":{},"title":"ApiTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsChildrenItems"},"ApiTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItems":{"type":"object","properties":{"id":{"type":"string","description":"Span identifier."},"unique_id":{"type":"string","description":"Underlying log unique ID."},"span_unique_id":{"type":"string","description":"Unique span identifier within the trace."},"span_name":{"type":"string","description":"Span name."},"span_parent_id":{"type":["string","null"],"description":"Parent span ID."},"trace_unique_id":{"type":"string","description":"Trace ID."},"customer_identifier":{"type":"string","description":"Customer identifier."},"thread_identifier":{"type":"string","description":"Thread identifier when present."},"session_identifier":{"type":"string","description":"Session identifier when present."},"organization_key_id":{"type":"string","description":"API key identifier."},"organization_id":{"type":"string","description":"Organization unique ID."},"environment":{"type":"string","description":"Environment."},"log_type":{"type":"string","description":"Span/log type."},"timestamp":{"type":"string","format":"date-time","description":"Span end time."},"start_time":{"type":"string","format":"date-time","description":"Span start time."},"end_time":{"type":"string","format":"date-time","description":"Alias of `timestamp`."},"prompt_tokens":{"type":"integer","description":"Prompt tokens for this span."},"completion_tokens":{"type":"integer","description":"Completion tokens for this span."},"total_request_tokens":{"type":"integer","description":"Total tokens for this span."},"cost":{"type":"number","format":"double","description":"Span cost in USD."},"model":{"type":"string","description":"Model used by the span."},"latency":{"type":"number","format":"double","description":"Span duration in seconds."},"status_code":{"type":"integer","description":"Status code recorded for the span."},"status":{"type":"string","description":"Span status."},"input":{"type":"string","description":"Span input."},"output":{"type":"string","description":"Span output."},"metadata":{"$ref":"#/components/schemas/ApiTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsMetadata","description":"Customer metadata. Keys beginning with `_` are reserved and omitted from customer-facing responses."},"span_links":{"type":"string","description":"Serialized OTEL span links when present."},"storage_object_key":{"type":"string","description":"Backing storage object key when present."},"span_workflow_name":{"type":"string","description":"Workflow name when present."},"children":{"type":"array","items":{"$ref":"#/components/schemas/ApiTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsChildrenItems"},"description":"Nested child spans."}},"title":"ApiTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItems"},"Traces_retrieveTrace_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Trace identifier."},"trace_unique_id":{"type":"string","description":"Unique trace identifier."},"root_span_unique_id":{"type":"string","description":"Root span ID for the trace."},"unique_organization_id":{"type":"string","description":"Organization unique ID."},"organization_id":{"type":"string","description":"Alias of `unique_organization_id`."},"organization_name":{"type":"string","description":"Organization name when available."},"organization_key_id":{"type":"string","description":"API key identifier used to create the trace."},"environment":{"type":"string","description":"Environment for the trace."},"customer_identifier":{"type":"string","description":"Customer or user identifier."},"start_time":{"type":"string","format":"date-time","description":"When the trace started."},"end_time":{"type":"string","format":"date-time","description":"When the trace ended."},"duration":{"type":"number","format":"double","description":"Total duration in seconds."},"span_count":{"type":"integer","description":"Total spans in the trace."},"llm_call_count":{"type":"integer","description":"Number of LLM-call spans."},"total_cost":{"type":"number","format":"double","description":"Total cost in USD."},"total_prompt_tokens":{"type":"integer","description":"Sum of prompt tokens."},"total_completion_tokens":{"type":"integer","description":"Sum of completion tokens."},"total_tokens":{"type":"integer","description":"Sum of all tokens."},"error_count":{"type":"integer","description":"Number of error spans."},"name":{"type":"string","description":"Root span name."},"input":{"type":"string","description":"Root span input. API key responses may include full storage-enriched content."},"output":{"type":"string","description":"Root span output. API key responses may include full storage-enriched content."},"metadata":{"$ref":"#/components/schemas/ApiTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaMetadata","description":"Customer metadata. Keys beginning with `_` are reserved and omitted from customer-facing responses."},"trace_group_identifier":{"type":"string","description":"Workflow or trace-group identifier."},"session_identifier":{"type":"string","description":"Session identifier when present."},"model":{"type":"string","description":"Primary/root model used."},"storage_object_key":{"type":"string","description":"Storage object key for the root span payload when present."},"span_tree":{"type":"array","items":{"$ref":"#/components/schemas/ApiTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItems"},"description":"Hierarchical span tree for the trace."}},"title":"Traces_retrieveTrace_Response_200"},"RetrieveTraceRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"RetrieveTraceRequestNotFoundError"},"RetrieveTraceRequestTooManyRequestsError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"RetrieveTraceRequestTooManyRequestsError"},"RetrieveTraceRequestInternalServerError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"RetrieveTraceRequestInternalServerError"},"Traces_deleteTrace_Response_200":{"type":"object","properties":{"message":{"type":"string","description":"Delete confirmation message."}},"required":["message"],"title":"Traces_deleteTrace_Response_200"},"DeleteTraceRequestInternalServerError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"DeleteTraceRequestInternalServerError"},"Traces_shareTrace_Response_200":{"type":"object","properties":{"trace_unique_id":{"type":"string"},"is_public":{"type":"boolean"}},"required":["trace_unique_id","is_public"],"title":"Traces_shareTrace_Response_200"},"ShareTraceRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"ShareTraceRequestBadRequestError"},"ApiUniqueOrganizationIdTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaMetadata":{"type":"object","properties":{},"description":"Customer metadata. Keys beginning with `_` are reserved and omitted from customer-facing responses.","title":"ApiUniqueOrganizationIdTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaMetadata"},"ApiUniqueOrganizationIdTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsMetadata":{"type":"object","properties":{},"description":"Customer metadata. Keys beginning with `_` are reserved and omitted from customer-facing responses.","title":"ApiUniqueOrganizationIdTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsMetadata"},"ApiUniqueOrganizationIdTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsChildrenItems":{"type":"object","properties":{},"title":"ApiUniqueOrganizationIdTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsChildrenItems"},"ApiUniqueOrganizationIdTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItems":{"type":"object","properties":{"id":{"type":"string","description":"Span identifier."},"unique_id":{"type":"string","description":"Underlying log unique ID."},"span_unique_id":{"type":"string","description":"Unique span identifier within the trace."},"span_name":{"type":"string","description":"Span name."},"span_parent_id":{"type":["string","null"],"description":"Parent span ID."},"trace_unique_id":{"type":"string","description":"Trace ID."},"customer_identifier":{"type":"string","description":"Customer identifier."},"thread_identifier":{"type":"string","description":"Thread identifier when present."},"session_identifier":{"type":"string","description":"Session identifier when present."},"organization_key_id":{"type":"string","description":"API key identifier."},"organization_id":{"type":"string","description":"Organization unique ID."},"environment":{"type":"string","description":"Environment."},"log_type":{"type":"string","description":"Span/log type."},"timestamp":{"type":"string","format":"date-time","description":"Span end time."},"start_time":{"type":"string","format":"date-time","description":"Span start time."},"end_time":{"type":"string","format":"date-time","description":"Alias of `timestamp`."},"prompt_tokens":{"type":"integer","description":"Prompt tokens for this span."},"completion_tokens":{"type":"integer","description":"Completion tokens for this span."},"total_request_tokens":{"type":"integer","description":"Total tokens for this span."},"cost":{"type":"number","format":"double","description":"Span cost in USD."},"model":{"type":"string","description":"Model used by the span."},"latency":{"type":"number","format":"double","description":"Span duration in seconds."},"status_code":{"type":"integer","description":"Status code recorded for the span."},"status":{"type":"string","description":"Span status."},"input":{"type":"string","description":"Span input."},"output":{"type":"string","description":"Span output."},"metadata":{"$ref":"#/components/schemas/ApiUniqueOrganizationIdTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsMetadata","description":"Customer metadata. Keys beginning with `_` are reserved and omitted from customer-facing responses."},"span_links":{"type":"string","description":"Serialized OTEL span links when present."},"storage_object_key":{"type":"string","description":"Backing storage object key when present."},"span_workflow_name":{"type":"string","description":"Workflow name when present."},"children":{"type":"array","items":{"$ref":"#/components/schemas/ApiUniqueOrganizationIdTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsChildrenItems"},"description":"Nested child spans."}},"title":"ApiUniqueOrganizationIdTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItems"},"Traces_retrievePublicTrace_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Trace identifier."},"trace_unique_id":{"type":"string","description":"Unique trace identifier."},"root_span_unique_id":{"type":"string","description":"Root span ID for the trace."},"unique_organization_id":{"type":"string","description":"Organization unique ID."},"organization_id":{"type":"string","description":"Alias of `unique_organization_id`."},"organization_name":{"type":"string","description":"Organization name when available."},"organization_key_id":{"type":"string","description":"API key identifier used to create the trace."},"environment":{"type":"string","description":"Environment for the trace."},"customer_identifier":{"type":"string","description":"Customer or user identifier."},"start_time":{"type":"string","format":"date-time","description":"When the trace started."},"end_time":{"type":"string","format":"date-time","description":"When the trace ended."},"duration":{"type":"number","format":"double","description":"Total duration in seconds."},"span_count":{"type":"integer","description":"Total spans in the trace."},"llm_call_count":{"type":"integer","description":"Number of LLM-call spans."},"total_cost":{"type":"number","format":"double","description":"Total cost in USD."},"total_prompt_tokens":{"type":"integer","description":"Sum of prompt tokens."},"total_completion_tokens":{"type":"integer","description":"Sum of completion tokens."},"total_tokens":{"type":"integer","description":"Sum of all tokens."},"error_count":{"type":"integer","description":"Number of error spans."},"name":{"type":"string","description":"Root span name."},"input":{"type":"string","description":"Root span input. API key responses may include full storage-enriched content."},"output":{"type":"string","description":"Root span output. API key responses may include full storage-enriched content."},"metadata":{"$ref":"#/components/schemas/ApiUniqueOrganizationIdTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaMetadata","description":"Customer metadata. Keys beginning with `_` are reserved and omitted from customer-facing responses."},"trace_group_identifier":{"type":"string","description":"Workflow or trace-group identifier."},"session_identifier":{"type":"string","description":"Session identifier when present."},"model":{"type":"string","description":"Primary/root model used."},"storage_object_key":{"type":"string","description":"Storage object key for the root span payload when present."},"span_tree":{"type":"array","items":{"$ref":"#/components/schemas/ApiUniqueOrganizationIdTracesTraceUniqueIdGetResponsesContentApplicationJsonSchemaSpanTreeItems"},"description":"Hierarchical span tree for the trace."}},"title":"Traces_retrievePublicTrace_Response_200"},"RetrievePublicTraceRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"RetrievePublicTraceRequestNotFoundError"},"RetrievePublicTraceRequestTooManyRequestsError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"RetrievePublicTraceRequestTooManyRequestsError"},"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0ItemsLogType":{"type":"string","enum":["chat","completion","response","embedding","speech","transcription","workflow","agent","task","tool","guardrail","reranker","other"],"default":"chat","description":"Span type.","title":"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0ItemsLogType"},"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0ItemsUsage":{"type":"object","properties":{},"description":"Token usage.","title":"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0ItemsUsage"},"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0ItemsStatus":{"type":"string","enum":["success","error"],"title":"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0ItemsStatus"},"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0ItemsMetadata":{"type":"object","properties":{},"description":"Arbitrary key-value pairs.","title":"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0ItemsMetadata"},"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0ItemsRespanParams":{"type":"object","properties":{},"description":"Additional Respan parameters (e.g. `has_webhook`, `environment`).","title":"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0ItemsRespanParams"},"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0Items":{"type":"object","properties":{"trace_unique_id":{"type":"string","description":"Trace ID linking all spans."},"span_unique_id":{"type":"string","description":"Unique ID for this span."},"span_parent_id":{"type":["string","null"],"description":"Parent span ID. `null` for root spans."},"span_name":{"type":"string","description":"Name of this span."},"span_workflow_name":{"type":"string","description":"Workflow name."},"log_type":{"$ref":"#/components/schemas/ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0ItemsLogType","description":"Span type."},"input":{"description":"Input to the model."},"output":{"description":"Output from the model."},"model":{"type":"string","description":"Model used."},"usage":{"$ref":"#/components/schemas/ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0ItemsUsage","description":"Token usage."},"cost":{"type":"number","format":"double","description":"Cost in USD."},"latency":{"type":"number","format":"double","description":"Latency in seconds."},"status":{"$ref":"#/components/schemas/ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0ItemsStatus"},"timestamp":{"type":"string","format":"date-time","description":"When completed (ISO 8601)."},"start_time":{"type":"string","format":"date-time","description":"When started (ISO 8601)."},"customer_identifier":{"type":"string","description":"End user identifier."},"metadata":{"$ref":"#/components/schemas/ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0ItemsMetadata","description":"Arbitrary key-value pairs."},"span_path":{"type":"string","description":"Nested path within the workflow."},"encoding_format":{"type":"string","description":"Embedding encoding format for embedding spans."},"provider_id":{"type":"string","description":"LLM or service provider ID."},"prompt_tokens":{"type":"integer","description":"Number of prompt tokens used."},"completion_tokens":{"type":"integer","description":"Number of completion tokens used."},"warnings":{"type":"string","description":"Warnings captured during span execution."},"disable_log":{"type":"boolean","default":false,"description":"Set `true` to disable logging for this span."},"disable_fallback":{"type":"boolean","default":false,"description":"Disable fallback behavior for this span."},"respan_params":{"$ref":"#/components/schemas/ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0ItemsRespanParams","description":"Additional Respan parameters (e.g. `has_webhook`, `environment`)."},"temperature":{"type":"number","format":"double","description":"LLM temperature (0-2)."},"presence_penalty":{"type":"number","format":"double","description":"Presence penalty for LLM requests."},"frequency_penalty":{"type":"number","format":"double","description":"Frequency penalty for LLM requests."},"max_tokens":{"type":"integer","description":"Maximum tokens for completion."},"stream":{"type":"boolean","default":false,"description":"Whether the response was streamed."}},"required":["trace_unique_id","span_unique_id"],"title":"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0Items"},"TracesCreateTraceLegacyRequest0":{"type":"array","items":{"$ref":"#/components/schemas/ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf0Items"},"description":"Array of span objects to ingest as traces.","title":"TracesCreateTraceLegacyRequest0"},"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItemsLogType":{"type":"string","enum":["chat","completion","response","embedding","speech","transcription","workflow","agent","task","tool","guardrail","reranker","other"],"default":"chat","description":"Span type.","title":"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItemsLogType"},"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItemsUsage":{"type":"object","properties":{},"description":"Token usage.","title":"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItemsUsage"},"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItemsStatus":{"type":"string","enum":["success","error"],"title":"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItemsStatus"},"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItemsMetadata":{"type":"object","properties":{},"description":"Arbitrary key-value pairs.","title":"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItemsMetadata"},"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItemsRespanParams":{"type":"object","properties":{},"description":"Additional Respan parameters (e.g. `has_webhook`, `environment`).","title":"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItemsRespanParams"},"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItems":{"type":"object","properties":{"trace_unique_id":{"type":"string","description":"Trace ID linking all spans."},"span_unique_id":{"type":"string","description":"Unique ID for this span."},"span_parent_id":{"type":["string","null"],"description":"Parent span ID. `null` for root spans."},"span_name":{"type":"string","description":"Name of this span."},"span_workflow_name":{"type":"string","description":"Workflow name."},"log_type":{"$ref":"#/components/schemas/ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItemsLogType","description":"Span type."},"input":{"description":"Input to the model."},"output":{"description":"Output from the model."},"model":{"type":"string","description":"Model used."},"usage":{"$ref":"#/components/schemas/ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItemsUsage","description":"Token usage."},"cost":{"type":"number","format":"double","description":"Cost in USD."},"latency":{"type":"number","format":"double","description":"Latency in seconds."},"status":{"$ref":"#/components/schemas/ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItemsStatus"},"timestamp":{"type":"string","format":"date-time","description":"When completed (ISO 8601)."},"start_time":{"type":"string","format":"date-time","description":"When started (ISO 8601)."},"customer_identifier":{"type":"string","description":"End user identifier."},"metadata":{"$ref":"#/components/schemas/ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItemsMetadata","description":"Arbitrary key-value pairs."},"span_path":{"type":"string","description":"Nested path within the workflow."},"encoding_format":{"type":"string","description":"Embedding encoding format for embedding spans."},"provider_id":{"type":"string","description":"LLM or service provider ID."},"prompt_tokens":{"type":"integer","description":"Number of prompt tokens used."},"completion_tokens":{"type":"integer","description":"Number of completion tokens used."},"warnings":{"type":"string","description":"Warnings captured during span execution."},"disable_log":{"type":"boolean","default":false,"description":"Set `true` to disable logging for this span."},"disable_fallback":{"type":"boolean","default":false,"description":"Disable fallback behavior for this span."},"respan_params":{"$ref":"#/components/schemas/ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItemsRespanParams","description":"Additional Respan parameters (e.g. `has_webhook`, `environment`)."},"temperature":{"type":"number","format":"double","description":"LLM temperature (0-2)."},"presence_penalty":{"type":"number","format":"double","description":"Presence penalty for LLM requests."},"frequency_penalty":{"type":"number","format":"double","description":"Frequency penalty for LLM requests."},"max_tokens":{"type":"integer","description":"Maximum tokens for completion."},"stream":{"type":"boolean","default":false,"description":"Whether the response was streamed."}},"required":["trace_unique_id","span_unique_id"],"title":"ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItems"},"TracesCreateTraceLegacyRequest1":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ApiV1TracesIngestPostRequestBodyContentApplicationJsonSchemaOneOf1DataItems"},"description":"Array of span objects to ingest as traces."}},"required":["data"],"description":"Wrapper object accepted by the legacy integration endpoint.","title":"TracesCreateTraceLegacyRequest1"},"Traces_createTraceLegacy_Request":{"oneOf":[{"$ref":"#/components/schemas/TracesCreateTraceLegacyRequest0"},{"$ref":"#/components/schemas/TracesCreateTraceLegacyRequest1"}],"title":"Traces_createTraceLegacy_Request"},"Traces_createTraceLegacy_Response_200":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable ingest summary."}},"required":["message"],"title":"Traces_createTraceLegacy_Response_200"},"CreateTraceLegacyRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"title":"CreateTraceLegacyRequestBadRequestError"},"CreateTraceLegacyRequestInternalServerError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateTraceLegacyRequestInternalServerError"},"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsResourceAttributesItemsValue":{"type":"object","properties":{},"description":"OTLP typed value. Use `stringValue`, `intValue`, `doubleValue`, `boolValue`, `arrayValue`, or `kvlistValue`.","title":"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsResourceAttributesItemsValue"},"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsResourceAttributesItems":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsResourceAttributesItemsValue","description":"OTLP typed value. Use `stringValue`, `intValue`, `doubleValue`, `boolValue`, `arrayValue`, or `kvlistValue`."}},"title":"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsResourceAttributesItems"},"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsResource":{"type":"object","properties":{"attributes":{"type":"array","items":{"$ref":"#/components/schemas/ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsResourceAttributesItems"},"description":"Key-value attributes identifying the resource."}},"description":"Resource metadata. Set `service.name` attribute to identify your application.","title":"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsResource"},"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsScope":{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"string"}},"description":"Instrumentation scope (library name and version).","title":"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsScope"},"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItemsStatusCode":{"type":"string","enum":["1","2"],"description":"`1` = OK, `2` = ERROR.","title":"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItemsStatusCode"},"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItemsStatus":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItemsStatusCode","description":"`1` = OK, `2` = ERROR."},"message":{"type":"string","description":"Error description (when code=2)."}},"description":"Span status.","title":"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItemsStatus"},"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItemsAttributesItemsValue":{"type":"object","properties":{},"title":"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItemsAttributesItemsValue"},"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItemsAttributesItems":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItemsAttributesItemsValue"}},"title":"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItemsAttributesItems"},"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItemsEventsItems":{"type":"object","properties":{},"title":"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItemsEventsItems"},"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItems":{"type":"object","properties":{"traceId":{"type":"string","description":"Hex-encoded trace ID (32 hex chars)."},"spanId":{"type":"string","description":"Hex-encoded span ID (16 hex chars)."},"parentSpanId":{"type":"string","description":"Parent span ID. Empty for root spans."},"name":{"type":"string","description":"Span operation name."},"startTimeUnixNano":{"type":"string","description":"Start time as nanoseconds since Unix epoch."},"endTimeUnixNano":{"type":"string","description":"End time as nanoseconds since Unix epoch."},"status":{"$ref":"#/components/schemas/ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItemsStatus","description":"Span status."},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItemsAttributesItems"},"description":"Span attributes as OTLP key-value pairs. Values use OTLP typed wrappers: `stringValue`, `intValue`, `doubleValue`, `boolValue`, `arrayValue`, or `kvlistValue`.\n\n**Trace shape:** use `traceloop.span.kind` (`workflow`, `task`, `tool`, `chat`, etc.) to classify spans, and `traceloop.workflow.name` to make the workflow name searchable. For chat/completion child spans, include `llm.request.type` (`chat` or `completion`) so model, messages, and token fields are promoted.\n\n**LLM fields:** `gen_ai.request.model`, `gen_ai.response.model`, `gen_ai.usage.prompt_tokens`, `gen_ai.usage.completion_tokens`, `gen_ai.usage.total_tokens`, `gen_ai.prompt.{N}.role`, `gen_ai.prompt.{N}.content`, `gen_ai.completion.{N}.role`, `gen_ai.completion.{N}.content`.\n\n**Respan fields:** `respan.customer_params.customer_identifier`, `respan.customer_params.email`, `respan.customer_params.name`, `respan.threads.thread_identifier`, `respan.trace.trace_group_identifier`, and `respan.metadata.<key>` for custom metadata.\n\nAll other attributes are stored in metadata and queryable via metadata filters."},"events":{"type":"array","items":{"$ref":"#/components/schemas/ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItemsEventsItems"},"description":"Span events (e.g. exceptions). Each has `name`, `timeUnixNano`, and `attributes`."}},"required":["traceId","spanId","name","startTimeUnixNano","endTimeUnixNano"],"title":"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItems"},"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItems":{"type":"object","properties":{"scope":{"$ref":"#/components/schemas/ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsScope","description":"Instrumentation scope (library name and version)."},"spans":{"type":"array","items":{"$ref":"#/components/schemas/ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItemsSpansItems"},"description":"Array of span objects."}},"title":"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItems"},"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItems":{"type":"object","properties":{"resource":{"$ref":"#/components/schemas/ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsResource","description":"Resource metadata. Set `service.name` attribute to identify your application."},"scopeSpans":{"type":"array","items":{"$ref":"#/components/schemas/ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItemsScopeSpansItems"},"description":"Array of instrumentation scope spans."}},"title":"ApiV2TracesPostRequestBodyContentApplicationJsonSchemaResourceSpansItems"},"ApiV2TracesPostResponsesContentApplicationJsonSchemaPartialSuccess":{"type":"object","properties":{"rejectedSpans":{"type":"integer","description":"Number of spans that failed to ingest."},"errorMessage":{"type":"string","description":"Error description (empty on success)."}},"title":"ApiV2TracesPostResponsesContentApplicationJsonSchemaPartialSuccess"},"Traces_createTrace_Response_200":{"type":"object","properties":{"partialSuccess":{"$ref":"#/components/schemas/ApiV2TracesPostResponsesContentApplicationJsonSchemaPartialSuccess"}},"title":"Traces_createTrace_Response_200"},"CreateTraceRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateTraceRequestBadRequestError"},"CreateTraceRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateTraceRequestUnauthorizedError"},"ApiLogThreadsPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{"thread_identifier":{"$ref":"#/components/schemas/FilterValue"},"customer_identifier":{"$ref":"#/components/schemas/FilterValue"},"organization_key_id":{"$ref":"#/components/schemas/FilterValue"}},"description":"Filter criteria. See [Filters API Reference](/docs/apis/reference/filters-api-reference).","title":"ApiLogThreadsPostRequestBodyContentApplicationJsonSchemaFilters"},"ApiLogThreadsPostResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"thread_identifier":{"type":"string","description":"Thread ID."},"environment":{"type":"string","description":"Environment."},"log_count":{"type":"integer","description":"Number of spans in this thread."}},"title":"ApiLogThreadsPostResponsesContentApplicationJsonSchemaResultsItems"},"Threads_listThreads_Response_200":{"type":"object","properties":{"count":{"type":"integer","description":"Total matching threads."},"next":{"type":["string","null"],"description":"Next page URL."},"previous":{"type":["string","null"],"description":"Previous page URL."},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiLogThreadsPostResponsesContentApplicationJsonSchemaResultsItems"}}},"title":"Threads_listThreads_Response_200"},"ListThreadsRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListThreadsRequestUnauthorizedError"},"ListThreadsRequestContentTooLargeError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"ListThreadsRequestContentTooLargeError"},"ApiUsersListPostParametersEnvironment":{"type":"string","enum":["prod","test"],"title":"ApiUsersListPostParametersEnvironment"},"ApiUsersListPostResponsesContentApplicationJsonSchemaResultsItemsEnvironment":{"type":"string","enum":["prod","test"],"description":"Customer environment.","title":"ApiUsersListPostResponsesContentApplicationJsonSchemaResultsItemsEnvironment"},"ApiUsersListPostResponsesContentApplicationJsonSchemaResultsItemsBudgetDuration":{"type":"string","enum":["daily","weekly","monthly"],"description":"Budget renewal period.","title":"ApiUsersListPostResponsesContentApplicationJsonSchemaResultsItemsBudgetDuration"},"ApiUsersListPostResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string","description":"Synthetic customer ID used by list responses."},"customer_identifier":{"type":"string","description":"Your unique identifier for the customer."},"unique_organization_id":{"type":"string","description":"Organization unique ID."},"environment":{"$ref":"#/components/schemas/ApiUsersListPostResponsesContentApplicationJsonSchemaResultsItemsEnvironment","description":"Customer environment."},"name":{"type":["string","null"],"description":"Customer display name."},"email":{"type":["string","null"],"description":"Customer email address."},"first_seen":{"type":"string","format":"date-time","description":"When the customer was first observed."},"last_active_timeframe":{"type":"string","format":"date-time","description":"Most recent activity within the selected timeframe."},"active_days":{"type":"integer","description":"Number of active days in the selected timeframe."},"number_of_requests":{"type":"integer","description":"Total requests made by this customer."},"total_requests":{"type":"integer","description":"Alias of `number_of_requests` for backward compatibility."},"total_tokens":{"type":"integer","description":"Total tokens used by this customer."},"tokens":{"type":"integer","description":"Alias of `total_tokens` for backward compatibility."},"total_cost":{"type":"number","format":"double","description":"Total cost in USD."},"cost":{"type":"number","format":"double","description":"Alias of `total_cost` for backward compatibility."},"average_latency":{"type":["number","null"],"format":"double","description":"Average latency in seconds."},"average_ttft":{"type":["number","null"],"format":"double","description":"Average time to first token in seconds."},"average_monthly_cost":{"type":"number","format":"double","description":"Estimated average monthly cost based on observed activity."},"period_budget":{"type":["number","null"],"format":"double","description":"Current period budget in USD, when configured."},"budget_duration":{"$ref":"#/components/schemas/ApiUsersListPostResponsesContentApplicationJsonSchemaResultsItemsBudgetDuration","description":"Budget renewal period."},"total_budget":{"type":["number","null"],"format":"double","description":"Lifetime spending budget in USD, when configured."}},"title":"ApiUsersListPostResponsesContentApplicationJsonSchemaResultsItems"},"Users_listCustomers_Response_200":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of matching customers."},"next":{"type":["string","null"],"description":"Next page URL."},"previous":{"type":["string","null"],"description":"Previous page URL."},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiUsersListPostResponsesContentApplicationJsonSchemaResultsItems"},"description":"Customers for the current page."}},"required":["count","results"],"title":"Users_listCustomers_Response_200"},"ListCustomersRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"ListCustomersRequestBadRequestError"},"ListCustomersRequestContentTooLargeError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"ListCustomersRequestContentTooLargeError"},"ListCustomersRequestTooManyRequestsError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"ListCustomersRequestTooManyRequestsError"},"ListCustomersRequestInternalServerError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"ListCustomersRequestInternalServerError"},"ApiUsersCustomerIdentifierGetParametersEnvironment":{"type":"string","enum":["prod","test"],"title":"ApiUsersCustomerIdentifierGetParametersEnvironment"},"ApiUsersCustomerIdentifierGetResponsesContentApplicationJsonSchemaEnvironment":{"type":"string","enum":["prod","test"],"description":"Customer environment.","title":"ApiUsersCustomerIdentifierGetResponsesContentApplicationJsonSchemaEnvironment"},"ApiUsersCustomerIdentifierGetResponsesContentApplicationJsonSchemaBudgetDuration":{"type":"string","enum":["daily","weekly","monthly"],"description":"Budget renewal period.","title":"ApiUsersCustomerIdentifierGetResponsesContentApplicationJsonSchemaBudgetDuration"},"Users_retrieveUser_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Customer identifier used by the detail serializer."},"name":{"type":["string","null"],"description":"Customer display name."},"email":{"type":["string","null"],"description":"Customer email address."},"customer_identifier":{"type":"string","description":"Your unique identifier for the customer."},"environment":{"$ref":"#/components/schemas/ApiUsersCustomerIdentifierGetResponsesContentApplicationJsonSchemaEnvironment","description":"Customer environment."},"total_budget":{"type":["number","null"],"format":"double","description":"Lifetime spending budget in USD."},"period_budget":{"type":["number","null"],"format":"double","description":"Current period budget in USD."},"organization_name":{"type":["string","null"],"description":"Owning organization name."},"total_period_usage":{"type":"number","format":"double","description":"Usage in the current budget period in USD."},"period_start":{"type":"string","format":"date-time","description":"Start of the current budget period."},"period_end":{"type":["string","null"],"format":"date-time","description":"End of the current budget period."},"budget_duration":{"$ref":"#/components/schemas/ApiUsersCustomerIdentifierGetResponsesContentApplicationJsonSchemaBudgetDuration","description":"Budget renewal period."},"updated_at":{"type":"string","format":"date-time","description":"Last update timestamp."}},"title":"Users_retrieveUser_Response_200"},"RetrieveUserRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"RetrieveUserRequestNotFoundError"},"RetrieveUserRequestTooManyRequestsError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"RetrieveUserRequestTooManyRequestsError"},"RetrieveUserRequestInternalServerError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"RetrieveUserRequestInternalServerError"},"ApiUsersCustomerIdentifierPatchParametersEnvironment":{"type":"string","enum":["prod","test"],"title":"ApiUsersCustomerIdentifierPatchParametersEnvironment"},"ApiUsersCustomerIdentifierPatchRequestBodyContentApplicationJsonSchemaMetadata":{"type":"object","properties":{},"description":"Custom key-value metadata.","title":"ApiUsersCustomerIdentifierPatchRequestBodyContentApplicationJsonSchemaMetadata"},"ApiUsersCustomerIdentifierPatchRequestBodyContentApplicationJsonSchemaBudgetDuration":{"type":"string","enum":["daily","weekly","monthly"],"description":"Budget renewal period.","title":"ApiUsersCustomerIdentifierPatchRequestBodyContentApplicationJsonSchemaBudgetDuration"},"ApiUsersCustomerIdentifierPatchResponsesContentApplicationJsonSchemaEnvironment":{"type":"string","enum":["prod","test"],"description":"Customer environment.","title":"ApiUsersCustomerIdentifierPatchResponsesContentApplicationJsonSchemaEnvironment"},"ApiUsersCustomerIdentifierPatchResponsesContentApplicationJsonSchemaBudgetDuration":{"type":"string","enum":["daily","weekly","monthly"],"description":"Budget renewal period.","title":"ApiUsersCustomerIdentifierPatchResponsesContentApplicationJsonSchemaBudgetDuration"},"Users_updateUser_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Customer identifier used by the detail serializer."},"name":{"type":["string","null"],"description":"Customer display name."},"email":{"type":["string","null"],"description":"Customer email address."},"customer_identifier":{"type":"string","description":"Your unique identifier for the customer."},"environment":{"$ref":"#/components/schemas/ApiUsersCustomerIdentifierPatchResponsesContentApplicationJsonSchemaEnvironment","description":"Customer environment."},"total_budget":{"type":["number","null"],"format":"double","description":"Lifetime spending budget in USD."},"period_budget":{"type":["number","null"],"format":"double","description":"Current period budget in USD."},"organization_name":{"type":["string","null"],"description":"Owning organization name."},"total_period_usage":{"type":"number","format":"double","description":"Usage in the current budget period in USD."},"period_start":{"type":"string","format":"date-time","description":"Start of the current budget period."},"period_end":{"type":["string","null"],"format":"date-time","description":"End of the current budget period."},"budget_duration":{"$ref":"#/components/schemas/ApiUsersCustomerIdentifierPatchResponsesContentApplicationJsonSchemaBudgetDuration","description":"Budget renewal period."},"updated_at":{"type":"string","format":"date-time","description":"Last update timestamp."}},"title":"Users_updateUser_Response_200"},"ApiUsersCustomerIdentifierPatchResponsesContentApplicationJsonSchema":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"title":"ApiUsersCustomerIdentifierPatchResponsesContentApplicationJsonSchema"},"UpdateUserRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"UpdateUserRequestNotFoundError"},"UpdateUserRequestTooManyRequestsError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"UpdateUserRequestTooManyRequestsError"},"UpdateUserRequestInternalServerError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"UpdateUserRequestInternalServerError"},"ApiUsersCustomerIdentifierDeleteParametersEnvironment":{"type":"string","enum":["prod","test"],"title":"ApiUsersCustomerIdentifierDeleteParametersEnvironment"},"DeleteUserRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"DeleteUserRequestNotFoundError"},"DeleteUserRequestTooManyRequestsError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"DeleteUserRequestTooManyRequestsError"},"DeleteUserRequestInternalServerError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"DeleteUserRequestInternalServerError"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsRole":{"type":"string","enum":["system","user","assistant","tool"],"description":"Message role.","title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsRole"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsContentOneOf1Items":{"type":"object","properties":{},"title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsContentOneOf1Items"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsContent1":{"type":"array","items":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsContentOneOf1Items"},"title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsContent1"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsContent":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsContent1"}],"description":"Message content. Use a string for text-only requests, or an array of content parts for multimodal requests.","title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsContent"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItems":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsRole","description":"Message role."},"content":{"$ref":"#/components/schemas/ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsContent","description":"Message content. Use a string for text-only requests, or an array of content parts for multimodal requests."},"name":{"type":"string","description":"Optional participant name."},"tool_call_id":{"type":"string","description":"Required for tool response messages."}},"required":["role","content"],"title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItems"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaToolsItems":{"type":"object","properties":{},"title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaToolsItems"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaToolChoice":{"type":"object","properties":{},"description":"Controls tool selection. `\"none\"` = no tools, `\"auto\"` = model decides, or specify a tool object.","title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaToolChoice"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaLogitBias":{"type":"object","properties":{},"description":"Used to modify the probability of tokens appearing in the response","title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaLogitBias"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaResponseFormat":{"type":"object","properties":{},"description":"Output format. Set `{\"type\": \"json_schema\", \"json_schema\": {...}}` for structured output, or `{\"type\": \"json_object\"}` for JSON mode.","title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaResponseFormat"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaLoadBalanceGroup":{"type":"object","properties":{},"description":"Load balance group selection. Use `{\"group_id\": \"...\"}` to route through a configured group.","title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaLoadBalanceGroup"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaCustomerCredentials":{"type":"object","properties":{},"description":"Per-customer LLM provider credentials. Keys are provider names, values are API keys.","title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaCustomerCredentials"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaCredentialOverride":{"type":"object","properties":{},"description":"One-off credential overrides per provider. Overrides uploaded provider keys for this request only.","title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaCredentialOverride"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaCacheOptions":{"type":"object","properties":{"cache_by_customer":{"type":"boolean","default":false,"description":"Partition cache entries by customer identifier."},"is_cached_by_model":{"type":"boolean","default":false,"description":"Partition cache entries by model name."},"omit_log":{"type":"boolean","default":false,"description":"Suppress log creation for cache hits."}},"description":"Cache behavior options. Properties: `cache_by_customer`, `is_cached_by_model`, `omit_log`.","title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaCacheOptions"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaPrompt":{"type":"object","properties":{},"description":"Prompt template config. Properties: `prompt_id` (required), `variables` (template variables), `version` (number, or `\"latest\"` for draft), `echo` (return rendered prompt), `override` (use override_params), `override_params` (OpenAI params to override), `schema_version` (`1` = legacy, `2` = prompt config wins). See [Prompt management](/docs/documentation/features/prompt-management/advanced).","title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaPrompt"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaRetryParams":{"type":"object","properties":{},"description":"Retry config. Properties: `retry_enabled` (boolean, required), `num_retries` (number), `retry_after` (seconds to wait).","title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaRetryParams"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaModelNameMap":{"type":"object","properties":{},"description":"Azure deployment name mapping. Maps your custom Azure deployment names to standard model names.","title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaModelNameMap"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMetadata":{"type":"object","properties":{},"description":"Custom key-value metadata attached to the span.","title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaMetadata"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaCustomerParams":{"type":"object","properties":{},"description":"Extended customer info. Properties: `customer_identifier` (required), `group_identifier`, `name`, `email`, `period_budget`, `budget_duration` (`daily`/`weekly`/`monthly`), `total_budget`, `markup_percentage`.","title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaCustomerParams"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaLoadBalanceModelsItems":{"type":"object","properties":{},"title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaLoadBalanceModelsItems"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchema":{"type":"object","properties":{},"description":"Typed metadata preserving native types (numbers, booleans, nested objects). Unlike `metadata` which coerces to strings.","title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchema"},"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaRespanParams":{"type":"object","properties":{},"description":"Namespaced container for all Respan parameters. Alternative to passing them at top level.","title":"ApiChatCompletionsPostRequestBodyContentApplicationJsonSchemaRespanParams"},"ApiChatCompletionsPostResponsesContentApplicationJsonSchemaChoicesItemsMessage":{"type":"object","properties":{"role":{"type":"string"},"content":{"type":"string"}},"title":"ApiChatCompletionsPostResponsesContentApplicationJsonSchemaChoicesItemsMessage"},"ApiChatCompletionsPostResponsesContentApplicationJsonSchemaChoicesItems":{"type":"object","properties":{"index":{"type":"integer"},"message":{"$ref":"#/components/schemas/ApiChatCompletionsPostResponsesContentApplicationJsonSchemaChoicesItemsMessage"},"finish_reason":{"type":"string"}},"title":"ApiChatCompletionsPostResponsesContentApplicationJsonSchemaChoicesItems"},"ApiChatCompletionsPostResponsesContentApplicationJsonSchemaUsage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}},"title":"ApiChatCompletionsPostResponsesContentApplicationJsonSchemaUsage"},"Gateway_createChatCompletion_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Chat completion ID."},"object":{"type":"string"},"created":{"type":"integer","description":"Unix timestamp for when the completion was created."},"model":{"type":"string","description":"Model used for the completion."},"choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiChatCompletionsPostResponsesContentApplicationJsonSchemaChoicesItems"}},"usage":{"$ref":"#/components/schemas/ApiChatCompletionsPostResponsesContentApplicationJsonSchemaUsage"}},"required":["id","object","created","model","choices"],"title":"Gateway_createChatCompletion_Response_200"},"ApiChatCompletionsPostResponsesContentApplicationJsonSchemaError":{"type":"object","properties":{"message":{"type":"string"},"type":{"type":"string"},"param":{"oneOf":[{"description":"Any type"},{"type":"null"}]},"code":{"oneOf":[{"description":"Any type"},{"type":"null"}]}},"required":["message","type"],"title":"ApiChatCompletionsPostResponsesContentApplicationJsonSchemaError"},"CreateChatCompletionRequestBadRequestError":{"type":"object","properties":{"error":{"$ref":"#/components/schemas/ApiChatCompletionsPostResponsesContentApplicationJsonSchemaError"}},"required":["error"],"title":"CreateChatCompletionRequestBadRequestError"},"CreateChatCompletionRequestFailedDependencyError":{"type":"object","properties":{"error":{"$ref":"#/components/schemas/ApiChatCompletionsPostResponsesContentApplicationJsonSchemaError"}},"required":["error"],"title":"CreateChatCompletionRequestFailedDependencyError"},"ApiResponsesPostParametersFormat":{"type":"string","enum":["json","txt"],"title":"ApiResponsesPostParametersFormat"},"ApiResponsesPostParametersXRespanRouteProvider":{"type":"string","enum":["openai","azure","perplexity"],"title":"ApiResponsesPostParametersXRespanRouteProvider"},"ApiResponsesPostRequestBodyContentApplicationJsonSchemaInput":{"oneOf":[{"type":"string"},{"type":"array","items":{"description":"Any type"}}],"description":"Text or structured input for the response.","title":"ApiResponsesPostRequestBodyContentApplicationJsonSchemaInput"},"ApiResponsesPostRequestBodyContentApplicationJsonSchemaResponseFormat":{"type":"object","properties":{},"description":"Perplexity Agent API structured response configuration.","title":"ApiResponsesPostRequestBodyContentApplicationJsonSchemaResponseFormat"},"ApiResponsesPostRequestBodyContentApplicationJsonSchemaRespanParamsCredentialOverride":{"type":"object","properties":{"api_key":{"type":"string","format":"password","description":"API key for the selected upstream provider, not your Respan API key. Enter the Respan key in the Authorization control."},"api_base":{"type":"string","format":"uri","description":"Azure OpenAI resource endpoint, for example https://YOUR_RESOURCE.openai.azure.com."},"api_version":{"type":"string","description":"Azure OpenAI API version. The Azure example prefills 2025-04-01-preview, which supports the Responses API."}},"title":"ApiResponsesPostRequestBodyContentApplicationJsonSchemaRespanParamsCredentialOverride"},"ApiResponsesPostRequestBodyContentApplicationJsonSchemaRespanParamsCacheOptions":{"type":"object","properties":{"cache_by_customer":{"type":"boolean"},"is_cached_by_model":{"type":"boolean"},"omit_log":{"type":"boolean"}},"title":"ApiResponsesPostRequestBodyContentApplicationJsonSchemaRespanParamsCacheOptions"},"ApiResponsesPostRequestBodyContentApplicationJsonSchemaRespanParams":{"type":"object","properties":{"credential_override":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiResponsesPostRequestBodyContentApplicationJsonSchemaRespanParamsCredentialOverride"},"description":"Request-scoped provider credentials. Named examples prefill the correct selector; keep that selector and replace only its credential values. OpenAI and Azure selectors exactly match model. Perplexity uses an empty-string selector because its credential is provider-scoped."},"cache_enabled":{"type":"boolean","description":"Enable response caching for this request."},"cache_ttl":{"type":"number","format":"double","description":"Cache lifetime in seconds."},"cache_options":{"$ref":"#/components/schemas/ApiResponsesPostRequestBodyContentApplicationJsonSchemaRespanParamsCacheOptions"},"customer_identifier":{"type":"string","description":"End-customer identifier used for logging and optional cache partitioning."}},"description":"Respan metadata, prompt configuration, customer identifiers, provider credentials, and other gateway parameters. route_provider_override here cannot activate the Perplexity route.","title":"ApiResponsesPostRequestBodyContentApplicationJsonSchemaRespanParams"},"ApiResponsesPostRequestBodyContentApplicationJsonSchemaCacheOptions":{"type":"object","properties":{"cache_by_customer":{"type":"boolean"},"is_cached_by_model":{"type":"boolean"},"omit_log":{"type":"boolean"}},"title":"ApiResponsesPostRequestBodyContentApplicationJsonSchemaCacheOptions"},"ApiPromptsListPostParametersSortBy":{"type":"string","enum":["-id","id","-current_version__updated_at","current_version__updated_at"],"default":"-id","title":"ApiPromptsListPostParametersSortBy"},"ApiPromptsListPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{"prompt_id":{"$ref":"#/components/schemas/FilterValue"},"prompt_slug":{"$ref":"#/components/schemas/FilterValue"},"name":{"$ref":"#/components/schemas/FilterValue"},"description":{"$ref":"#/components/schemas/FilterValue"},"starred":{"$ref":"#/components/schemas/FilterValue"},"tags":{"$ref":"#/components/schemas/FilterValue"},"created_at":{"$ref":"#/components/schemas/FilterValue"},"updated_at":{"$ref":"#/components/schemas/FilterValue"},"current_version__updated_at":{"$ref":"#/components/schemas/FilterValue"},"is_deleted":{"$ref":"#/components/schemas/FilterValue"}},"description":"Prompt filters. See [Filters API Reference](/docs/apis/reference/filters-api-reference) for operator syntax.","title":"ApiPromptsListPostRequestBodyContentApplicationJsonSchemaFilters"},"ApiPromptsListPostResponsesContentApplicationJsonSchemaResultsItemsTagsItems":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"color":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"title":"ApiPromptsListPostResponsesContentApplicationJsonSchemaResultsItemsTagsItems"},"ApiPromptsListPostResponsesContentApplicationJsonSchemaResultsItemsCurrentVersion":{"type":"object","properties":{"version":{"type":"integer"},"model":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}},"title":"ApiPromptsListPostResponsesContentApplicationJsonSchemaResultsItemsCurrentVersion"},"ApiPromptsListPostResponsesContentApplicationJsonSchemaResultsItemsLiveVersion":{"type":"object","properties":{"version":{"type":"integer"},"model":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}},"title":"ApiPromptsListPostResponsesContentApplicationJsonSchemaResultsItemsLiveVersion"},"ApiPromptsListPostResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"prompt_slug":{"type":["string","null"]},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiPromptsListPostResponsesContentApplicationJsonSchemaResultsItemsTagsItems"}},"current_version":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsListPostResponsesContentApplicationJsonSchemaResultsItemsCurrentVersion"},{"type":"null"}]},"live_version":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsListPostResponsesContentApplicationJsonSchemaResultsItemsLiveVersion"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"title":"ApiPromptsListPostResponsesContentApplicationJsonSchemaResultsItems"},"Prompts_listPrompts_Response_200":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of matching prompts."},"next":{"type":["string","null"],"description":"Next page URL."},"previous":{"type":["string","null"],"description":"Previous page URL."},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiPromptsListPostResponsesContentApplicationJsonSchemaResultsItems"}}},"title":"Prompts_listPrompts_Response_200"},"ApiPromptsPostResponsesContentApplicationJsonSchemaTagsItems":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"color":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"title":"ApiPromptsPostResponsesContentApplicationJsonSchemaTagsItems"},"ApiPromptsPostResponsesContentApplicationJsonSchemaCurrentVersion":{"type":"object","properties":{"version":{"type":"integer"},"model":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}},"title":"ApiPromptsPostResponsesContentApplicationJsonSchemaCurrentVersion"},"ApiPromptsPostResponsesContentApplicationJsonSchemaLiveVersion":{"type":"object","properties":{"version":{"type":"integer"},"model":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}},"title":"ApiPromptsPostResponsesContentApplicationJsonSchemaLiveVersion"},"Prompts_createPrompt_Response_201":{"type":"object","properties":{"id":{"type":"string","description":"The unique prompt identifier."},"name":{"type":"string"},"description":{"type":["string","null"]},"prompt_slug":{"type":["string","null"]},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiPromptsPostResponsesContentApplicationJsonSchemaTagsItems"}},"current_version":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPostResponsesContentApplicationJsonSchemaCurrentVersion"},{"type":"null"}]},"live_version":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPostResponsesContentApplicationJsonSchemaLiveVersion"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"title":"Prompts_createPrompt_Response_201"},"CreatePromptRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreatePromptRequestBadRequestError"},"PromptBulkUpdateBody":{"type":"object","properties":{"model":{"type":"string","maxLength":70,"description":"Primary model for the draft."},"stream":{"type":"boolean","description":"Whether gateway responses using this prompt should stream."},"temperature":{"type":["number","null"],"format":"double","description":"Sampling temperature."},"max_tokens":{"type":["integer","null"],"description":"Maximum output tokens."},"top_p":{"type":["number","null"],"format":"double","description":"Nucleus-sampling probability mass."},"frequency_penalty":{"type":["number","null"],"format":"double","description":"Frequency penalty."},"presence_penalty":{"type":["number","null"],"format":"double","description":"Presence penalty."},"reasoning_effort":{"type":["string","null"],"maxLength":70,"description":"Provider-specific reasoning effort."},"verbosity":{"type":["string","null"],"maxLength":50,"description":"Provider-specific output verbosity."},"thinking":{"description":"Provider-specific thinking configuration. Any JSON value is accepted."},"seed":{"type":["integer","null"],"description":"Optional deterministic sampling seed."},"fallback_models":{"type":["array","null"],"items":{"type":"string","maxLength":70},"description":"Fallback model identifiers."},"load_balance_models":{"type":["array","null"],"items":{"description":"Any type"},"description":"Load-balancing model configurations."},"tools":{"type":["array","null"],"items":{"description":"Any type"},"description":"Tool definitions made available to the model."},"tool_choice":{"description":"Tool-selection configuration. Any JSON value is accepted."},"response_format":{"description":"Structured response-format configuration. Any JSON value is accepted."},"json_schema":{"description":"JSON schema for structured output. Any JSON value is accepted."},"is_enforcing_response_format":{"type":"boolean","description":"Whether to enforce the configured response format."}},"description":"Non-empty model configuration changes for the latest draft. Prompt content fields are not accepted.","title":"PromptBulkUpdateBody"},"PromptBulkCommitBody":{"type":"object","properties":{"description":{"type":"string","description":"Optional commit message. Blank strings are accepted."}},"description":"Optional commit metadata.","title":"PromptBulkCommitBody"},"PromptBulkRequestItemDiscriminatorMappingDeployBody":{"type":"object","properties":{},"description":"If provided, this object must be empty.","title":"PromptBulkRequestItemDiscriminatorMappingDeployBody"},"PromptBulkRequestItem":{"oneOf":[{"type":"object","properties":{"action":{"type":"string","enum":["update"],"description":"Discriminator value: update"},"prompt_id":{"type":"string","minLength":1,"maxLength":70,"description":"Exact prompt ID to mutate."},"body":{"$ref":"#/components/schemas/PromptBulkUpdateBody"}},"required":["action","prompt_id","body"],"description":"Update model configuration on the prompt's latest draft."},{"type":"object","properties":{"action":{"type":"string","enum":["commit"],"description":"Discriminator value: commit"},"prompt_id":{"type":"string","minLength":1,"maxLength":70,"description":"Exact prompt ID to mutate."},"body":{"$ref":"#/components/schemas/PromptBulkCommitBody"}},"required":["action","prompt_id"],"description":"Commit the prompt's latest draft."},{"type":"object","properties":{"action":{"type":"string","enum":["deploy"],"description":"Discriminator value: deploy"},"prompt_id":{"type":"string","minLength":1,"maxLength":70,"description":"Exact prompt ID to mutate."},"body":{"$ref":"#/components/schemas/PromptBulkRequestItemDiscriminatorMappingDeployBody","description":"If provided, this object must be empty."}},"required":["action","prompt_id"],"description":"Deploy the prompt's latest committed version."}],"discriminator":{"propertyName":"action"},"description":"One action in a prompt bulk request.","title":"PromptBulkRequestItem"},"PromptBulkRequest":{"type":"object","properties":{"requests":{"type":"array","items":{"$ref":"#/components/schemas/PromptBulkRequestItem"},"description":"Prompt operations. Error indices refer to this zero-based array."}},"required":["requests"],"description":"Ordered prompt operations to process.","title":"PromptBulkRequest"},"ProcessPromptBulkOperationsRequestBadRequestError1":{"type":"object","properties":{"requests":{"type":"array","items":{"description":"Any type"},"description":"DRF validation errors for the request array."}},"required":["requests"],"title":"ProcessPromptBulkOperationsRequestBadRequestError1"},"ProcessPromptBulkOperationsRequestBadRequestError":{"oneOf":[{"$ref":"#/components/schemas/BulkOperationResponse"},{"$ref":"#/components/schemas/ProcessPromptBulkOperationsRequestBadRequestError1"}],"title":"ProcessPromptBulkOperationsRequestBadRequestError"},"ProcessPromptBulkOperationsRequestUnprocessableEntityError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"ProcessPromptBulkOperationsRequestUnprocessableEntityError"},"ProcessPromptBulkOperationsRequestTooManyRequestsError":{"type":"object","properties":{"detail":{"type":"string"},"retry_after":{"type":"integer","minimum":0,"description":"Seconds to wait before retrying, when provided."}},"required":["detail"],"title":"ProcessPromptBulkOperationsRequestTooManyRequestsError"},"ApiPromptsPromptIdGetResponsesContentApplicationJsonSchemaTagsItems":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"color":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"title":"ApiPromptsPromptIdGetResponsesContentApplicationJsonSchemaTagsItems"},"ApiPromptsPromptIdGetResponsesContentApplicationJsonSchemaCurrentVersion":{"type":"object","properties":{"version":{"type":"integer"},"model":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}},"title":"ApiPromptsPromptIdGetResponsesContentApplicationJsonSchemaCurrentVersion"},"ApiPromptsPromptIdGetResponsesContentApplicationJsonSchemaLiveVersion":{"type":"object","properties":{"version":{"type":"integer"},"model":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}},"title":"ApiPromptsPromptIdGetResponsesContentApplicationJsonSchemaLiveVersion"},"Prompts_retrievePrompt_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"The unique prompt identifier."},"name":{"type":"string"},"description":{"type":["string","null"]},"prompt_slug":{"type":["string","null"]},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiPromptsPromptIdGetResponsesContentApplicationJsonSchemaTagsItems"}},"current_version":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdGetResponsesContentApplicationJsonSchemaCurrentVersion"},{"type":"null"}]},"live_version":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdGetResponsesContentApplicationJsonSchemaLiveVersion"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"title":"Prompts_retrievePrompt_Response_200"},"RetrievePromptRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrievePromptRequestNotFoundError"},"Prompts_updatePrompt_Response_200":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"updated_at":{"type":"string","format":"date-time"}},"title":"Prompts_updatePrompt_Response_200"},"UpdatePromptRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdatePromptRequestBadRequestError"},"UpdatePromptRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdatePromptRequestNotFoundError"},"DeletePromptRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeletePromptRequestNotFoundError"},"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsContent":{"oneOf":[{"type":"string"},{"type":"array","items":{"description":"Any type"}}],"title":"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsContent"},"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaMessagesItems":{"type":"object","properties":{"role":{"type":"string"},"content":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsContent"}},"required":["role"],"title":"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaMessagesItems"},"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaThinking":{"type":"object","properties":{},"description":"Optional provider-specific reasoning configuration.","title":"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaThinking"},"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaVariables":{"type":"object","properties":{},"description":"Template variables and their default values.","title":"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaVariables"},"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaLoadBalanceModelsItems":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaLoadBalanceModelsItems"},"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaToolsItems":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaToolsItems"},"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaToolChoice":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":{"description":"Any type"}}],"title":"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaToolChoice"},"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaResponseFormat":{"type":"object","properties":{},"description":"Structured output / response format configuration.","title":"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaResponseFormat"},"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaJsonSchema":{"type":"object","properties":{},"description":"JSON schema used for structured outputs when configured.","title":"ApiPromptsPromptIdVersionsPostRequestBodyContentApplicationJsonSchemaJsonSchema"},"ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaThinking":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaThinking"},"ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaVariables":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaVariables"},"ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaLoadBalanceModelsItems":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaLoadBalanceModelsItems"},"ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaToolsItems":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaToolsItems"},"ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaToolChoice":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":{"description":"Any type"}}],"title":"ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaToolChoice"},"ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaResponseFormat":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaResponseFormat"},"ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaJsonSchema":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaJsonSchema"},"ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaEditedBy":{"type":"object","properties":{"id":{"type":"integer"},"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"}},"title":"ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaEditedBy"},"Prompts_createPromptVersion_Response_201":{"type":"object","properties":{"id":{"type":"string"},"prompt_version_id":{"type":"string"},"version":{"type":"integer"},"description":{"type":["string","null"]},"messages":{"type":"array","items":{"type":"object","additionalProperties":{"description":"Any type"}}},"thinking":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaThinking"},{"type":"null"}]},"model":{"type":"string"},"stream":{"type":"boolean"},"temperature":{"type":["number","null"],"format":"double"},"max_tokens":{"type":["integer","null"]},"top_p":{"type":["number","null"],"format":"double"},"frequency_penalty":{"type":["number","null"],"format":"double"},"presence_penalty":{"type":["number","null"],"format":"double"},"reasoning_effort":{"type":["string","null"]},"verbosity":{"type":["string","null"]},"seed":{"type":["integer","null"]},"variables":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaVariables"},"fallback_models":{"type":["array","null"],"items":{"type":"string"}},"load_balance_models":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaLoadBalanceModelsItems"}},"tools":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaToolsItems"}},"tool_choice":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaToolChoice"},"response_format":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaResponseFormat"},{"type":"null"}]},"json_schema":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaJsonSchema"},{"type":"null"}]},"is_enforcing_response_format":{"type":"boolean"},"readonly":{"type":"boolean"},"is_deployed":{"type":"boolean"},"edited_by":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsPostResponsesContentApplicationJsonSchemaEditedBy"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"title":"Prompts_createPromptVersion_Response_201"},"CreatePromptVersionRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreatePromptVersionRequestBadRequestError"},"CreatePromptVersionRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreatePromptVersionRequestNotFoundError"},"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsThinking":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsThinking"},"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsVariables":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsVariables"},"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsLoadBalanceModelsItems":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsLoadBalanceModelsItems"},"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsToolsItems":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsToolsItems"},"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsToolChoice":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":{"description":"Any type"}}],"title":"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsToolChoice"},"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsResponseFormat":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsResponseFormat"},"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsJsonSchema":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsJsonSchema"},"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsEditedBy":{"type":"object","properties":{"id":{"type":"integer"},"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"}},"title":"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsEditedBy"},"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string"},"prompt_version_id":{"type":"string"},"version":{"type":"integer"},"description":{"type":["string","null"]},"messages":{"type":"array","items":{"type":"object","additionalProperties":{"description":"Any type"}}},"thinking":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsThinking"},{"type":"null"}]},"model":{"type":"string"},"stream":{"type":"boolean"},"temperature":{"type":["number","null"],"format":"double"},"max_tokens":{"type":["integer","null"]},"top_p":{"type":["number","null"],"format":"double"},"frequency_penalty":{"type":["number","null"],"format":"double"},"presence_penalty":{"type":["number","null"],"format":"double"},"reasoning_effort":{"type":["string","null"]},"verbosity":{"type":["string","null"]},"seed":{"type":["integer","null"]},"variables":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsVariables"},"fallback_models":{"type":["array","null"],"items":{"type":"string"}},"load_balance_models":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsLoadBalanceModelsItems"}},"tools":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsToolsItems"}},"tool_choice":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsToolChoice"},"response_format":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsResponseFormat"},{"type":"null"}]},"json_schema":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsJsonSchema"},{"type":"null"}]},"is_enforcing_response_format":{"type":"boolean"},"readonly":{"type":"boolean"},"is_deployed":{"type":"boolean"},"edited_by":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsEditedBy"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"title":"ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItems"},"Prompts_listPromptVersions_Response_200":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of matching versions."},"next":{"type":["string","null"],"description":"Next page URL."},"previous":{"type":["string","null"],"description":"Previous page URL."},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsGetResponsesContentApplicationJsonSchemaResultsItems"}}},"title":"Prompts_listPromptVersions_Response_200"},"ListPromptVersionsRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListPromptVersionsRequestNotFoundError"},"ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaThinking":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaThinking"},"ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaVariables":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaVariables"},"ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaLoadBalanceModelsItems":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaLoadBalanceModelsItems"},"ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaToolsItems":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaToolsItems"},"ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaToolChoice":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":{"description":"Any type"}}],"title":"ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaToolChoice"},"ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaResponseFormat":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaResponseFormat"},"ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaJsonSchema":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaJsonSchema"},"ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaEditedBy":{"type":"object","properties":{"id":{"type":"integer"},"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"}},"title":"ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaEditedBy"},"Prompts_retrievePromptVersion_Response_200":{"type":"object","properties":{"id":{"type":"string"},"prompt_version_id":{"type":"string"},"version":{"type":"integer"},"description":{"type":["string","null"]},"messages":{"type":"array","items":{"type":"object","additionalProperties":{"description":"Any type"}}},"thinking":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaThinking"},{"type":"null"}]},"model":{"type":"string"},"stream":{"type":"boolean"},"temperature":{"type":["number","null"],"format":"double"},"max_tokens":{"type":["integer","null"]},"top_p":{"type":["number","null"],"format":"double"},"frequency_penalty":{"type":["number","null"],"format":"double"},"presence_penalty":{"type":["number","null"],"format":"double"},"reasoning_effort":{"type":["string","null"]},"verbosity":{"type":["string","null"]},"seed":{"type":["integer","null"]},"variables":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaVariables"},"fallback_models":{"type":["array","null"],"items":{"type":"string"}},"load_balance_models":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaLoadBalanceModelsItems"}},"tools":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaToolsItems"}},"tool_choice":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaToolChoice"},"response_format":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaResponseFormat"},{"type":"null"}]},"json_schema":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaJsonSchema"},{"type":"null"}]},"is_enforcing_response_format":{"type":"boolean"},"readonly":{"type":"boolean"},"is_deployed":{"type":"boolean"},"edited_by":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionGetResponsesContentApplicationJsonSchemaEditedBy"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"title":"Prompts_retrievePromptVersion_Response_200"},"RetrievePromptVersionRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrievePromptVersionRequestNotFoundError"},"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaMessagesItemsContent":{"oneOf":[{"type":"string"},{"type":"array","items":{"description":"Any type"}}],"title":"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaMessagesItemsContent"},"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaMessagesItems":{"type":"object","properties":{"role":{"type":"string"},"content":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaMessagesItemsContent"}},"required":["role"],"description":"Message requires role; content may be omitted, empty, null, or an array.","title":"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaMessagesItems"},"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaThinking":{"type":"object","properties":{},"description":"Optional provider-specific reasoning configuration.","title":"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaThinking"},"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaVariables":{"type":"object","properties":{},"description":"Template variables and their default values.","title":"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaVariables"},"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaLoadBalanceModelsItems":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaLoadBalanceModelsItems"},"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaToolsItems":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaToolsItems"},"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaToolChoice":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":{"description":"Any type"}}],"title":"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaToolChoice"},"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaResponseFormat":{"type":"object","properties":{},"description":"Structured output / response format configuration.","title":"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaResponseFormat"},"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaJsonSchema":{"type":"object","properties":{},"description":"JSON schema used for structured outputs when configured.","title":"ApiPromptsPromptIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaJsonSchema"},"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaMessagesItemsContent":{"oneOf":[{"type":"string"},{"type":"array","items":{"description":"Any type"}}],"title":"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaMessagesItemsContent"},"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaMessagesItems":{"type":"object","properties":{"role":{"type":"string"},"content":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaMessagesItemsContent"}},"required":["role"],"description":"Message requires role; content may be omitted, empty, null, or an array.","title":"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaMessagesItems"},"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaThinking":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaThinking"},"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaVariables":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaVariables"},"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaLoadBalanceModelsItems":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaLoadBalanceModelsItems"},"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaToolsItems":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaToolsItems"},"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaToolChoice":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":{"description":"Any type"}}],"title":"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaToolChoice"},"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaResponseFormat":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaResponseFormat"},"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaJsonSchema":{"type":"object","properties":{},"title":"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaJsonSchema"},"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaEditedBy":{"type":"object","properties":{"id":{"type":"integer"},"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"}},"title":"ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaEditedBy"},"Prompts_updatePromptVersion_Response_200":{"type":"object","properties":{"id":{"type":"string"},"prompt_version_id":{"type":"string"},"version":{"type":"integer"},"description":{"type":["string","null"]},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaMessagesItems"}},"thinking":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaThinking"},{"type":"null"}]},"model":{"type":"string"},"stream":{"type":"boolean"},"temperature":{"type":["number","null"],"format":"double"},"max_tokens":{"type":["integer","null"]},"top_p":{"type":["number","null"],"format":"double"},"frequency_penalty":{"type":["number","null"],"format":"double"},"presence_penalty":{"type":["number","null"],"format":"double"},"reasoning_effort":{"type":["string","null"]},"verbosity":{"type":["string","null"]},"seed":{"type":["integer","null"]},"variables":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaVariables"},"fallback_models":{"type":["array","null"],"items":{"type":"string"}},"load_balance_models":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaLoadBalanceModelsItems"}},"tools":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaToolsItems"}},"tool_choice":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaToolChoice"},"response_format":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaResponseFormat"},{"type":"null"}]},"json_schema":{"oneOf":[{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaJsonSchema"},{"type":"null"}]},"is_enforcing_response_format":{"type":"boolean"},"readonly":{"type":"boolean"},"is_deployed":{"type":"boolean"},"edited_by":{"$ref":"#/components/schemas/ApiPromptsPromptIdVersionsVersionPatchResponsesContentApplicationJsonSchemaEditedBy"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"title":"Prompts_updatePromptVersion_Response_200"},"UpdatePromptVersionRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdatePromptVersionRequestBadRequestError"},"UpdatePromptVersionRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdatePromptVersionRequestNotFoundError"},"DeletePromptVersionRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeletePromptVersionRequestBadRequestError"},"DeletePromptVersionRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeletePromptVersionRequestNotFoundError"},"ApiPromptsPromptIdCommitsPostResponsesContentApplicationJsonSchemaEditedBy":{"type":"object","properties":{"id":{"type":"integer"},"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"}},"title":"ApiPromptsPromptIdCommitsPostResponsesContentApplicationJsonSchemaEditedBy"},"Prompts_commitPromptVersion_Response_201":{"type":"object","properties":{"id":{"type":"string"},"prompt_version_id":{"type":"string"},"version":{"type":"integer"},"description":{"type":["string","null"]},"messages":{"type":"array","items":{"type":"object","additionalProperties":{"description":"Any type"}}},"model":{"type":"string"},"readonly":{"type":"boolean"},"is_deployed":{"type":"boolean"},"edited_by":{"$ref":"#/components/schemas/ApiPromptsPromptIdCommitsPostResponsesContentApplicationJsonSchemaEditedBy"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"title":"Prompts_commitPromptVersion_Response_201"},"CommitPromptVersionRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CommitPromptVersionRequestBadRequestError"},"CommitPromptVersionRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CommitPromptVersionRequestNotFoundError"},"ApiPromptsPromptIdDeploymentsPostResponsesContentApplicationJsonSchemaEditedBy":{"type":"object","properties":{"id":{"type":"integer"},"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"}},"title":"ApiPromptsPromptIdDeploymentsPostResponsesContentApplicationJsonSchemaEditedBy"},"Prompts_deployPromptVersion_Response_201":{"type":"object","properties":{"id":{"type":"string"},"prompt_version_id":{"type":"string"},"version":{"type":"integer"},"description":{"type":["string","null"]},"messages":{"type":"array","items":{"type":"object","additionalProperties":{"description":"Any type"}}},"model":{"type":"string"},"readonly":{"type":"boolean"},"is_deployed":{"type":"boolean"},"edited_by":{"$ref":"#/components/schemas/ApiPromptsPromptIdDeploymentsPostResponsesContentApplicationJsonSchemaEditedBy"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"title":"Prompts_deployPromptVersion_Response_201"},"DeployPromptVersionRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeployPromptVersionRequestBadRequestError"},"DeployPromptVersionRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeployPromptVersionRequestNotFoundError"},"ApiPromptsSummaryPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{"prompt_id":{"$ref":"#/components/schemas/FilterValue"},"prompt_slug":{"$ref":"#/components/schemas/FilterValue"},"name":{"$ref":"#/components/schemas/FilterValue"},"description":{"$ref":"#/components/schemas/FilterValue"},"starred":{"$ref":"#/components/schemas/FilterValue"},"tags":{"$ref":"#/components/schemas/FilterValue"},"created_at":{"$ref":"#/components/schemas/FilterValue"},"updated_at":{"$ref":"#/components/schemas/FilterValue"},"current_version__updated_at":{"$ref":"#/components/schemas/FilterValue"},"is_deleted":{"$ref":"#/components/schemas/FilterValue"}},"description":"Prompt filters. See [Filters API Reference](/docs/apis/reference/filters-api-reference) for operator syntax.","title":"ApiPromptsSummaryPostRequestBodyContentApplicationJsonSchemaFilters"},"Prompts_getPromptsSummaryWithFilters_Response_200":{"type":"object","properties":{"total_count":{"type":"integer","description":"Total number of prompts matching the filters."}},"title":"Prompts_getPromptsSummaryWithFilters_Response_200"},"ApiResponseFormatPresetsGetResponsesContentApplicationJsonSchemaResultsItemsCreatedById":{"oneOf":[{"type":"integer"},{"type":"string"}],"title":"ApiResponseFormatPresetsGetResponsesContentApplicationJsonSchemaResultsItemsCreatedById"},"ApiResponseFormatPresetsGetResponsesContentApplicationJsonSchemaResultsItemsCreatedBy":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ApiResponseFormatPresetsGetResponsesContentApplicationJsonSchemaResultsItemsCreatedById"},"email":{"type":"string","format":"email"},"name":{"type":"string"},"username":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"}},"title":"ApiResponseFormatPresetsGetResponsesContentApplicationJsonSchemaResultsItemsCreatedBy"},"ApiResponseFormatPresetsGetResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"created_by":{"oneOf":[{"$ref":"#/components/schemas/ApiResponseFormatPresetsGetResponsesContentApplicationJsonSchemaResultsItemsCreatedBy"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","name","created_at","updated_at"],"title":"ApiResponseFormatPresetsGetResponsesContentApplicationJsonSchemaResultsItems"},"Prompts_api_response_format_presets_list_Response_200":{"type":"object","properties":{"count":{"type":"integer"},"next":{"type":["string","null"]},"previous":{"type":["string","null"]},"total_count":{"type":"integer"},"current_filters":{"type":"object","additionalProperties":{"description":"Any type"}},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiResponseFormatPresetsGetResponsesContentApplicationJsonSchemaResultsItems"}}},"required":["count","results"],"title":"Prompts_api_response_format_presets_list_Response_200"},"Prompts_api_response_format_presets_create_Response_201":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"project":{"type":"string","description":"Server-stamped project UUID."},"created_by":{"type":["integer","null"],"description":"Server-stamped creator user ID."},"response_format_content":{"type":"string","description":"JSON text preserved verbatim. It must decode to an object with a non-empty `name` and an object-valued `schema`."},"is_enforcing_response_format":{"type":"boolean"}},"required":["id","name","project","created_by","response_format_content","is_enforcing_response_format"],"title":"Prompts_api_response_format_presets_create_Response_201"},"ApiResponseFormatPresetsIdGetResponsesContentApplicationJsonSchemaCreatedById":{"oneOf":[{"type":"integer"},{"type":"string"}],"title":"ApiResponseFormatPresetsIdGetResponsesContentApplicationJsonSchemaCreatedById"},"ApiResponseFormatPresetsIdGetResponsesContentApplicationJsonSchemaCreatedBy":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ApiResponseFormatPresetsIdGetResponsesContentApplicationJsonSchemaCreatedById"},"email":{"type":"string","format":"email"},"name":{"type":"string"},"username":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"}},"title":"ApiResponseFormatPresetsIdGetResponsesContentApplicationJsonSchemaCreatedBy"},"Prompts_api_response_format_presets_retrieve_Response_200":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"created_by":{"oneOf":[{"$ref":"#/components/schemas/ApiResponseFormatPresetsIdGetResponsesContentApplicationJsonSchemaCreatedBy"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"response_format_content":{"type":"string","description":"JSON text preserved verbatim. It must decode to an object with a non-empty `name` and an object-valued `schema`."},"is_enforcing_response_format":{"type":"boolean"}},"required":["id","name","created_at","updated_at","response_format_content","is_enforcing_response_format"],"title":"Prompts_api_response_format_presets_retrieve_Response_200"},"Prompts_api_response_format_presets_partial_update_Response_200":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"response_format_content":{"type":"string","description":"JSON text preserved verbatim. It must decode to an object with a non-empty `name` and an object-valued `schema`."},"is_enforcing_response_format":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","name","response_format_content","is_enforcing_response_format","created_at","updated_at"],"title":"Prompts_api_response_format_presets_partial_update_Response_200"},"ApiWorkflowsGetParametersType":{"type":"string","enum":["automations","monitors","evaluators","reports","exports","ingests"],"default":"automations","description":"Workflow category. Defaults to `automations`.","title":"ApiWorkflowsGetParametersType"},"ApiWorkflowsGetParametersTriggerEventType":{"type":"string","enum":["request_log","trace_completed","customer_budget_limit_reached","credit_low_balance_threshold_reached","spend_cap_warning_threshold_reached","limit_policy_soft_triggered","limit_policy_hard_triggered","on_eval_result_ingested","custom_event","eval_only","scheduled"],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`.","title":"ApiWorkflowsGetParametersTriggerEventType"},"ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItemsType":{"type":"string","enum":["automations","monitors","evaluators","reports","exports","ingests"],"default":"automations","description":"Workflow category. Defaults to `automations`.","title":"ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItemsType"},"ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItemsTriggerEventType":{"type":"string","enum":["request_log","trace_completed","customer_budget_limit_reached","credit_low_balance_threshold_reached","spend_cap_warning_threshold_reached","limit_policy_soft_triggered","limit_policy_hard_triggered","on_eval_result_ingested","custom_event","eval_only","scheduled"],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`.","title":"ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItemsTriggerEventType"},"ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItemsTagsItems":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"color":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","name"],"title":"ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItemsTagsItems"},"ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItemsEditorId":{"oneOf":[{"type":"integer"},{"type":"string"}],"title":"ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItemsEditorId"},"ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItemsEditor":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItemsEditorId"},"email":{"type":"string","format":"email"},"name":{"type":"string"},"username":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"}},"title":"ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItemsEditor"},"ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string"},"workflow_id":{"type":"string"},"version":{"type":"integer"},"name":{"type":["string","null"]},"description":{"type":["string","null"]},"version_description":{"type":"string","description":"Commit message for this version. Set only through the commit endpoint."},"type":{"$ref":"#/components/schemas/ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItemsType","description":"Workflow category. Defaults to `automations`."},"trigger_event_type":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItemsTriggerEventType"},{"type":"null"}],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`."},"schedule_cron":{"type":["string","null"],"description":"UTC five-field cron expression. Required when `trigger_event_type` is `scheduled`, forbidden for other trigger types, and limited to a minimum five-minute cadence. Timezone prefixes such as `TZ` and `CRON_TZ` are not supported."},"is_enabled":{"type":"boolean"},"is_starred":{"type":"boolean","default":false},"is_read_only":{"type":"boolean"},"is_public":{"type":"boolean"},"unique_organization_id":{"type":["string","null"]},"has_async_steps":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"deployed_version":{"type":["integer","null"]},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItemsTagsItems"}},"editor":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItemsEditor"},{"type":"null"}]}},"required":["id","workflow_id","version","type","is_enabled","is_read_only"],"title":"ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItems"},"Workflows_api_workflows_list_Response_200":{"type":"object","properties":{"count":{"type":"integer"},"next":{"type":["string","null"]},"previous":{"type":["string","null"]},"total_count":{"type":"integer","description":"Total count when available. This field can be omitted for API-key requests."},"current_filters":{"type":"object","additionalProperties":{"description":"Any type"}},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsGetResponsesContentApplicationJsonSchemaResultsItems"}}},"required":["count","next","previous","results"],"title":"Workflows_api_workflows_list_Response_200"},"Api_workflows_listRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"Api_workflows_listRequestUnauthorizedError"},"ApiWorkflowsListPostParametersType":{"type":"string","enum":["automations","monitors","evaluators","reports","exports","ingests"],"default":"automations","description":"Workflow category. Defaults to `automations`.","title":"ApiWorkflowsListPostParametersType"},"ApiWorkflowsListPostParametersTriggerEventType":{"type":"string","enum":["request_log","trace_completed","customer_budget_limit_reached","credit_low_balance_threshold_reached","spend_cap_warning_threshold_reached","limit_policy_soft_triggered","limit_policy_hard_triggered","on_eval_result_ingested","custom_event","eval_only","scheduled"],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`.","title":"ApiWorkflowsListPostParametersTriggerEventType"},"ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItemsType":{"type":"string","enum":["automations","monitors","evaluators","reports","exports","ingests"],"default":"automations","description":"Workflow category. Defaults to `automations`.","title":"ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItemsType"},"ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItemsTriggerEventType":{"type":"string","enum":["request_log","trace_completed","customer_budget_limit_reached","credit_low_balance_threshold_reached","spend_cap_warning_threshold_reached","limit_policy_soft_triggered","limit_policy_hard_triggered","on_eval_result_ingested","custom_event","eval_only","scheduled"],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`.","title":"ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItemsTriggerEventType"},"ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItemsTagsItems":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"color":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","name"],"title":"ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItemsTagsItems"},"ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItemsEditorId":{"oneOf":[{"type":"integer"},{"type":"string"}],"title":"ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItemsEditorId"},"ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItemsEditor":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItemsEditorId"},"email":{"type":"string","format":"email"},"name":{"type":"string"},"username":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"}},"title":"ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItemsEditor"},"ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string"},"workflow_id":{"type":"string"},"version":{"type":"integer"},"name":{"type":["string","null"]},"description":{"type":["string","null"]},"version_description":{"type":"string","description":"Commit message for this version. Set only through the commit endpoint."},"type":{"$ref":"#/components/schemas/ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItemsType","description":"Workflow category. Defaults to `automations`."},"trigger_event_type":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItemsTriggerEventType"},{"type":"null"}],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`."},"schedule_cron":{"type":["string","null"],"description":"UTC five-field cron expression. Required when `trigger_event_type` is `scheduled`, forbidden for other trigger types, and limited to a minimum five-minute cadence. Timezone prefixes such as `TZ` and `CRON_TZ` are not supported."},"is_enabled":{"type":"boolean"},"is_starred":{"type":"boolean","default":false},"is_read_only":{"type":"boolean"},"is_public":{"type":"boolean"},"unique_organization_id":{"type":["string","null"]},"has_async_steps":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"deployed_version":{"type":["integer","null"]},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItemsTagsItems"}},"editor":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItemsEditor"},{"type":"null"}]}},"required":["id","workflow_id","version","type","is_enabled","is_read_only"],"title":"ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItems"},"Workflows_filterWorkflows_Response_200":{"type":"object","properties":{"count":{"type":"integer"},"next":{"type":["string","null"]},"previous":{"type":["string","null"]},"total_count":{"type":"integer","description":"Total count when available. This field can be omitted for API-key requests."},"current_filters":{"type":"object","additionalProperties":{"description":"Any type"}},"filters_data":{"type":"object","additionalProperties":{"description":"Any type"}},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItems"}}},"required":["count","next","previous","results"],"title":"Workflows_filterWorkflows_Response_200"},"FilterWorkflowsRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"FilterWorkflowsRequestBadRequestError"},"FilterWorkflowsRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"FilterWorkflowsRequestUnauthorizedError"},"ApiWorkflowsPostRequestBodyContentApplicationJsonSchemaType":{"type":"string","enum":["automations","monitors","evaluators","reports","exports","ingests"],"default":"automations","description":"Workflow category. Defaults to `automations`.","title":"ApiWorkflowsPostRequestBodyContentApplicationJsonSchemaType"},"ApiWorkflowsPostRequestBodyContentApplicationJsonSchemaTriggerEventType":{"type":"string","enum":["request_log","trace_completed","customer_budget_limit_reached","credit_low_balance_threshold_reached","spend_cap_warning_threshold_reached","limit_policy_soft_triggered","limit_policy_hard_triggered","on_eval_result_ingested","custom_event","eval_only","scheduled"],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`.","title":"ApiWorkflowsPostRequestBodyContentApplicationJsonSchemaTriggerEventType"},"ApiWorkflowsPostRequestBodyContentApplicationJsonSchemaTasksItemsNext":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"ID or IDs of the next task. Sequential links are generated when omitted.","title":"ApiWorkflowsPostRequestBodyContentApplicationJsonSchemaTasksItemsNext"},"ApiWorkflowsPostRequestBodyContentApplicationJsonSchemaTasksItems":{"type":"object","properties":{"id":{"type":"string","description":"Stable task ID. The server generates one when omitted."},"type":{"type":"string"},"label":{"type":["string","null"]},"next":{"$ref":"#/components/schemas/ApiWorkflowsPostRequestBodyContentApplicationJsonSchemaTasksItemsNext","description":"ID or IDs of the next task. Sequential links are generated when omitted."},"config":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["type"],"description":"A workflow task. Task configuration depends on the task `type`.","title":"ApiWorkflowsPostRequestBodyContentApplicationJsonSchemaTasksItems"},"ApiWorkflowsPostResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["automations","monitors","evaluators","reports","exports","ingests"],"default":"automations","description":"Workflow category. Defaults to `automations`.","title":"ApiWorkflowsPostResponsesContentApplicationJsonSchemaType"},"ApiWorkflowsPostResponsesContentApplicationJsonSchemaTriggerEventType":{"type":"string","enum":["request_log","trace_completed","customer_budget_limit_reached","credit_low_balance_threshold_reached","spend_cap_warning_threshold_reached","limit_policy_soft_triggered","limit_policy_hard_triggered","on_eval_result_ingested","custom_event","eval_only","scheduled"],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`.","title":"ApiWorkflowsPostResponsesContentApplicationJsonSchemaTriggerEventType"},"ApiWorkflowsPostResponsesContentApplicationJsonSchemaTagsItems":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"color":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","name"],"title":"ApiWorkflowsPostResponsesContentApplicationJsonSchemaTagsItems"},"ApiWorkflowsPostResponsesContentApplicationJsonSchemaTasksItemsNext":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"ID or IDs of the next task. Sequential links are generated when omitted.","title":"ApiWorkflowsPostResponsesContentApplicationJsonSchemaTasksItemsNext"},"ApiWorkflowsPostResponsesContentApplicationJsonSchemaTasksItems":{"type":"object","properties":{"id":{"type":"string","description":"Stable task ID. The server generates one when omitted."},"type":{"type":"string"},"label":{"type":["string","null"]},"next":{"$ref":"#/components/schemas/ApiWorkflowsPostResponsesContentApplicationJsonSchemaTasksItemsNext","description":"ID or IDs of the next task. Sequential links are generated when omitted."},"config":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["type"],"description":"A workflow task. Task configuration depends on the task `type`.","title":"ApiWorkflowsPostResponsesContentApplicationJsonSchemaTasksItems"},"ApiWorkflowsPostResponsesContentApplicationJsonSchemaGraph":{"type":"object","properties":{"node_count":{"type":"integer"},"edge_count":{"type":"integer"},"entry_nodes":{"type":"array","items":{"type":"string"}},"terminal_nodes":{"type":"array","items":{"type":"string"}},"nodes":{"type":"object","additionalProperties":{"description":"Any type"}}},"title":"ApiWorkflowsPostResponsesContentApplicationJsonSchemaGraph"},"Workflows_createWorkflow_Response_201":{"type":"object","properties":{"id":{"type":"string"},"workflow_id":{"type":"string"},"version":{"type":"integer"},"name":{"type":["string","null"]},"description":{"type":["string","null"]},"version_description":{"type":"string","description":"Commit message for this version. Set only through the commit endpoint."},"type":{"$ref":"#/components/schemas/ApiWorkflowsPostResponsesContentApplicationJsonSchemaType","description":"Workflow category. Defaults to `automations`."},"trigger_event_type":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsPostResponsesContentApplicationJsonSchemaTriggerEventType"},{"type":"null"}],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`."},"schedule_cron":{"type":["string","null"],"description":"UTC five-field cron expression. Required when `trigger_event_type` is `scheduled`, forbidden for other trigger types, and limited to a minimum five-minute cadence. Timezone prefixes such as `TZ` and `CRON_TZ` are not supported."},"is_enabled":{"type":"boolean"},"is_starred":{"type":"boolean","default":false},"is_read_only":{"type":"boolean"},"is_public":{"type":"boolean"},"unique_organization_id":{"type":["string","null"]},"has_async_steps":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"deployed_version":{"type":["integer","null"]},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsPostResponsesContentApplicationJsonSchemaTagsItems"}},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsPostResponsesContentApplicationJsonSchemaTasksItems"}},"graph":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsPostResponsesContentApplicationJsonSchemaGraph"},{"type":"null"}]}},"required":["id","workflow_id","version","type","is_enabled","is_read_only","tasks"],"title":"Workflows_createWorkflow_Response_201"},"CreateWorkflowRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"CreateWorkflowRequestBadRequestError"},"CreateWorkflowRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"CreateWorkflowRequestUnauthorizedError"},"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0Type":{"type":"string","enum":["automations","monitors","evaluators","reports","exports","ingests"],"default":"automations","description":"Workflow category. Defaults to `automations`.","title":"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0Type"},"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0TriggerEventType":{"type":"string","enum":["request_log","trace_completed","customer_budget_limit_reached","credit_low_balance_threshold_reached","spend_cap_warning_threshold_reached","limit_policy_soft_triggered","limit_policy_hard_triggered","on_eval_result_ingested","custom_event","eval_only","scheduled"],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`.","title":"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0TriggerEventType"},"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0TagsItems":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"color":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","name"],"title":"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0TagsItems"},"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0TasksItemsNext":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"ID or IDs of the next task. Sequential links are generated when omitted.","title":"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0TasksItemsNext"},"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0TasksItems":{"type":"object","properties":{"id":{"type":"string","description":"Stable task ID. The server generates one when omitted."},"type":{"type":"string"},"label":{"type":["string","null"]},"next":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0TasksItemsNext","description":"ID or IDs of the next task. Sequential links are generated when omitted."},"config":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["type"],"description":"A workflow task. Task configuration depends on the task `type`.","title":"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0TasksItems"},"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0Graph":{"type":"object","properties":{"node_count":{"type":"integer"},"edge_count":{"type":"integer"},"entry_nodes":{"type":"array","items":{"type":"string"}},"terminal_nodes":{"type":"array","items":{"type":"string"}},"nodes":{"type":"object","additionalProperties":{"description":"Any type"}}},"title":"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0Graph"},"WorkflowsGetWorkflowResponse2000":{"type":"object","properties":{"id":{"type":"string"},"workflow_id":{"type":"string"},"version":{"type":"integer"},"name":{"type":["string","null"]},"description":{"type":["string","null"]},"version_description":{"type":"string","description":"Commit message for this version. Set only through the commit endpoint."},"type":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0Type","description":"Workflow category. Defaults to `automations`."},"trigger_event_type":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0TriggerEventType"},{"type":"null"}],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`."},"schedule_cron":{"type":["string","null"],"description":"UTC five-field cron expression. Required when `trigger_event_type` is `scheduled`, forbidden for other trigger types, and limited to a minimum five-minute cadence. Timezone prefixes such as `TZ` and `CRON_TZ` are not supported."},"is_enabled":{"type":"boolean"},"is_starred":{"type":"boolean","default":false},"is_read_only":{"type":"boolean"},"is_public":{"type":"boolean"},"unique_organization_id":{"type":["string","null"]},"has_async_steps":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"deployed_version":{"type":["integer","null"]},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0TagsItems"}},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0TasksItems"}},"graph":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf0Graph"},{"type":"null"}]},"has_write_access":{"type":"boolean","description":"Whether the authenticated caller may edit this workflow family."}},"required":["id","workflow_id","version","type","is_enabled","is_read_only","tasks"],"title":"WorkflowsGetWorkflowResponse2000"},"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf1SchemaVersion":{"type":"string","enum":["v1"],"title":"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf1SchemaVersion"},"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf1WorkflowTriggerEventType":{"type":"string","enum":["request_log","trace_completed","customer_budget_limit_reached","credit_low_balance_threshold_reached","spend_cap_warning_threshold_reached","limit_policy_soft_triggered","limit_policy_hard_triggered","on_eval_result_ingested","custom_event","eval_only","scheduled"],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`.","title":"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf1WorkflowTriggerEventType"},"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf1WorkflowTasksItemsNext":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"ID or IDs of the next task. Sequential links are generated when omitted.","title":"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf1WorkflowTasksItemsNext"},"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf1WorkflowTasksItems":{"type":"object","properties":{"id":{"type":"string","description":"Stable task ID. The server generates one when omitted."},"type":{"type":"string"},"label":{"type":["string","null"]},"next":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf1WorkflowTasksItemsNext","description":"ID or IDs of the next task. Sequential links are generated when omitted."},"config":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["type"],"description":"A workflow task. Task configuration depends on the task `type`.","title":"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf1WorkflowTasksItems"},"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf1Workflow":{"type":"object","properties":{"name":{"type":["string","null"]},"description":{"type":["string","null"]},"trigger_event_type":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf1WorkflowTriggerEventType"},{"type":"null"}],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`."},"schedule_cron":{"type":["string","null"],"description":"UTC five-field cron expression. Required when `trigger_event_type` is `scheduled`, forbidden for other trigger types, and limited to a minimum five-minute cadence. Timezone prefixes such as `TZ` and `CRON_TZ` are not supported."},"is_enabled":{"type":"boolean","description":"Exports are always disabled in the portable workflow envelope."},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf1WorkflowTasksItems"}}},"required":["is_enabled","tasks"],"title":"ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf1Workflow"},"WorkflowsGetWorkflowResponse2001":{"type":"object","properties":{"schema_version":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf1SchemaVersion"},"workflow":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdGetResponsesContentApplicationJsonSchemaOneOf1Workflow"}},"required":["schema_version","workflow"],"title":"WorkflowsGetWorkflowResponse2001"},"Workflows_getWorkflow_Response_200":{"oneOf":[{"$ref":"#/components/schemas/WorkflowsGetWorkflowResponse2000"},{"$ref":"#/components/schemas/WorkflowsGetWorkflowResponse2001"}],"title":"Workflows_getWorkflow_Response_200"},"GetWorkflowRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"GetWorkflowRequestUnauthorizedError"},"GetWorkflowRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"GetWorkflowRequestNotFoundError"},"ApiWorkflowsWorkflowIdPatchRequestBodyContentApplicationJsonSchemaType":{"type":"string","enum":["automations","monitors","evaluators","reports","exports","ingests"],"default":"automations","description":"Workflow category. Defaults to `automations`.","title":"ApiWorkflowsWorkflowIdPatchRequestBodyContentApplicationJsonSchemaType"},"ApiWorkflowsWorkflowIdPatchRequestBodyContentApplicationJsonSchemaTriggerEventType":{"type":"string","enum":["request_log","trace_completed","customer_budget_limit_reached","credit_low_balance_threshold_reached","spend_cap_warning_threshold_reached","limit_policy_soft_triggered","limit_policy_hard_triggered","on_eval_result_ingested","custom_event","eval_only","scheduled"],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`.","title":"ApiWorkflowsWorkflowIdPatchRequestBodyContentApplicationJsonSchemaTriggerEventType"},"ApiWorkflowsWorkflowIdPatchRequestBodyContentApplicationJsonSchemaTasksItemsNext":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"ID or IDs of the next task. Sequential links are generated when omitted.","title":"ApiWorkflowsWorkflowIdPatchRequestBodyContentApplicationJsonSchemaTasksItemsNext"},"ApiWorkflowsWorkflowIdPatchRequestBodyContentApplicationJsonSchemaTasksItems":{"type":"object","properties":{"id":{"type":"string","description":"Stable task ID. The server generates one when omitted."},"type":{"type":"string"},"label":{"type":["string","null"]},"next":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdPatchRequestBodyContentApplicationJsonSchemaTasksItemsNext","description":"ID or IDs of the next task. Sequential links are generated when omitted."},"config":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["type"],"description":"A workflow task. Task configuration depends on the task `type`.","title":"ApiWorkflowsWorkflowIdPatchRequestBodyContentApplicationJsonSchemaTasksItems"},"ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["automations","monitors","evaluators","reports","exports","ingests"],"default":"automations","description":"Workflow category. Defaults to `automations`.","title":"ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaType"},"ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaTriggerEventType":{"type":"string","enum":["request_log","trace_completed","customer_budget_limit_reached","credit_low_balance_threshold_reached","spend_cap_warning_threshold_reached","limit_policy_soft_triggered","limit_policy_hard_triggered","on_eval_result_ingested","custom_event","eval_only","scheduled"],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`.","title":"ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaTriggerEventType"},"ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaTagsItems":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"color":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","name"],"title":"ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaTagsItems"},"ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaTasksItemsNext":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"ID or IDs of the next task. Sequential links are generated when omitted.","title":"ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaTasksItemsNext"},"ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaTasksItems":{"type":"object","properties":{"id":{"type":"string","description":"Stable task ID. The server generates one when omitted."},"type":{"type":"string"},"label":{"type":["string","null"]},"next":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaTasksItemsNext","description":"ID or IDs of the next task. Sequential links are generated when omitted."},"config":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["type"],"description":"A workflow task. Task configuration depends on the task `type`.","title":"ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaTasksItems"},"ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaGraph":{"type":"object","properties":{"node_count":{"type":"integer"},"edge_count":{"type":"integer"},"entry_nodes":{"type":"array","items":{"type":"string"}},"terminal_nodes":{"type":"array","items":{"type":"string"}},"nodes":{"type":"object","additionalProperties":{"description":"Any type"}}},"title":"ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaGraph"},"Workflows_updateWorkflow_Response_200":{"type":"object","properties":{"id":{"type":"string"},"workflow_id":{"type":"string"},"version":{"type":"integer"},"name":{"type":["string","null"]},"description":{"type":["string","null"]},"version_description":{"type":"string","description":"Commit message for this version. Set only through the commit endpoint."},"type":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaType","description":"Workflow category. Defaults to `automations`."},"trigger_event_type":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaTriggerEventType"},{"type":"null"}],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`."},"schedule_cron":{"type":["string","null"],"description":"UTC five-field cron expression. Required when `trigger_event_type` is `scheduled`, forbidden for other trigger types, and limited to a minimum five-minute cadence. Timezone prefixes such as `TZ` and `CRON_TZ` are not supported."},"is_enabled":{"type":"boolean"},"is_starred":{"type":"boolean","default":false},"is_read_only":{"type":"boolean"},"is_public":{"type":"boolean"},"unique_organization_id":{"type":["string","null"]},"has_async_steps":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"deployed_version":{"type":["integer","null"]},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaTagsItems"}},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaTasksItems"}},"graph":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdPatchResponsesContentApplicationJsonSchemaGraph"},{"type":"null"}]},"has_write_access":{"type":"boolean","description":"Whether the authenticated caller may edit this workflow family."}},"required":["id","workflow_id","version","type","is_enabled","is_read_only","tasks"],"title":"Workflows_updateWorkflow_Response_200"},"UpdateWorkflowRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"UpdateWorkflowRequestBadRequestError"},"UpdateWorkflowRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"UpdateWorkflowRequestUnauthorizedError"},"UpdateWorkflowRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"UpdateWorkflowRequestNotFoundError"},"UpdateWorkflowRequestConflictError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"UpdateWorkflowRequestConflictError"},"DeleteWorkflowRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"DeleteWorkflowRequestUnauthorizedError"},"DeleteWorkflowRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"DeleteWorkflowRequestNotFoundError"},"ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsType":{"type":"string","enum":["automations","monitors","evaluators","reports","exports","ingests"],"default":"automations","description":"Workflow category. Defaults to `automations`.","title":"ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsType"},"ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsTriggerEventType":{"type":"string","enum":["request_log","trace_completed","customer_budget_limit_reached","credit_low_balance_threshold_reached","spend_cap_warning_threshold_reached","limit_policy_soft_triggered","limit_policy_hard_triggered","on_eval_result_ingested","custom_event","eval_only","scheduled"],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`.","title":"ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsTriggerEventType"},"ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsTagsItems":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"color":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","name"],"title":"ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsTagsItems"},"ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsEditorId":{"oneOf":[{"type":"integer"},{"type":"string"}],"title":"ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsEditorId"},"ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsEditor":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsEditorId"},"email":{"type":"string","format":"email"},"name":{"type":"string"},"username":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"}},"title":"ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsEditor"},"ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string"},"workflow_id":{"type":"string"},"version":{"type":"integer"},"name":{"type":["string","null"]},"description":{"type":["string","null"]},"version_description":{"type":"string","description":"Commit message for this version. Set only through the commit endpoint."},"type":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsType","description":"Workflow category. Defaults to `automations`."},"trigger_event_type":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsTriggerEventType"},{"type":"null"}],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`."},"schedule_cron":{"type":["string","null"],"description":"UTC five-field cron expression. Required when `trigger_event_type` is `scheduled`, forbidden for other trigger types, and limited to a minimum five-minute cadence. Timezone prefixes such as `TZ` and `CRON_TZ` are not supported."},"is_enabled":{"type":"boolean"},"is_starred":{"type":"boolean","default":false},"is_read_only":{"type":"boolean"},"is_public":{"type":"boolean"},"unique_organization_id":{"type":["string","null"]},"has_async_steps":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"deployed_version":{"type":["integer","null"]},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsTagsItems"}},"editor":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsEditor"},{"type":"null"}]}},"required":["id","workflow_id","version","type","is_enabled","is_read_only"],"title":"ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItems"},"Workflows_listWorkflowVersions_Response_200":{"type":"object","properties":{"count":{"type":"integer"},"next":{"type":["string","null"]},"previous":{"type":["string","null"]},"total_count":{"type":"integer","description":"Total count when available. This field can be omitted for API-key requests."},"current_filters":{"type":"object","additionalProperties":{"description":"Any type"}},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsGetResponsesContentApplicationJsonSchemaResultsItems"}}},"required":["count","next","previous","results"],"title":"Workflows_listWorkflowVersions_Response_200"},"ListWorkflowVersionsRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"ListWorkflowVersionsRequestUnauthorizedError"},"ApiWorkflowsWorkflowIdVersionsPostRequestBodyContentApplicationJsonSchemaType":{"type":"string","enum":["automations","monitors","evaluators","reports","exports","ingests"],"default":"automations","description":"Workflow category. Defaults to `automations`.","title":"ApiWorkflowsWorkflowIdVersionsPostRequestBodyContentApplicationJsonSchemaType"},"ApiWorkflowsWorkflowIdVersionsPostRequestBodyContentApplicationJsonSchemaTriggerEventType":{"type":"string","enum":["request_log","trace_completed","customer_budget_limit_reached","credit_low_balance_threshold_reached","spend_cap_warning_threshold_reached","limit_policy_soft_triggered","limit_policy_hard_triggered","on_eval_result_ingested","custom_event","eval_only","scheduled"],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`.","title":"ApiWorkflowsWorkflowIdVersionsPostRequestBodyContentApplicationJsonSchemaTriggerEventType"},"ApiWorkflowsWorkflowIdVersionsPostRequestBodyContentApplicationJsonSchemaTasksItemsNext":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"ID or IDs of the next task. Sequential links are generated when omitted.","title":"ApiWorkflowsWorkflowIdVersionsPostRequestBodyContentApplicationJsonSchemaTasksItemsNext"},"ApiWorkflowsWorkflowIdVersionsPostRequestBodyContentApplicationJsonSchemaTasksItems":{"type":"object","properties":{"id":{"type":"string","description":"Stable task ID. The server generates one when omitted."},"type":{"type":"string"},"label":{"type":["string","null"]},"next":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsPostRequestBodyContentApplicationJsonSchemaTasksItemsNext","description":"ID or IDs of the next task. Sequential links are generated when omitted."},"config":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["type"],"description":"A workflow task. Task configuration depends on the task `type`.","title":"ApiWorkflowsWorkflowIdVersionsPostRequestBodyContentApplicationJsonSchemaTasksItems"},"ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["automations","monitors","evaluators","reports","exports","ingests"],"default":"automations","description":"Workflow category. Defaults to `automations`.","title":"ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaType"},"ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaTriggerEventType":{"type":"string","enum":["request_log","trace_completed","customer_budget_limit_reached","credit_low_balance_threshold_reached","spend_cap_warning_threshold_reached","limit_policy_soft_triggered","limit_policy_hard_triggered","on_eval_result_ingested","custom_event","eval_only","scheduled"],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`.","title":"ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaTriggerEventType"},"ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaTagsItems":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"color":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","name"],"title":"ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaTagsItems"},"ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaTasksItemsNext":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"ID or IDs of the next task. Sequential links are generated when omitted.","title":"ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaTasksItemsNext"},"ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaTasksItems":{"type":"object","properties":{"id":{"type":"string","description":"Stable task ID. The server generates one when omitted."},"type":{"type":"string"},"label":{"type":["string","null"]},"next":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaTasksItemsNext","description":"ID or IDs of the next task. Sequential links are generated when omitted."},"config":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["type"],"description":"A workflow task. Task configuration depends on the task `type`.","title":"ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaTasksItems"},"ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaGraph":{"type":"object","properties":{"node_count":{"type":"integer"},"edge_count":{"type":"integer"},"entry_nodes":{"type":"array","items":{"type":"string"}},"terminal_nodes":{"type":"array","items":{"type":"string"}},"nodes":{"type":"object","additionalProperties":{"description":"Any type"}}},"title":"ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaGraph"},"Workflows_createWorkflowVersion_Response_201":{"type":"object","properties":{"id":{"type":"string"},"workflow_id":{"type":"string"},"version":{"type":"integer"},"name":{"type":["string","null"]},"description":{"type":["string","null"]},"version_description":{"type":"string","description":"Commit message for this version. Set only through the commit endpoint."},"type":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaType","description":"Workflow category. Defaults to `automations`."},"trigger_event_type":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaTriggerEventType"},{"type":"null"}],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`."},"schedule_cron":{"type":["string","null"],"description":"UTC five-field cron expression. Required when `trigger_event_type` is `scheduled`, forbidden for other trigger types, and limited to a minimum five-minute cadence. Timezone prefixes such as `TZ` and `CRON_TZ` are not supported."},"is_enabled":{"type":"boolean"},"is_starred":{"type":"boolean","default":false},"is_read_only":{"type":"boolean"},"is_public":{"type":"boolean"},"unique_organization_id":{"type":["string","null"]},"has_async_steps":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"deployed_version":{"type":["integer","null"]},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaTagsItems"}},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaTasksItems"}},"graph":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsPostResponsesContentApplicationJsonSchemaGraph"},{"type":"null"}]}},"required":["id","workflow_id","version","type","is_enabled","is_read_only","tasks"],"title":"Workflows_createWorkflowVersion_Response_201"},"CreateWorkflowVersionRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"CreateWorkflowVersionRequestBadRequestError"},"CreateWorkflowVersionRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"CreateWorkflowVersionRequestUnauthorizedError"},"CreateWorkflowVersionRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"CreateWorkflowVersionRequestNotFoundError"},"ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["automations","monitors","evaluators","reports","exports","ingests"],"default":"automations","description":"Workflow category. Defaults to `automations`.","title":"ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaType"},"ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaTriggerEventType":{"type":"string","enum":["request_log","trace_completed","customer_budget_limit_reached","credit_low_balance_threshold_reached","spend_cap_warning_threshold_reached","limit_policy_soft_triggered","limit_policy_hard_triggered","on_eval_result_ingested","custom_event","eval_only","scheduled"],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`.","title":"ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaTriggerEventType"},"ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaTagsItems":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"color":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","name"],"title":"ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaTagsItems"},"ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaTasksItemsNext":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"ID or IDs of the next task. Sequential links are generated when omitted.","title":"ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaTasksItemsNext"},"ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaTasksItems":{"type":"object","properties":{"id":{"type":"string","description":"Stable task ID. The server generates one when omitted."},"type":{"type":"string"},"label":{"type":["string","null"]},"next":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaTasksItemsNext","description":"ID or IDs of the next task. Sequential links are generated when omitted."},"config":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["type"],"description":"A workflow task. Task configuration depends on the task `type`.","title":"ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaTasksItems"},"ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaGraph":{"type":"object","properties":{"node_count":{"type":"integer"},"edge_count":{"type":"integer"},"entry_nodes":{"type":"array","items":{"type":"string"}},"terminal_nodes":{"type":"array","items":{"type":"string"}},"nodes":{"type":"object","additionalProperties":{"description":"Any type"}}},"title":"ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaGraph"},"Workflows_getWorkflowVersion_Response_200":{"type":"object","properties":{"id":{"type":"string"},"workflow_id":{"type":"string"},"version":{"type":"integer"},"name":{"type":["string","null"]},"description":{"type":["string","null"]},"version_description":{"type":"string","description":"Commit message for this version. Set only through the commit endpoint."},"type":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaType","description":"Workflow category. Defaults to `automations`."},"trigger_event_type":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaTriggerEventType"},{"type":"null"}],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`."},"schedule_cron":{"type":["string","null"],"description":"UTC five-field cron expression. Required when `trigger_event_type` is `scheduled`, forbidden for other trigger types, and limited to a minimum five-minute cadence. Timezone prefixes such as `TZ` and `CRON_TZ` are not supported."},"is_enabled":{"type":"boolean"},"is_starred":{"type":"boolean","default":false},"is_read_only":{"type":"boolean"},"is_public":{"type":"boolean"},"unique_organization_id":{"type":["string","null"]},"has_async_steps":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"deployed_version":{"type":["integer","null"]},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaTagsItems"}},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaTasksItems"}},"graph":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsVersionGetResponsesContentApplicationJsonSchemaGraph"},{"type":"null"}]},"has_write_access":{"type":"boolean","description":"Whether the authenticated caller may edit this workflow family."}},"required":["id","workflow_id","version","type","is_enabled","is_read_only","tasks"],"title":"Workflows_getWorkflowVersion_Response_200"},"GetWorkflowVersionRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"GetWorkflowVersionRequestUnauthorizedError"},"GetWorkflowVersionRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"GetWorkflowVersionRequestNotFoundError"},"ApiWorkflowsWorkflowIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaType":{"type":"string","enum":["automations","monitors","evaluators","reports","exports","ingests"],"default":"automations","description":"Workflow category. Defaults to `automations`.","title":"ApiWorkflowsWorkflowIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaType"},"ApiWorkflowsWorkflowIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaTriggerEventType":{"type":"string","enum":["request_log","trace_completed","customer_budget_limit_reached","credit_low_balance_threshold_reached","spend_cap_warning_threshold_reached","limit_policy_soft_triggered","limit_policy_hard_triggered","on_eval_result_ingested","custom_event","eval_only","scheduled"],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`.","title":"ApiWorkflowsWorkflowIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaTriggerEventType"},"ApiWorkflowsWorkflowIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaTasksItemsNext":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"ID or IDs of the next task. Sequential links are generated when omitted.","title":"ApiWorkflowsWorkflowIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaTasksItemsNext"},"ApiWorkflowsWorkflowIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaTasksItems":{"type":"object","properties":{"id":{"type":"string","description":"Stable task ID. The server generates one when omitted."},"type":{"type":"string"},"label":{"type":["string","null"]},"next":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaTasksItemsNext","description":"ID or IDs of the next task. Sequential links are generated when omitted."},"config":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["type"],"description":"A workflow task. Task configuration depends on the task `type`.","title":"ApiWorkflowsWorkflowIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaTasksItems"},"ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["automations","monitors","evaluators","reports","exports","ingests"],"default":"automations","description":"Workflow category. Defaults to `automations`.","title":"ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaType"},"ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaTriggerEventType":{"type":"string","enum":["request_log","trace_completed","customer_budget_limit_reached","credit_low_balance_threshold_reached","spend_cap_warning_threshold_reached","limit_policy_soft_triggered","limit_policy_hard_triggered","on_eval_result_ingested","custom_event","eval_only","scheduled"],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`.","title":"ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaTriggerEventType"},"ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaTagsItems":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"color":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","name"],"title":"ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaTagsItems"},"ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaTasksItemsNext":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"ID or IDs of the next task. Sequential links are generated when omitted.","title":"ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaTasksItemsNext"},"ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaTasksItems":{"type":"object","properties":{"id":{"type":"string","description":"Stable task ID. The server generates one when omitted."},"type":{"type":"string"},"label":{"type":["string","null"]},"next":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaTasksItemsNext","description":"ID or IDs of the next task. Sequential links are generated when omitted."},"config":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["type"],"description":"A workflow task. Task configuration depends on the task `type`.","title":"ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaTasksItems"},"ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaGraph":{"type":"object","properties":{"node_count":{"type":"integer"},"edge_count":{"type":"integer"},"entry_nodes":{"type":"array","items":{"type":"string"}},"terminal_nodes":{"type":"array","items":{"type":"string"}},"nodes":{"type":"object","additionalProperties":{"description":"Any type"}}},"title":"ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaGraph"},"Workflows_updateWorkflowVersion_Response_200":{"type":"object","properties":{"id":{"type":"string"},"workflow_id":{"type":"string"},"version":{"type":"integer"},"name":{"type":["string","null"]},"description":{"type":["string","null"]},"version_description":{"type":"string","description":"Commit message for this version. Set only through the commit endpoint."},"type":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaType","description":"Workflow category. Defaults to `automations`."},"trigger_event_type":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaTriggerEventType"},{"type":"null"}],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`."},"schedule_cron":{"type":["string","null"],"description":"UTC five-field cron expression. Required when `trigger_event_type` is `scheduled`, forbidden for other trigger types, and limited to a minimum five-minute cadence. Timezone prefixes such as `TZ` and `CRON_TZ` are not supported."},"is_enabled":{"type":"boolean"},"is_starred":{"type":"boolean","default":false},"is_read_only":{"type":"boolean"},"is_public":{"type":"boolean"},"unique_organization_id":{"type":["string","null"]},"has_async_steps":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"deployed_version":{"type":["integer","null"]},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaTagsItems"}},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaTasksItems"}},"graph":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdVersionsVersionPatchResponsesContentApplicationJsonSchemaGraph"},{"type":"null"}]},"has_write_access":{"type":"boolean","description":"Whether the authenticated caller may edit this workflow family."}},"required":["id","workflow_id","version","type","is_enabled","is_read_only","tasks"],"title":"Workflows_updateWorkflowVersion_Response_200"},"UpdateWorkflowVersionRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"UpdateWorkflowVersionRequestBadRequestError"},"UpdateWorkflowVersionRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"UpdateWorkflowVersionRequestUnauthorizedError"},"UpdateWorkflowVersionRequestForbiddenError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"UpdateWorkflowVersionRequestForbiddenError"},"UpdateWorkflowVersionRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"UpdateWorkflowVersionRequestNotFoundError"},"ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["automations","monitors","evaluators","reports","exports","ingests"],"default":"automations","description":"Workflow category. Defaults to `automations`.","title":"ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaType"},"ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaTriggerEventType":{"type":"string","enum":["request_log","trace_completed","customer_budget_limit_reached","credit_low_balance_threshold_reached","spend_cap_warning_threshold_reached","limit_policy_soft_triggered","limit_policy_hard_triggered","on_eval_result_ingested","custom_event","eval_only","scheduled"],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`.","title":"ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaTriggerEventType"},"ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaTagsItems":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"color":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","name"],"title":"ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaTagsItems"},"ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaTasksItemsNext":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"ID or IDs of the next task. Sequential links are generated when omitted.","title":"ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaTasksItemsNext"},"ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaTasksItems":{"type":"object","properties":{"id":{"type":"string","description":"Stable task ID. The server generates one when omitted."},"type":{"type":"string"},"label":{"type":["string","null"]},"next":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaTasksItemsNext","description":"ID or IDs of the next task. Sequential links are generated when omitted."},"config":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["type"],"description":"A workflow task. Task configuration depends on the task `type`.","title":"ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaTasksItems"},"ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaGraph":{"type":"object","properties":{"node_count":{"type":"integer"},"edge_count":{"type":"integer"},"entry_nodes":{"type":"array","items":{"type":"string"}},"terminal_nodes":{"type":"array","items":{"type":"string"}},"nodes":{"type":"object","additionalProperties":{"description":"Any type"}}},"title":"ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaGraph"},"Workflows_api_workflows_commits_create_Response_200":{"type":"object","properties":{"id":{"type":"string"},"workflow_id":{"type":"string"},"version":{"type":"integer"},"name":{"type":["string","null"]},"description":{"type":["string","null"]},"version_description":{"type":"string","description":"Commit message for this version. Set only through the commit endpoint."},"type":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaType","description":"Workflow category. Defaults to `automations`."},"trigger_event_type":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaTriggerEventType"},{"type":"null"}],"description":"Event that triggers the workflow. Use `scheduled` with `schedule_cron`."},"schedule_cron":{"type":["string","null"],"description":"UTC five-field cron expression. Required when `trigger_event_type` is `scheduled`, forbidden for other trigger types, and limited to a minimum five-minute cadence. Timezone prefixes such as `TZ` and `CRON_TZ` are not supported."},"is_enabled":{"type":"boolean"},"is_starred":{"type":"boolean","default":false},"is_read_only":{"type":"boolean"},"is_public":{"type":"boolean"},"unique_organization_id":{"type":["string","null"]},"has_async_steps":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"deployed_version":{"type":["integer","null"]},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaTagsItems"}},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaTasksItems"}},"graph":{"oneOf":[{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdCommitsPostResponsesContentApplicationJsonSchemaGraph"},{"type":"null"}]}},"required":["id","workflow_id","version","type","is_enabled","is_read_only","tasks"],"title":"Workflows_api_workflows_commits_create_Response_200"},"Api_workflows_commits_createRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"Api_workflows_commits_createRequestBadRequestError"},"Api_workflows_commits_createRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"Api_workflows_commits_createRequestUnauthorizedError"},"Api_workflows_commits_createRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"Api_workflows_commits_createRequestNotFoundError"},"Api_workflows_commits_createRequestConflictError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"Api_workflows_commits_createRequestConflictError"},"Workflows_deployWorkflow_Response_200":{"type":"object","properties":{"id":{"type":"string"},"workflow_id":{"type":"string"},"version":{"type":"integer"},"is_enabled":{"type":"boolean"},"is_read_only":{"type":"boolean"}},"required":["id","workflow_id","version","is_enabled","is_read_only"],"title":"Workflows_deployWorkflow_Response_200"},"DeployWorkflowRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"DeployWorkflowRequestBadRequestError"},"DeployWorkflowRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"DeployWorkflowRequestUnauthorizedError"},"DeployWorkflowRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"DeployWorkflowRequestNotFoundError"},"UndeployWorkflowRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"UndeployWorkflowRequestUnauthorizedError"},"UndeployWorkflowRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"UndeployWorkflowRequestNotFoundError"},"ApiWorkflowsWorkflowIdValidationsPostResponsesContentApplicationJsonSchemaStatus":{"type":"string","enum":["success","validation_error"],"title":"ApiWorkflowsWorkflowIdValidationsPostResponsesContentApplicationJsonSchemaStatus"},"ApiWorkflowsWorkflowIdValidationsPostResponsesContentApplicationJsonSchemaValidation":{"type":"object","properties":{"is_valid":{"type":"boolean"},"error":{"type":["string","null"]}},"required":["is_valid","error"],"title":"ApiWorkflowsWorkflowIdValidationsPostResponsesContentApplicationJsonSchemaValidation"},"ApiWorkflowsWorkflowIdValidationsPostResponsesContentApplicationJsonSchemaTaskResultsItemsStatus":{"type":"string","enum":["passed","failed","skipped"],"title":"ApiWorkflowsWorkflowIdValidationsPostResponsesContentApplicationJsonSchemaTaskResultsItemsStatus"},"ApiWorkflowsWorkflowIdValidationsPostResponsesContentApplicationJsonSchemaTaskResultsItems":{"type":"object","properties":{"task_id":{"type":"string"},"task_type":{"type":"string"},"status":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdValidationsPostResponsesContentApplicationJsonSchemaTaskResultsItemsStatus"},"message":{"type":"string"}},"required":["task_id","task_type","status","message"],"title":"ApiWorkflowsWorkflowIdValidationsPostResponsesContentApplicationJsonSchemaTaskResultsItems"},"Workflows_validateWorkflow_Response_200":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdValidationsPostResponsesContentApplicationJsonSchemaStatus"},"validation":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdValidationsPostResponsesContentApplicationJsonSchemaValidation"},"task_results":{"type":"array","items":{"$ref":"#/components/schemas/ApiWorkflowsWorkflowIdValidationsPostResponsesContentApplicationJsonSchemaTaskResultsItems"}},"is_all_passed":{"type":"boolean"}},"required":["status","validation","task_results","is_all_passed"],"title":"Workflows_validateWorkflow_Response_200"},"ValidateWorkflowRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"ValidateWorkflowRequestUnauthorizedError"},"ValidateWorkflowRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"ValidateWorkflowRequestNotFoundError"},"ApiDatasetsPostRequestBodyContentApplicationJsonSchemaInitialLogFilters":{"type":"object","properties":{"operator":{"type":"string"},"value":{"description":"Any type"}},"title":"ApiDatasetsPostRequestBodyContentApplicationJsonSchemaInitialLogFilters"},"ApiDatasetsPostRequestBodyContentApplicationJsonSchemaGranularity":{"type":"string","enum":["logs","traces"],"default":"logs","description":"Evaluation unit. Immutable after dataset creation.","title":"ApiDatasetsPostRequestBodyContentApplicationJsonSchemaGranularity"},"ApiDatasetsPostResponsesContentApplicationJsonSchemaStatus":{"type":"string","enum":["initializing","ready","failed","loading"],"title":"ApiDatasetsPostResponsesContentApplicationJsonSchemaStatus"},"ApiDatasetsPostResponsesContentApplicationJsonSchemaInitialLogFilters":{"type":"object","properties":{"operator":{"type":"string"},"value":{"description":"Any type"}},"title":"ApiDatasetsPostResponsesContentApplicationJsonSchemaInitialLogFilters"},"ApiDatasetsPostResponsesContentApplicationJsonSchemaGranularity":{"type":"string","enum":["logs","traces"],"default":"logs","description":"Evaluation unit. Immutable after dataset creation.","title":"ApiDatasetsPostResponsesContentApplicationJsonSchemaGranularity"},"Datasets_createDataset_Response_201":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"status":{"$ref":"#/components/schemas/ApiDatasetsPostResponsesContentApplicationJsonSchemaStatus"},"initial_log_filters":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiDatasetsPostResponsesContentApplicationJsonSchemaInitialLogFilters"},"description":"Platform-standard filters keyed by field name."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"granularity":{"$ref":"#/components/schemas/ApiDatasetsPostResponsesContentApplicationJsonSchemaGranularity","description":"Evaluation unit. Immutable after dataset creation."}},"title":"Datasets_createDataset_Response_201"},"ApiDatasetsListPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{"operator":{"type":"string"},"value":{"description":"Any type"}},"title":"ApiDatasetsListPostRequestBodyContentApplicationJsonSchemaFilters"},"ApiDatasetsListPostResponsesContentApplicationJsonSchemaResultsItemsUpdatedBy":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiDatasetsListPostResponsesContentApplicationJsonSchemaResultsItemsUpdatedBy"},"ApiDatasetsListPostResponsesContentApplicationJsonSchemaResultsItemsTagsItems":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"color":{"type":"string"}},"title":"ApiDatasetsListPostResponsesContentApplicationJsonSchemaResultsItemsTagsItems"},"ApiDatasetsListPostResponsesContentApplicationJsonSchemaResultsItemsGranularity":{"type":"string","enum":["logs","traces"],"default":"logs","description":"Evaluation unit. Immutable after dataset creation.","title":"ApiDatasetsListPostResponsesContentApplicationJsonSchemaResultsItemsGranularity"},"ApiDatasetsListPostResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"log_count":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"organization_id":{"type":"integer"},"updated_by":{"$ref":"#/components/schemas/ApiDatasetsListPostResponsesContentApplicationJsonSchemaResultsItemsUpdatedBy"},"log_ids":{"type":"array","items":{"type":"string"}},"updated_at":{"type":"string","format":"date-time"},"completed_annotation_count":{"type":"integer"},"running_status":{"type":"string"},"running_progress":{"type":"number","format":"double"},"starred":{"type":"boolean"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiDatasetsListPostResponsesContentApplicationJsonSchemaResultsItemsTagsItems"}},"granularity":{"$ref":"#/components/schemas/ApiDatasetsListPostResponsesContentApplicationJsonSchemaResultsItemsGranularity","description":"Evaluation unit. Immutable after dataset creation."}},"title":"ApiDatasetsListPostResponsesContentApplicationJsonSchemaResultsItems"},"ApiDatasetsListPostResponsesContentApplicationJsonSchemaCurrentFilters":{"type":"object","properties":{"operator":{"type":"string"},"value":{"description":"Any type"}},"title":"ApiDatasetsListPostResponsesContentApplicationJsonSchemaCurrentFilters"},"ApiDatasetsListPostResponsesContentApplicationJsonSchemaFiltersData":{"type":"object","properties":{},"title":"ApiDatasetsListPostResponsesContentApplicationJsonSchemaFiltersData"},"Datasets_listDatasets_Response_200":{"type":"object","properties":{"count":{"type":"integer","description":"Total matching datasets."},"next":{"type":["string","null"],"description":"Next page URL."},"previous":{"type":["string","null"],"description":"Previous page URL."},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiDatasetsListPostResponsesContentApplicationJsonSchemaResultsItems"},"description":"Array of dataset objects."},"total_count":{"type":"integer","description":"Total datasets matching the current filters."},"current_filters":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiDatasetsListPostResponsesContentApplicationJsonSchemaCurrentFilters"},"description":"Platform-standard filters keyed by field name."},"filters_data":{"$ref":"#/components/schemas/ApiDatasetsListPostResponsesContentApplicationJsonSchemaFiltersData"}},"title":"Datasets_listDatasets_Response_200"},"ListDatasetsRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListDatasetsRequestUnauthorizedError"},"ApiDatasetsIdGetResponsesContentApplicationJsonSchemaInitialLogFiltersStatusCode":{"type":"object","properties":{"operator":{"type":"string"},"value":{"type":"integer"}},"title":"ApiDatasetsIdGetResponsesContentApplicationJsonSchemaInitialLogFiltersStatusCode"},"ApiDatasetsIdGetResponsesContentApplicationJsonSchemaInitialLogFilters":{"type":"object","properties":{"status_code":{"$ref":"#/components/schemas/ApiDatasetsIdGetResponsesContentApplicationJsonSchemaInitialLogFiltersStatusCode"}},"title":"ApiDatasetsIdGetResponsesContentApplicationJsonSchemaInitialLogFilters"},"ApiDatasetsIdGetResponsesContentApplicationJsonSchemaGranularity":{"type":"string","enum":["logs","traces"],"default":"logs","description":"Evaluation unit. Immutable after dataset creation.","title":"ApiDatasetsIdGetResponsesContentApplicationJsonSchemaGranularity"},"Datasets_retrieveDataset_Response_200":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"description":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"organization":{"type":"integer"},"initial_log_filters":{"$ref":"#/components/schemas/ApiDatasetsIdGetResponsesContentApplicationJsonSchemaInitialLogFilters"},"unique_organization_ids":{"type":"array","items":{"type":"string"}},"timestamps":{"type":"array","items":{"type":"string"}},"log_count":{"type":"integer"},"evaluator":{"type":["string","null"]},"status":{"type":"string"},"running_status":{"type":"string"},"running_progress":{"type":"integer"},"running_at":{"type":["string","null"]},"completed_annotation_count":{"type":"integer"},"granularity":{"$ref":"#/components/schemas/ApiDatasetsIdGetResponsesContentApplicationJsonSchemaGranularity","description":"Evaluation unit. Immutable after dataset creation."}},"title":"Datasets_retrieveDataset_Response_200"},"ApiDatasetsIdPatchResponsesContentApplicationJsonSchemaInitialLogFiltersStatusCode":{"type":"object","properties":{"operator":{"type":"string"},"value":{"type":"integer"}},"title":"ApiDatasetsIdPatchResponsesContentApplicationJsonSchemaInitialLogFiltersStatusCode"},"ApiDatasetsIdPatchResponsesContentApplicationJsonSchemaInitialLogFilters":{"type":"object","properties":{"status_code":{"$ref":"#/components/schemas/ApiDatasetsIdPatchResponsesContentApplicationJsonSchemaInitialLogFiltersStatusCode"}},"title":"ApiDatasetsIdPatchResponsesContentApplicationJsonSchemaInitialLogFilters"},"ApiDatasetsIdPatchResponsesContentApplicationJsonSchemaGranularity":{"type":"string","enum":["logs","traces"],"default":"logs","description":"Evaluation unit. Immutable after dataset creation.","title":"ApiDatasetsIdPatchResponsesContentApplicationJsonSchemaGranularity"},"Datasets_updateDataset_Response_200":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"description":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"organization":{"type":"integer"},"initial_log_filters":{"$ref":"#/components/schemas/ApiDatasetsIdPatchResponsesContentApplicationJsonSchemaInitialLogFilters"},"unique_organization_ids":{"type":"array","items":{"type":"string"}},"timestamps":{"type":"array","items":{"type":"string"}},"log_count":{"type":"integer"},"evaluator":{"type":"string"},"status":{"type":"string"},"running_status":{"type":"string"},"running_progress":{"type":"integer"},"running_at":{"type":"string"},"completed_annotation_count":{"type":"integer"},"granularity":{"$ref":"#/components/schemas/ApiDatasetsIdPatchResponsesContentApplicationJsonSchemaGranularity","description":"Evaluation unit. Immutable after dataset creation."}},"title":"Datasets_updateDataset_Response_200"},"DatasetLogCreateRequestInput":{"oneOf":[{"type":"string"},{"type":"array","items":{"description":"Any type"}},{"type":"object","additionalProperties":{"description":"Any type"}}],"description":"Model or application input. Provide a string, structured object, or message/value array.","title":"DatasetLogCreateRequestInput"},"DatasetLogCreateRequestOutput":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":{"description":"Any type"}},{"type":"array","items":{"description":"Any type"}}],"description":"Observed model or application output. Provide a string, structured object, or message/value array.","title":"DatasetLogCreateRequestOutput"},"DatasetLogCreateRequestExpectedOutput":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":{"description":"Any type"}},{"type":"array","items":{"description":"Any type"}}],"description":"Optional ground-truth or target output used for evaluation.","title":"DatasetLogCreateRequestExpectedOutput"},"DatasetLogCreateRequest":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/DatasetLogCreateRequestInput","description":"Model or application input. Provide a string, structured object, or message/value array."},"output":{"$ref":"#/components/schemas/DatasetLogCreateRequestOutput","description":"Observed model or application output. Provide a string, structured object, or message/value array."},"expected_output":{"$ref":"#/components/schemas/DatasetLogCreateRequestExpectedOutput","description":"Optional ground-truth or target output used for evaluation."},"metadata":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Additional context for this log, such as category, model, or log type."},"metrics":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Numeric or structured measurements, such as token counts, cost, or latency."}},"required":["input"],"description":"A dataset log object. The same shape is accepted by the single-create and bulk-create endpoints.","title":"DatasetLogCreateRequest"},"Datasets_createDatasetLog_Response_201":{"type":"object","properties":{"message":{"type":"string"},"unique_id":{"type":"string"}},"required":["message","unique_id"],"title":"Datasets_createDatasetLog_Response_201"},"ApiDatasetsDatasetIdLogsListPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{"operator":{"type":"string"},"value":{"description":"Any type"}},"title":"ApiDatasetsDatasetIdLogsListPostRequestBodyContentApplicationJsonSchemaFilters"},"ApiDatasetsDatasetIdLogsListPostRequestBodyContentApplicationJsonSchemaExportFormat":{"type":"string","enum":[".csv",".jsonl"],"description":"Export format. Defaults to `.csv`.","title":"ApiDatasetsDatasetIdLogsListPostRequestBodyContentApplicationJsonSchemaExportFormat"},"ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0ResultsItemsAnnotationCompletedBy":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0ResultsItemsAnnotationCompletedBy"},"ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0ResultsItemsMetadata":{"type":"object","properties":{},"title":"ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0ResultsItemsMetadata"},"ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0ResultsItems":{"type":"object","properties":{"id":{"type":"string"},"unique_id":{"type":"string"},"organization_id":{"type":"string"},"environment":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"start_time":{"type":"string","format":"date-time"},"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_request_tokens":{"type":"integer"},"cost":{"type":"number","format":"double"},"model":{"type":"string"},"latency":{"type":"number","format":"double"},"status_code":{"type":"integer"},"status":{"type":"string"},"prompt":{"type":"string"},"completion":{"type":"string"},"input":{"description":"Any type"},"output":{"description":"Any type"},"dataset_id":{"type":"string"},"annotation_status":{"type":"string"},"annotation_completed_by":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0ResultsItemsAnnotationCompletedBy"},"scores":{"type":"object","additionalProperties":{"description":"Any type"}},"metadata":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0ResultsItemsMetadata"},"custom_identifier":{"type":"string"},"log_type":{"type":"string"}},"title":"ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0ResultsItems"},"ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0CurrentFilters":{"type":"object","properties":{"operator":{"type":"string"},"value":{"description":"Any type"}},"title":"ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0CurrentFilters"},"ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0FiltersData":{"type":"object","properties":{},"title":"ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0FiltersData"},"ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0FilterOptions":{"type":"object","properties":{},"title":"ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0FilterOptions"},"DatasetsListDatasetLogsResponse2000":{"type":"object","properties":{"count":{"type":"integer","description":"Total matching logs."},"next":{"type":["string","null"],"description":"Next page URL."},"previous":{"type":["string","null"],"description":"Previous page URL."},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0ResultsItems"},"description":"Array of dataset log objects."},"total_count":{"type":"integer","description":"Total matching logs."},"current_filters":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0CurrentFilters"},"description":"Platform-standard filters keyed by field name."},"filters_data":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0FiltersData"},"filter_options":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsListPostResponsesContentApplicationJsonSchemaOneOf0FilterOptions"}},"required":["count","results"],"title":"DatasetsListDatasetLogsResponse2000"},"DatasetsListDatasetLogsResponse2001":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"title":"DatasetsListDatasetLogsResponse2001"},"Datasets_listDatasetLogs_Response_200":{"oneOf":[{"$ref":"#/components/schemas/DatasetsListDatasetLogsResponse2000"},{"$ref":"#/components/schemas/DatasetsListDatasetLogsResponse2001"}],"title":"Datasets_listDatasetLogs_Response_200"},"ApiDatasetsDatasetIdLogsUniqueIdGetResponsesContentApplicationJsonSchemaMetadata":{"type":"object","properties":{},"title":"ApiDatasetsDatasetIdLogsUniqueIdGetResponsesContentApplicationJsonSchemaMetadata"},"ApiDatasetsDatasetIdLogsUniqueIdGetResponsesContentApplicationJsonSchemaMessagesItems":{"type":"object","properties":{},"title":"ApiDatasetsDatasetIdLogsUniqueIdGetResponsesContentApplicationJsonSchemaMessagesItems"},"ApiDatasetsDatasetIdLogsUniqueIdGetResponsesContentApplicationJsonSchemaScoresItems":{"type":"object","properties":{},"title":"ApiDatasetsDatasetIdLogsUniqueIdGetResponsesContentApplicationJsonSchemaScoresItems"},"Datasets_retrieveDatasetLog_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Log ID."},"unique_id":{"type":"string","description":"Unique log ID."},"organization_id":{"type":"string"},"environment":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"start_time":{"type":"string","format":"date-time"},"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_request_tokens":{"type":"integer"},"cost":{"type":"number","format":"double"},"model":{"type":"string"},"latency":{"type":"number","format":"double"},"status_code":{"type":"integer"},"status":{"type":"string"},"metadata":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsUniqueIdGetResponsesContentApplicationJsonSchemaMetadata"},"prompt":{"type":"string"},"completion":{"type":"string"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsUniqueIdGetResponsesContentApplicationJsonSchemaMessagesItems"}},"input":{"description":"Any type"},"output":{"description":"Any type"},"expected_output":{"description":"Any type"},"dataset_id":{"type":"string"},"scores":{"type":"array","items":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsUniqueIdGetResponsesContentApplicationJsonSchemaScoresItems"}},"error_code":{"type":"string","maxLength":120},"error_message":{"type":"string"}},"title":"Datasets_retrieveDatasetLog_Response_200"},"ApiDatasetsDatasetIdLogsUniqueIdPatchRequestBodyContentApplicationJsonSchemaMetadata":{"type":"object","properties":{},"title":"ApiDatasetsDatasetIdLogsUniqueIdPatchRequestBodyContentApplicationJsonSchemaMetadata"},"ApiDatasetsDatasetIdLogsUniqueIdPatchResponsesContentApplicationJsonSchemaMetadata":{"type":"object","properties":{},"title":"ApiDatasetsDatasetIdLogsUniqueIdPatchResponsesContentApplicationJsonSchemaMetadata"},"ApiDatasetsDatasetIdLogsUniqueIdPatchResponsesContentApplicationJsonSchemaMessagesItems":{"type":"object","properties":{},"title":"ApiDatasetsDatasetIdLogsUniqueIdPatchResponsesContentApplicationJsonSchemaMessagesItems"},"ApiDatasetsDatasetIdLogsUniqueIdPatchResponsesContentApplicationJsonSchemaScoresItems":{"type":"object","properties":{},"title":"ApiDatasetsDatasetIdLogsUniqueIdPatchResponsesContentApplicationJsonSchemaScoresItems"},"Datasets_updateDatasetLog_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Log ID."},"unique_id":{"type":"string","description":"Unique log ID."},"organization_id":{"type":"string"},"environment":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"start_time":{"type":"string","format":"date-time"},"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_request_tokens":{"type":"integer"},"cost":{"type":"number","format":"double"},"model":{"type":"string"},"latency":{"type":"number","format":"double"},"status_code":{"type":"integer"},"status":{"type":"string"},"metadata":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsUniqueIdPatchResponsesContentApplicationJsonSchemaMetadata"},"prompt":{"type":"string"},"completion":{"type":"string"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsUniqueIdPatchResponsesContentApplicationJsonSchemaMessagesItems"}},"input":{"description":"Any type"},"output":{"description":"Any type"},"expected_output":{"description":"Any type"},"dataset_id":{"type":"string"},"scores":{"type":"array","items":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsUniqueIdPatchResponsesContentApplicationJsonSchemaScoresItems"}},"error_code":{"type":"string","maxLength":120},"error_message":{"type":"string"}},"title":"Datasets_updateDatasetLog_Response_200"},"BulkCreateDatasetLogsRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"BulkCreateDatasetLogsRequestNotFoundError"},"BulkCreateDatasetLogsRequestUnprocessableEntityError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"BulkCreateDatasetLogsRequestUnprocessableEntityError"},"BulkCreateDatasetLogsRequestTooManyRequestsError":{"type":"object","properties":{"detail":{"type":"string"},"retry_after":{"type":"integer","minimum":0,"description":"Seconds to wait before retrying."}},"required":["detail"],"title":"BulkCreateDatasetLogsRequestTooManyRequestsError"},"ApiDatasetsDatasetIdEvalReportsCreatePostResponsesContentApplicationJsonSchemaCreatedTasksItems":{"type":"object","properties":{"task_id":{"type":"string"},"name":{"type":"string"},"dataset_id":{"type":"string"},"evaluator_slug":{"type":"string"},"status":{"type":"string"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"error_message":{"type":"string"},"evaluated_logs_count":{"type":["integer","null"]},"score":{"type":["number","null"],"format":"double"}},"title":"ApiDatasetsDatasetIdEvalReportsCreatePostResponsesContentApplicationJsonSchemaCreatedTasksItems"},"Datasets_runEvalOnDataset_Response_201":{"type":"object","properties":{"created_tasks":{"type":"array","items":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdEvalReportsCreatePostResponsesContentApplicationJsonSchemaCreatedTasksItems"}},"errors":{"type":"object","additionalProperties":{"description":"Any type"}},"experiment_updated":{"type":"boolean"},"experiment_evaluator_ids":{"type":"array","items":{"type":"string"}}},"required":["created_tasks"],"title":"Datasets_runEvalOnDataset_Response_201"},"ApiDatasetsDatasetIdEvalReportsListGetResponsesContentApplicationJsonSchemaCurrentFilters":{"type":"object","properties":{"operator":{"type":"string"},"value":{"description":"Any type"}},"title":"ApiDatasetsDatasetIdEvalReportsListGetResponsesContentApplicationJsonSchemaCurrentFilters"},"ApiDatasetsDatasetIdEvalReportsListGetResponsesContentApplicationJsonSchemaFiltersData":{"type":"object","properties":{},"title":"ApiDatasetsDatasetIdEvalReportsListGetResponsesContentApplicationJsonSchemaFiltersData"},"ApiDatasetsDatasetIdEvalReportsListGetResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"task_id":{"type":"string"},"name":{"type":"string"},"dataset_id":{"type":"string"},"evaluator_slug":{"type":"string"},"status":{"type":"string"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"error_message":{"type":"string"},"evaluated_logs_count":{"type":["integer","null"]},"score":{"type":["number","null"],"format":"double"}},"title":"ApiDatasetsDatasetIdEvalReportsListGetResponsesContentApplicationJsonSchemaResultsItems"},"Datasets_listDatasetEvalRuns_Response_200":{"type":"object","properties":{"count":{"type":"integer"},"next":{"type":["string","null"]},"previous":{"type":["string","null"]},"total_count":{"type":"integer"},"current_filters":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdEvalReportsListGetResponsesContentApplicationJsonSchemaCurrentFilters"},"description":"Platform-standard filters keyed by field name."},"filters_data":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdEvalReportsListGetResponsesContentApplicationJsonSchemaFiltersData"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdEvalReportsListGetResponsesContentApplicationJsonSchemaResultsItems"}}},"title":"Datasets_listDatasetEvalRuns_Response_200"},"ApiDatasetsDatasetIdLogsUniqueIdPutRequestBodyContentApplicationJsonSchemaMetadata":{"type":"object","properties":{},"title":"ApiDatasetsDatasetIdLogsUniqueIdPutRequestBodyContentApplicationJsonSchemaMetadata"},"ApiDatasetsDatasetIdLogsUniqueIdPutResponsesContentApplicationJsonSchemaMetadata":{"type":"object","properties":{},"title":"ApiDatasetsDatasetIdLogsUniqueIdPutResponsesContentApplicationJsonSchemaMetadata"},"ApiDatasetsDatasetIdLogsUniqueIdPutResponsesContentApplicationJsonSchemaMessagesItems":{"type":"object","properties":{},"title":"ApiDatasetsDatasetIdLogsUniqueIdPutResponsesContentApplicationJsonSchemaMessagesItems"},"ApiDatasetsDatasetIdLogsUniqueIdPutResponsesContentApplicationJsonSchemaScoresItems":{"type":"object","properties":{},"title":"ApiDatasetsDatasetIdLogsUniqueIdPutResponsesContentApplicationJsonSchemaScoresItems"},"Datasets_replaceDatasetLog_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Log ID."},"unique_id":{"type":"string","description":"Unique log ID."},"organization_id":{"type":"string"},"environment":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"start_time":{"type":"string","format":"date-time"},"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_request_tokens":{"type":"integer"},"cost":{"type":"number","format":"double"},"model":{"type":"string"},"latency":{"type":"number","format":"double"},"status_code":{"type":"integer"},"status":{"type":"string"},"metadata":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsUniqueIdPutResponsesContentApplicationJsonSchemaMetadata"},"prompt":{"type":"string"},"completion":{"type":"string"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsUniqueIdPutResponsesContentApplicationJsonSchemaMessagesItems"}},"input":{"description":"Any type"},"output":{"description":"Any type"},"expected_output":{"description":"Any type"},"dataset_id":{"type":"string"},"scores":{"type":"array","items":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsUniqueIdPutResponsesContentApplicationJsonSchemaScoresItems"}},"error_code":{"type":"string","maxLength":120},"error_message":{"type":"string"}},"title":"Datasets_replaceDatasetLog_Response_200"},"ApiDatasetsDatasetIdLogsImportPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{"operator":{"type":"string"},"value":{"description":"Any type"}},"title":"ApiDatasetsDatasetIdLogsImportPostRequestBodyContentApplicationJsonSchemaFilters"},"Datasets_importDatasetLogs_Response_200":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"title":"Datasets_importDatasetLogs_Response_200"},"ApiDatasetsDatasetIdLogsImportDeleteRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{"operator":{"type":"string"},"value":{"description":"Any type"}},"title":"ApiDatasetsDatasetIdLogsImportDeleteRequestBodyContentApplicationJsonSchemaFilters"},"Datasets_removeDatasetLogs_Response_200":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"title":"Datasets_removeDatasetLogs_Response_200"},"ApiDatasetsDatasetIdLogsSummaryPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{"operator":{"type":"string"},"value":{"description":"Any type"}},"title":"ApiDatasetsDatasetIdLogsSummaryPostRequestBodyContentApplicationJsonSchemaFilters"},"ApiDatasetsDatasetIdLogsSummaryPostResponsesContentApplicationJsonSchemaScores":{"type":"object","properties":{"evaluator_id":{"type":"string"},"evaluator_slug":{"type":"string"},"evaluator_name":{"type":"string"},"score_value_type":{"type":"string"},"avg_score":{"type":["number","null"],"format":"double"},"true_count":{"type":["integer","null"]},"false_count":{"type":["integer","null"]},"evaluator_family_id":{"type":["string","null"],"description":"Version-independent evaluator or eval-only workflow family ID."}},"title":"ApiDatasetsDatasetIdLogsSummaryPostResponsesContentApplicationJsonSchemaScores"},"Datasets_summarizeDatasetLogsFiltered_Response_200":{"type":"object","properties":{"number_of_requests":{"type":"integer"},"total_cost":{"type":"number","format":"double"},"total_tokens":{"type":"integer"},"total_prompt_tokens":{"type":"integer"},"total_completion_tokens":{"type":"integer"},"avg_latency":{"type":"number","format":"double"},"avg_tps":{"type":"number","format":"double"},"avg_ttft":{"type":"number","format":"double"},"scores":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiDatasetsDatasetIdLogsSummaryPostResponsesContentApplicationJsonSchemaScores"}}},"required":["number_of_requests","total_cost","total_tokens","total_prompt_tokens","total_completion_tokens","avg_latency","avg_tps","avg_ttft","scores"],"title":"Datasets_summarizeDatasetLogsFiltered_Response_200"},"ApiTestsetsPostRequestBodyContentApplicationJsonSchemaColumnDefinitionsItemsType":{"type":"string","enum":["text","image_url","note","object"],"default":"text","description":"Column value type.","title":"ApiTestsetsPostRequestBodyContentApplicationJsonSchemaColumnDefinitionsItemsType"},"ApiTestsetsPostRequestBodyContentApplicationJsonSchemaColumnDefinitionsItems":{"type":"object","properties":{"field":{"type":"string","description":"Canonical field name stored in each row."},"mapped_name":{"type":"string","description":"Optional display or import name for this field."},"width":{"type":"number","format":"double","description":"Optional UI width in pixels."},"is_hidden":{"type":"boolean","default":false,"description":"Whether this column should be hidden in the UI."},"type":{"$ref":"#/components/schemas/ApiTestsetsPostRequestBodyContentApplicationJsonSchemaColumnDefinitionsItemsType","description":"Column value type."}},"required":["field"],"title":"ApiTestsetsPostRequestBodyContentApplicationJsonSchemaColumnDefinitionsItems"},"ApiTestsetsPostResponsesContentApplicationJsonSchemaColumnDefinitionsItemsType":{"type":"string","enum":["text","image_url","note","object"],"default":"text","description":"Column value type.","title":"ApiTestsetsPostResponsesContentApplicationJsonSchemaColumnDefinitionsItemsType"},"ApiTestsetsPostResponsesContentApplicationJsonSchemaColumnDefinitionsItems":{"type":"object","properties":{"field":{"type":"string","description":"Canonical field name stored in each row."},"mapped_name":{"type":"string","description":"Optional display or import name for this field."},"width":{"type":"number","format":"double","description":"Optional UI width in pixels."},"is_hidden":{"type":"boolean","default":false,"description":"Whether this column should be hidden in the UI."},"type":{"$ref":"#/components/schemas/ApiTestsetsPostResponsesContentApplicationJsonSchemaColumnDefinitionsItemsType","description":"Column value type."}},"required":["field"],"title":"ApiTestsetsPostResponsesContentApplicationJsonSchemaColumnDefinitionsItems"},"Testsets_createTestset_Response_201":{"type":"object","properties":{"id":{"type":"string","description":"Public testset ID."},"name":{"type":"string","description":"Testset name."},"created_at":{"type":"string","format":"date-time","description":"When the testset was created."},"updated_at":{"type":"string","format":"date-time","description":"When the testset was last updated."},"current_max_row_index":{"type":"number","format":"double","description":"Highest row index currently present in the testset."},"project":{"type":["string","null"],"description":"Project identifier when the testset is associated with a project."},"column_definitions":{"type":"array","items":{"$ref":"#/components/schemas/ApiTestsetsPostResponsesContentApplicationJsonSchemaColumnDefinitionsItems"},"description":"Configured columns for testset rows."}},"required":["id","name","created_at","updated_at","current_max_row_index"],"title":"Testsets_createTestset_Response_201"},"CreateTestsetRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateTestsetRequestBadRequestError"},"CreateTestsetRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateTestsetRequestUnauthorizedError"},"ApiTestsetsListPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{},"description":"Filter criteria using the standard Respan filter format.","title":"ApiTestsetsListPostRequestBodyContentApplicationJsonSchemaFilters"},"ApiTestsetsListPostResponsesContentApplicationJsonSchemaCurrentFilters":{"type":"object","properties":{},"description":"Normalized filters applied to this response.","title":"ApiTestsetsListPostResponsesContentApplicationJsonSchemaCurrentFilters"},"ApiTestsetsListPostResponsesContentApplicationJsonSchemaFiltersData":{"type":"object","properties":{},"description":"Available filter definitions for building list queries.","title":"ApiTestsetsListPostResponsesContentApplicationJsonSchemaFiltersData"},"ApiTestsetsListPostResponsesContentApplicationJsonSchemaResultsItemsColumnDefinitionsItemsType":{"type":"string","enum":["text","image_url","note","object"],"default":"text","description":"Column value type.","title":"ApiTestsetsListPostResponsesContentApplicationJsonSchemaResultsItemsColumnDefinitionsItemsType"},"ApiTestsetsListPostResponsesContentApplicationJsonSchemaResultsItemsColumnDefinitionsItems":{"type":"object","properties":{"field":{"type":"string","description":"Canonical field name stored in each row."},"mapped_name":{"type":"string","description":"Optional display or import name for this field."},"width":{"type":"number","format":"double","description":"Optional UI width in pixels."},"is_hidden":{"type":"boolean","default":false,"description":"Whether this column should be hidden in the UI."},"type":{"$ref":"#/components/schemas/ApiTestsetsListPostResponsesContentApplicationJsonSchemaResultsItemsColumnDefinitionsItemsType","description":"Column value type."}},"required":["field"],"title":"ApiTestsetsListPostResponsesContentApplicationJsonSchemaResultsItemsColumnDefinitionsItems"},"ApiTestsetsListPostResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string","description":"Public testset ID."},"name":{"type":"string","description":"Testset name."},"created_at":{"type":"string","format":"date-time","description":"When the testset was created."},"updated_at":{"type":"string","format":"date-time","description":"When the testset was last updated."},"current_max_row_index":{"type":"number","format":"double","description":"Highest row index currently present in the testset."},"project":{"type":["string","null"],"description":"Project identifier when the testset is associated with a project."},"column_definitions":{"type":"array","items":{"$ref":"#/components/schemas/ApiTestsetsListPostResponsesContentApplicationJsonSchemaResultsItemsColumnDefinitionsItems"},"description":"Configured columns for testset rows."}},"required":["id","name","created_at","updated_at","current_max_row_index"],"title":"ApiTestsetsListPostResponsesContentApplicationJsonSchemaResultsItems"},"Testsets_listTestsets_Response_200":{"type":"object","properties":{"count":{"type":"integer","description":"Number of testsets returned in this page."},"next":{"type":["string","null"],"description":"URL for the next page, if any."},"previous":{"type":["string","null"],"description":"URL for the previous page, if any."},"current_filters":{"$ref":"#/components/schemas/ApiTestsetsListPostResponsesContentApplicationJsonSchemaCurrentFilters","description":"Normalized filters applied to this response."},"filters_data":{"$ref":"#/components/schemas/ApiTestsetsListPostResponsesContentApplicationJsonSchemaFiltersData","description":"Available filter definitions for building list queries."},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiTestsetsListPostResponsesContentApplicationJsonSchemaResultsItems"},"description":"Array of testsets."}},"required":["count","results"],"title":"Testsets_listTestsets_Response_200"},"ListTestsetsRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListTestsetsRequestBadRequestError"},"ListTestsetsRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListTestsetsRequestUnauthorizedError"},"ApiTestsetsTestsetIdGetResponsesContentApplicationJsonSchemaColumnDefinitionsItemsType":{"type":"string","enum":["text","image_url","note","object"],"default":"text","description":"Column value type.","title":"ApiTestsetsTestsetIdGetResponsesContentApplicationJsonSchemaColumnDefinitionsItemsType"},"ApiTestsetsTestsetIdGetResponsesContentApplicationJsonSchemaColumnDefinitionsItems":{"type":"object","properties":{"field":{"type":"string","description":"Canonical field name stored in each row."},"mapped_name":{"type":"string","description":"Optional display or import name for this field."},"width":{"type":"number","format":"double","description":"Optional UI width in pixels."},"is_hidden":{"type":"boolean","default":false,"description":"Whether this column should be hidden in the UI."},"type":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdGetResponsesContentApplicationJsonSchemaColumnDefinitionsItemsType","description":"Column value type."}},"required":["field"],"title":"ApiTestsetsTestsetIdGetResponsesContentApplicationJsonSchemaColumnDefinitionsItems"},"Testsets_retrieveTestset_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Public testset ID."},"name":{"type":"string","description":"Testset name."},"created_at":{"type":"string","format":"date-time","description":"When the testset was created."},"updated_at":{"type":"string","format":"date-time","description":"When the testset was last updated."},"current_max_row_index":{"type":"number","format":"double","description":"Highest row index currently present in the testset."},"project":{"type":["string","null"],"description":"Project identifier when the testset is associated with a project."},"column_definitions":{"type":"array","items":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdGetResponsesContentApplicationJsonSchemaColumnDefinitionsItems"},"description":"Configured columns for testset rows."},"description":{"type":"string","description":"Testset description."}},"required":["id","name","created_at","updated_at","current_max_row_index"],"title":"Testsets_retrieveTestset_Response_200"},"RetrieveTestsetRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveTestsetRequestUnauthorizedError"},"RetrieveTestsetRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveTestsetRequestNotFoundError"},"ApiTestsetsTestsetIdPatchRequestBodyContentApplicationJsonSchemaColumnDefinitionsItemsType":{"type":"string","enum":["text","image_url","note","object"],"default":"text","description":"Column value type.","title":"ApiTestsetsTestsetIdPatchRequestBodyContentApplicationJsonSchemaColumnDefinitionsItemsType"},"ApiTestsetsTestsetIdPatchRequestBodyContentApplicationJsonSchemaColumnDefinitionsItems":{"type":"object","properties":{"field":{"type":"string","description":"Canonical field name stored in each row."},"mapped_name":{"type":"string","description":"Optional display or import name for this field."},"width":{"type":"number","format":"double","description":"Optional UI width in pixels."},"is_hidden":{"type":"boolean","default":false,"description":"Whether this column should be hidden in the UI."},"type":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdPatchRequestBodyContentApplicationJsonSchemaColumnDefinitionsItemsType","description":"Column value type."}},"required":["field"],"title":"ApiTestsetsTestsetIdPatchRequestBodyContentApplicationJsonSchemaColumnDefinitionsItems"},"ApiTestsetsTestsetIdPatchResponsesContentApplicationJsonSchemaColumnDefinitionsItemsType":{"type":"string","enum":["text","image_url","note","object"],"default":"text","description":"Column value type.","title":"ApiTestsetsTestsetIdPatchResponsesContentApplicationJsonSchemaColumnDefinitionsItemsType"},"ApiTestsetsTestsetIdPatchResponsesContentApplicationJsonSchemaColumnDefinitionsItems":{"type":"object","properties":{"field":{"type":"string","description":"Canonical field name stored in each row."},"mapped_name":{"type":"string","description":"Optional display or import name for this field."},"width":{"type":"number","format":"double","description":"Optional UI width in pixels."},"is_hidden":{"type":"boolean","default":false,"description":"Whether this column should be hidden in the UI."},"type":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdPatchResponsesContentApplicationJsonSchemaColumnDefinitionsItemsType","description":"Column value type."}},"required":["field"],"title":"ApiTestsetsTestsetIdPatchResponsesContentApplicationJsonSchemaColumnDefinitionsItems"},"Testsets_updateTestset_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Public testset ID."},"name":{"type":"string","description":"Testset name."},"created_at":{"type":"string","format":"date-time","description":"When the testset was created."},"updated_at":{"type":"string","format":"date-time","description":"When the testset was last updated."},"current_max_row_index":{"type":"number","format":"double","description":"Highest row index currently present in the testset."},"project":{"type":["string","null"],"description":"Project identifier when the testset is associated with a project."},"column_definitions":{"type":"array","items":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdPatchResponsesContentApplicationJsonSchemaColumnDefinitionsItems"},"description":"Configured columns for testset rows."},"description":{"type":"string","description":"Testset description."}},"required":["id","name","created_at","updated_at","current_max_row_index"],"title":"Testsets_updateTestset_Response_200"},"UpdateTestsetRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateTestsetRequestBadRequestError"},"UpdateTestsetRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateTestsetRequestUnauthorizedError"},"UpdateTestsetRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateTestsetRequestNotFoundError"},"DeleteTestsetRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeleteTestsetRequestUnauthorizedError"},"DeleteTestsetRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeleteTestsetRequestNotFoundError"},"ApiTestsetsTestsetIdRowsPostRequestBodyContentApplicationJsonSchemaTestsetRowsItems":{"type":"object","properties":{"row_index":{"type":"number","format":"double","description":"Optional target row index. If omitted, the row is appended."},"row_data":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Row payload keyed by testset column field."}},"required":["row_data"],"title":"ApiTestsetsTestsetIdRowsPostRequestBodyContentApplicationJsonSchemaTestsetRowsItems"},"ApiTestsetsTestsetIdRowsPostResponsesContentApplicationJsonSchemaItems":{"type":"object","properties":{"row_index":{"type":"number","format":"double","description":"Row index; decimal values can appear after reordering."},"testset_id":{"type":"string","description":"Parent testset ID."},"row_data":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["row_index","testset_id","row_data"],"title":"ApiTestsetsTestsetIdRowsPostResponsesContentApplicationJsonSchemaItems"},"CreateTestsetRowsRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateTestsetRowsRequestBadRequestError"},"CreateTestsetRowsRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateTestsetRowsRequestUnauthorizedError"},"CreateTestsetRowsRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateTestsetRowsRequestNotFoundError"},"ApiTestsetsTestsetIdRowsGetResponsesContentApplicationJsonSchemaCurrentFilters":{"type":"object","properties":{},"description":"Current filter state returned by the paginator.","title":"ApiTestsetsTestsetIdRowsGetResponsesContentApplicationJsonSchemaCurrentFilters"},"ApiTestsetsTestsetIdRowsGetResponsesContentApplicationJsonSchemaResultsItemsRowData":{"type":"object","properties":{},"description":"Row payload keyed by testset column field.","title":"ApiTestsetsTestsetIdRowsGetResponsesContentApplicationJsonSchemaResultsItemsRowData"},"ApiTestsetsTestsetIdRowsGetResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"row_index":{"type":"number","format":"double","description":"Row index. Decimal values can be returned after reordering."},"testset_id":{"type":"string","description":"Parent testset ID."},"row_data":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdRowsGetResponsesContentApplicationJsonSchemaResultsItemsRowData","description":"Row payload keyed by testset column field."}},"required":["row_index","testset_id","row_data"],"title":"ApiTestsetsTestsetIdRowsGetResponsesContentApplicationJsonSchemaResultsItems"},"Testsets_listTestsetRows_Response_200":{"type":"object","properties":{"count":{"type":"integer","description":"Number of rows returned in this page."},"next":{"type":["string","null"],"description":"URL for the next page, if any."},"previous":{"type":["string","null"],"description":"URL for the previous page, if any."},"current_filters":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdRowsGetResponsesContentApplicationJsonSchemaCurrentFilters","description":"Current filter state returned by the paginator."},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdRowsGetResponsesContentApplicationJsonSchemaResultsItems"},"description":"Array of testset rows."}},"required":["count","results"],"title":"Testsets_listTestsetRows_Response_200"},"ListTestsetRowsRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListTestsetRowsRequestUnauthorizedError"},"ListTestsetRowsRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListTestsetRowsRequestNotFoundError"},"ApiTestsetsTestsetIdRowsRowIndexPatchRequestBodyContentApplicationJsonSchemaRowData":{"type":"object","properties":{},"description":"Updated row payload keyed by testset column field.","title":"ApiTestsetsTestsetIdRowsRowIndexPatchRequestBodyContentApplicationJsonSchemaRowData"},"ApiTestsetsTestsetIdRowsRowIndexPatchResponsesContentApplicationJsonSchemaRowData":{"type":"object","properties":{},"description":"Row payload keyed by testset column field.","title":"ApiTestsetsTestsetIdRowsRowIndexPatchResponsesContentApplicationJsonSchemaRowData"},"Testsets_updateTestsetRow_Response_200":{"type":"object","properties":{"row_index":{"type":"number","format":"double","description":"Row index. Decimal values can be returned after reordering."},"testset_id":{"type":"string","description":"Parent testset ID."},"row_data":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdRowsRowIndexPatchResponsesContentApplicationJsonSchemaRowData","description":"Row payload keyed by testset column field."}},"required":["row_index","testset_id","row_data"],"title":"Testsets_updateTestsetRow_Response_200"},"UpdateTestsetRowRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateTestsetRowRequestBadRequestError"},"UpdateTestsetRowRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateTestsetRowRequestUnauthorizedError"},"UpdateTestsetRowRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateTestsetRowRequestNotFoundError"},"DeleteTestsetRowRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeleteTestsetRowRequestUnauthorizedError"},"DeleteTestsetRowRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeleteTestsetRowRequestNotFoundError"},"ApiTestsetsSummaryPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{},"description":"Filter criteria using the standard Respan filter format.","title":"ApiTestsetsSummaryPostRequestBodyContentApplicationJsonSchemaFilters"},"Testsets_getFilteredTestsetsSummary_Response_200":{"type":"object","properties":{"total_count":{"type":"integer","description":"Total matching testsets."}},"required":["total_count"],"title":"Testsets_getFilteredTestsetsSummary_Response_200"},"GetFilteredTestsetsSummaryRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"GetFilteredTestsetsSummaryRequestBadRequestError"},"GetFilteredTestsetsSummaryRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"GetFilteredTestsetsSummaryRequestUnauthorizedError"},"ApiTestsetsTestsetIdPutRequestBodyContentApplicationJsonSchemaColumnDefinitionsItemsType":{"type":"string","enum":["text","image_url","note","object"],"default":"text","description":"Column value type.","title":"ApiTestsetsTestsetIdPutRequestBodyContentApplicationJsonSchemaColumnDefinitionsItemsType"},"ApiTestsetsTestsetIdPutRequestBodyContentApplicationJsonSchemaColumnDefinitionsItems":{"type":"object","properties":{"field":{"type":"string","description":"Canonical field name stored in each row."},"mapped_name":{"type":"string","description":"Optional display or import name for this field."},"width":{"type":"number","format":"double","description":"Optional UI width in pixels."},"is_hidden":{"type":"boolean","default":false,"description":"Whether this column should be hidden in the UI."},"type":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdPutRequestBodyContentApplicationJsonSchemaColumnDefinitionsItemsType","description":"Column value type."}},"required":["field"],"title":"ApiTestsetsTestsetIdPutRequestBodyContentApplicationJsonSchemaColumnDefinitionsItems"},"ApiTestsetsTestsetIdPutResponsesContentApplicationJsonSchemaColumnDefinitionsItemsType":{"type":"string","enum":["text","image_url","note","object"],"default":"text","description":"Column value type.","title":"ApiTestsetsTestsetIdPutResponsesContentApplicationJsonSchemaColumnDefinitionsItemsType"},"ApiTestsetsTestsetIdPutResponsesContentApplicationJsonSchemaColumnDefinitionsItems":{"type":"object","properties":{"field":{"type":"string","description":"Canonical field name stored in each row."},"mapped_name":{"type":"string","description":"Optional display or import name for this field."},"width":{"type":"number","format":"double","description":"Optional UI width in pixels."},"is_hidden":{"type":"boolean","default":false,"description":"Whether this column should be hidden in the UI."},"type":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdPutResponsesContentApplicationJsonSchemaColumnDefinitionsItemsType","description":"Column value type."}},"required":["field"],"title":"ApiTestsetsTestsetIdPutResponsesContentApplicationJsonSchemaColumnDefinitionsItems"},"Testsets_replaceTestset_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Public testset ID."},"name":{"type":"string","description":"Testset name."},"created_at":{"type":"string","format":"date-time","description":"When the testset was created."},"updated_at":{"type":"string","format":"date-time","description":"When the testset was last updated."},"current_max_row_index":{"type":"number","format":"double","description":"Highest row index currently present in the testset."},"project":{"type":["string","null"],"description":"Project identifier when the testset is associated with a project."},"column_definitions":{"type":"array","items":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdPutResponsesContentApplicationJsonSchemaColumnDefinitionsItems"},"description":"Configured columns for testset rows."}},"required":["id","name","created_at","updated_at","current_max_row_index"],"title":"Testsets_replaceTestset_Response_200"},"ReplaceTestsetRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceTestsetRequestBadRequestError"},"ReplaceTestsetRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceTestsetRequestUnauthorizedError"},"ReplaceTestsetRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceTestsetRequestNotFoundError"},"DeleteTestsetRowsRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeleteTestsetRowsRequestBadRequestError"},"DeleteTestsetRowsRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeleteTestsetRowsRequestUnauthorizedError"},"DeleteTestsetRowsRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeleteTestsetRowsRequestNotFoundError"},"ApiTestsetsTestsetIdRowsRowIndexGetResponsesContentApplicationJsonSchemaRowData":{"type":"object","properties":{},"description":"Row payload keyed by testset column field.","title":"ApiTestsetsTestsetIdRowsRowIndexGetResponsesContentApplicationJsonSchemaRowData"},"Testsets_retrieveTestsetRow_Response_200":{"type":"object","properties":{"row_index":{"type":"number","format":"double","description":"Row index. Decimal values can be returned after reordering."},"testset_id":{"type":"string","description":"Parent testset ID."},"row_data":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdRowsRowIndexGetResponsesContentApplicationJsonSchemaRowData","description":"Row payload keyed by testset column field."}},"required":["row_index","testset_id","row_data"],"title":"Testsets_retrieveTestsetRow_Response_200"},"RetrieveTestsetRowRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveTestsetRowRequestUnauthorizedError"},"RetrieveTestsetRowRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveTestsetRowRequestNotFoundError"},"ApiTestsetsTestsetIdRowsRowIndexPutRequestBodyContentApplicationJsonSchemaRowData":{"type":"object","properties":{},"description":"Updated row payload keyed by testset column field.","title":"ApiTestsetsTestsetIdRowsRowIndexPutRequestBodyContentApplicationJsonSchemaRowData"},"ApiTestsetsTestsetIdRowsRowIndexPutResponsesContentApplicationJsonSchemaRowData":{"type":"object","properties":{},"description":"Row payload keyed by testset column field.","title":"ApiTestsetsTestsetIdRowsRowIndexPutResponsesContentApplicationJsonSchemaRowData"},"Testsets_replaceTestsetRow_Response_200":{"type":"object","properties":{"row_index":{"type":"number","format":"double","description":"Row index. Decimal values can be returned after reordering."},"testset_id":{"type":"string","description":"Parent testset ID."},"row_data":{"$ref":"#/components/schemas/ApiTestsetsTestsetIdRowsRowIndexPutResponsesContentApplicationJsonSchemaRowData","description":"Row payload keyed by testset column field."}},"required":["row_index","testset_id","row_data"],"title":"Testsets_replaceTestsetRow_Response_200"},"ReplaceTestsetRowRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceTestsetRowRequestBadRequestError"},"ReplaceTestsetRowRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceTestsetRowRequestUnauthorizedError"},"ReplaceTestsetRowRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceTestsetRowRequestNotFoundError"},"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code"],"title":"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaType"},"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaScoreValueType"},"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaEvalClass":{"type":"string","enum":["keywordsai_custom_llm","custom_code"],"description":"Optional pre-built evaluator template.","title":"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaEvalClass"},"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue"},"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems"},"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaScoreConfig":{"type":"object","properties":{"min_score":{"type":"number","format":"double"},"max_score":{"type":"number","format":"double"},"choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems"}}},"description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`.","title":"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaScoreConfig"},"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaPassingConditions":{"type":"object","properties":{},"description":"Passing conditions in the standard Respan filter format.","title":"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaPassingConditions"},"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat":{"type":"object","properties":{},"title":"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat"},"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems":{"type":"object","properties":{},"title":"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems"},"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaLlmConfig":{"type":"object","properties":{"model":{"type":"string"},"evaluator_definition":{"type":"string","description":"Prompt/template used by the LLM grader."},"scoring_rubric":{"type":"string"},"temperature":{"type":"number","format":"double"},"max_tokens":{"type":"integer"},"top_p":{"type":"number","format":"double"},"frequency_penalty":{"type":"number","format":"double"},"presence_penalty":{"type":"number","format":"double"},"stop":{"type":"array","items":{"type":"string"}},"response_format":{"$ref":"#/components/schemas/ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems"}},"tool_choice":{"description":"Any type"},"verbosity":{"type":"string"}},"description":"LLM grader configuration. The backend validates this against the selected evaluator form.","title":"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaLlmConfig"},"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaCodeConfig":{"type":"object","properties":{"eval_code_snippet":{"type":"string","description":"Python code defining `main(eval_inputs)`."}},"description":"Code grader configuration.","title":"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaCodeConfig"},"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue"},"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsPostRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems"},"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code"],"title":"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaType"},"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaScoreValueType"},"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaEvalClass":{"type":"string","enum":["keywordsai_custom_llm","custom_code"],"description":"Optional pre-built evaluator template.","title":"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaEvalClass"},"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue"},"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaScoreConfigChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsPostResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaScoreConfigChoicesItems"},"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaScoreConfig":{"type":"object","properties":{"min_score":{"type":"number","format":"double"},"max_score":{"type":"number","format":"double"},"choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsPostResponsesContentApplicationJsonSchemaScoreConfigChoicesItems"}}},"description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`.","title":"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaScoreConfig"},"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaPassingConditions":{"type":"object","properties":{},"description":"Passing conditions in the standard Respan filter format.","title":"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaPassingConditions"},"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaLlmConfigResponseFormat":{"type":"object","properties":{},"title":"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaLlmConfigResponseFormat"},"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaLlmConfigToolsItems":{"type":"object","properties":{},"title":"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaLlmConfigToolsItems"},"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaLlmConfig":{"type":"object","properties":{"model":{"type":"string"},"evaluator_definition":{"type":"string","description":"Prompt/template used by the LLM grader."},"scoring_rubric":{"type":"string"},"temperature":{"type":"number","format":"double"},"max_tokens":{"type":"integer"},"top_p":{"type":"number","format":"double"},"frequency_penalty":{"type":"number","format":"double"},"presence_penalty":{"type":"number","format":"double"},"stop":{"type":"array","items":{"type":"string"}},"response_format":{"$ref":"#/components/schemas/ApiEvaluatorsPostResponsesContentApplicationJsonSchemaLlmConfigResponseFormat"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsPostResponsesContentApplicationJsonSchemaLlmConfigToolsItems"}},"tool_choice":{"description":"Any type"},"verbosity":{"type":"string"}},"description":"LLM grader configuration. The backend validates this against the selected evaluator form.","title":"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaLlmConfig"},"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaCodeConfig":{"type":"object","properties":{"eval_code_snippet":{"type":"string","description":"Python code defining `main(eval_inputs)`."}},"description":"Code grader configuration.","title":"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaCodeConfig"},"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue"},"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaCategoricalChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsPostResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaCategoricalChoicesItems"},"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaCreatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaCreatedBy"},"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaUpdatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaUpdatedBy"},"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaEditor":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaEditor"},"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaTagsItems":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"color":{"type":"string"}},"title":"ApiEvaluatorsPostResponsesContentApplicationJsonSchemaTagsItems"},"Evaluators_createEvaluator_Response_201":{"type":"object","properties":{"id":{"type":"string","description":"Stable evaluator ID shared by all versions."},"version_id":{"type":"string","description":"Unique ID for this evaluator version."},"version":{"type":"integer","description":"Version number. The first draft is version 0."},"is_read_only":{"type":"boolean","description":"Whether this version is committed and immutable."},"version_description":{"type":"string","description":"Commit message for this version."},"name":{"type":"string"},"evaluator_slug":{"type":"string","description":"Organization-scoped evaluator slug."},"type":{"$ref":"#/components/schemas/ApiEvaluatorsPostResponsesContentApplicationJsonSchemaType"},"score_value_type":{"$ref":"#/components/schemas/ApiEvaluatorsPostResponsesContentApplicationJsonSchemaScoreValueType"},"eval_class":{"$ref":"#/components/schemas/ApiEvaluatorsPostResponsesContentApplicationJsonSchemaEvalClass","description":"Optional pre-built evaluator template."},"description":{"type":["string","null"]},"score_config":{"$ref":"#/components/schemas/ApiEvaluatorsPostResponsesContentApplicationJsonSchemaScoreConfig","description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`."},"passing_conditions":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsPostResponsesContentApplicationJsonSchemaPassingConditions"},{"type":"null"}],"description":"Passing conditions in the standard Respan filter format."},"llm_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsPostResponsesContentApplicationJsonSchemaLlmConfig"},{"type":"null"}],"description":"LLM grader configuration. The backend validates this against the selected evaluator form."},"code_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsPostResponsesContentApplicationJsonSchemaCodeConfig"},{"type":"null"}],"description":"Code grader configuration."},"configurations":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Legacy user-facing configuration object. New clients should prefer `llm_config`, `code_config`, `score_config`, and `passing_conditions`."},"categorical_choices":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiEvaluatorsPostResponsesContentApplicationJsonSchemaCategoricalChoicesItems"}},"starred":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_by":{"$ref":"#/components/schemas/ApiEvaluatorsPostResponsesContentApplicationJsonSchemaCreatedBy"},"updated_by":{"$ref":"#/components/schemas/ApiEvaluatorsPostResponsesContentApplicationJsonSchemaUpdatedBy"},"editor":{"$ref":"#/components/schemas/ApiEvaluatorsPostResponsesContentApplicationJsonSchemaEditor"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsPostResponsesContentApplicationJsonSchemaTagsItems"}},"is_public":{"type":"boolean","description":"Whether this is a Respan-managed public evaluator."}},"required":["id","name","type","score_value_type"],"title":"Evaluators_createEvaluator_Response_201"},"CreateEvaluatorRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateEvaluatorRequestBadRequestError"},"CreateEvaluatorRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateEvaluatorRequestUnauthorizedError"},"ApiEvaluatorsListPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{},"description":"Filter criteria using the standard Respan filter format.","title":"ApiEvaluatorsListPostRequestBodyContentApplicationJsonSchemaFilters"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaCurrentFilters":{"type":"object","properties":{},"description":"Normalized filters applied to this request.","title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaCurrentFilters"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsType":{"type":"string","enum":["llm","human","code"],"title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsType"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsScoreValueType"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsEvalClass":{"type":"string","enum":["keywordsai_custom_llm","custom_code"],"description":"Optional pre-built evaluator template.","title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsEvalClass"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsScoreConfigChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsScoreConfigChoicesItemsValue"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsScoreConfigChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsScoreConfigChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsScoreConfigChoicesItems"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsScoreConfig":{"type":"object","properties":{"min_score":{"type":"number","format":"double"},"max_score":{"type":"number","format":"double"},"choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsScoreConfigChoicesItems"}}},"description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`.","title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsScoreConfig"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsPassingConditions":{"type":"object","properties":{},"description":"Passing conditions in the standard Respan filter format.","title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsPassingConditions"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsLlmConfigResponseFormat":{"type":"object","properties":{},"title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsLlmConfigResponseFormat"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsLlmConfigToolsItems":{"type":"object","properties":{},"title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsLlmConfigToolsItems"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsLlmConfig":{"type":"object","properties":{"model":{"type":"string"},"evaluator_definition":{"type":"string","description":"Prompt/template used by the LLM grader."},"scoring_rubric":{"type":"string"},"temperature":{"type":"number","format":"double"},"max_tokens":{"type":"integer"},"top_p":{"type":"number","format":"double"},"frequency_penalty":{"type":"number","format":"double"},"presence_penalty":{"type":"number","format":"double"},"stop":{"type":"array","items":{"type":"string"}},"response_format":{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsLlmConfigResponseFormat"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsLlmConfigToolsItems"}},"tool_choice":{"description":"Any type"},"verbosity":{"type":"string"}},"description":"LLM grader configuration. The backend validates this against the selected evaluator form.","title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsLlmConfig"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsCodeConfig":{"type":"object","properties":{"eval_code_snippet":{"type":"string","description":"Python code defining `main(eval_inputs)`."}},"description":"Code grader configuration.","title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsCodeConfig"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsCategoricalChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsCategoricalChoicesItemsValue"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsCategoricalChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsCategoricalChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsCategoricalChoicesItems"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsCreatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsCreatedBy"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsUpdatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsUpdatedBy"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsEditor":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsEditor"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsTagsItems":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"color":{"type":"string"}},"title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsTagsItems"},"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string","description":"Stable evaluator ID shared by all versions."},"version_id":{"type":"string","description":"Unique ID for this evaluator version."},"version":{"type":"integer","description":"Version number. The first draft is version 0."},"is_read_only":{"type":"boolean","description":"Whether this version is committed and immutable."},"version_description":{"type":"string","description":"Commit message for this version."},"name":{"type":"string"},"evaluator_slug":{"type":"string","description":"Organization-scoped evaluator slug."},"type":{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsType"},"score_value_type":{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsScoreValueType"},"eval_class":{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsEvalClass","description":"Optional pre-built evaluator template."},"description":{"type":["string","null"]},"score_config":{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsScoreConfig","description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`."},"passing_conditions":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsPassingConditions"},{"type":"null"}],"description":"Passing conditions in the standard Respan filter format."},"llm_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsLlmConfig"},{"type":"null"}],"description":"LLM grader configuration. The backend validates this against the selected evaluator form."},"code_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsCodeConfig"},{"type":"null"}],"description":"Code grader configuration."},"configurations":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Legacy user-facing configuration object. New clients should prefer `llm_config`, `code_config`, `score_config`, and `passing_conditions`."},"categorical_choices":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsCategoricalChoicesItems"}},"starred":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_by":{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsCreatedBy"},"updated_by":{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsUpdatedBy"},"editor":{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsEditor"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItemsTagsItems"}},"is_public":{"type":"boolean","description":"Whether this is a Respan-managed public evaluator."},"version_count":{"type":"integer","minimum":0}},"required":["id","name","type","score_value_type"],"title":"ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItems"},"Evaluators_listEvaluators_Response_200":{"type":"object","properties":{"count":{"type":"integer","description":"Number of resources returned on this page."},"next":{"type":["string","null"],"description":"URL for the next page, if any."},"previous":{"type":["string","null"],"description":"URL for the previous page, if any."},"current_filters":{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaCurrentFilters","description":"Normalized filters applied to this request."},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsListPostResponsesContentApplicationJsonSchemaResultsItems"}},"filters_data":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Available filter options for evaluator list UI clients."}},"required":["count","results"],"title":"Evaluators_listEvaluators_Response_200"},"ListEvaluatorsRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListEvaluatorsRequestBadRequestError"},"ListEvaluatorsRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListEvaluatorsRequestUnauthorizedError"},"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code"],"title":"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaType"},"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaScoreValueType"},"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaEvalClass":{"type":"string","enum":["keywordsai_custom_llm","custom_code"],"description":"Optional pre-built evaluator template.","title":"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaEvalClass"},"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaScoreConfigChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaScoreConfigChoicesItems"},"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaScoreConfig":{"type":"object","properties":{"min_score":{"type":"number","format":"double"},"max_score":{"type":"number","format":"double"},"choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaScoreConfigChoicesItems"}}},"description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`.","title":"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaScoreConfig"},"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaPassingConditions":{"type":"object","properties":{},"description":"Passing conditions in the standard Respan filter format.","title":"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaPassingConditions"},"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaLlmConfigResponseFormat":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaLlmConfigResponseFormat"},"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaLlmConfigToolsItems":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaLlmConfigToolsItems"},"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaLlmConfig":{"type":"object","properties":{"model":{"type":"string"},"evaluator_definition":{"type":"string","description":"Prompt/template used by the LLM grader."},"scoring_rubric":{"type":"string"},"temperature":{"type":"number","format":"double"},"max_tokens":{"type":"integer"},"top_p":{"type":"number","format":"double"},"frequency_penalty":{"type":"number","format":"double"},"presence_penalty":{"type":"number","format":"double"},"stop":{"type":"array","items":{"type":"string"}},"response_format":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaLlmConfigResponseFormat"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaLlmConfigToolsItems"}},"tool_choice":{"description":"Any type"},"verbosity":{"type":"string"}},"description":"LLM grader configuration. The backend validates this against the selected evaluator form.","title":"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaLlmConfig"},"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaCodeConfig":{"type":"object","properties":{"eval_code_snippet":{"type":"string","description":"Python code defining `main(eval_inputs)`."}},"description":"Code grader configuration.","title":"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaCodeConfig"},"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaCategoricalChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaCategoricalChoicesItems"},"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaCreatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaCreatedBy"},"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaUpdatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaUpdatedBy"},"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaEditor":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaEditor"},"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaTagsItems":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"color":{"type":"string"}},"title":"ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaTagsItems"},"Evaluators_retrieveEvaluator_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Stable evaluator ID shared by all versions."},"version_id":{"type":"string","description":"Unique ID for this evaluator version."},"version":{"type":"integer","description":"Version number. The first draft is version 0."},"is_read_only":{"type":"boolean","description":"Whether this version is committed and immutable."},"version_description":{"type":"string","description":"Commit message for this version."},"name":{"type":"string"},"evaluator_slug":{"type":"string","description":"Organization-scoped evaluator slug."},"type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaType"},"score_value_type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaScoreValueType"},"eval_class":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaEvalClass","description":"Optional pre-built evaluator template."},"description":{"type":["string","null"]},"score_config":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaScoreConfig","description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`."},"passing_conditions":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaPassingConditions"},{"type":"null"}],"description":"Passing conditions in the standard Respan filter format."},"llm_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaLlmConfig"},{"type":"null"}],"description":"LLM grader configuration. The backend validates this against the selected evaluator form."},"code_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaCodeConfig"},{"type":"null"}],"description":"Code grader configuration."},"configurations":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Legacy user-facing configuration object. New clients should prefer `llm_config`, `code_config`, `score_config`, and `passing_conditions`."},"categorical_choices":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaCategoricalChoicesItems"}},"starred":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_by":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaCreatedBy"},"updated_by":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaUpdatedBy"},"editor":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaEditor"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdGetResponsesContentApplicationJsonSchemaTagsItems"}},"is_public":{"type":"boolean","description":"Whether this is a Respan-managed public evaluator."}},"required":["id","name","type","score_value_type"],"title":"Evaluators_retrieveEvaluator_Response_200"},"RetrieveEvaluatorRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveEvaluatorRequestUnauthorizedError"},"RetrieveEvaluatorRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveEvaluatorRequestNotFoundError"},"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code"],"title":"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaType"},"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaScoreValueType"},"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaEvalClass":{"type":"string","enum":["keywordsai_custom_llm","custom_code"],"description":"Optional pre-built evaluator template.","title":"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaEvalClass"},"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems"},"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaScoreConfig":{"type":"object","properties":{"min_score":{"type":"number","format":"double"},"max_score":{"type":"number","format":"double"},"choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems"}}},"description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`.","title":"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaScoreConfig"},"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaPassingConditions":{"type":"object","properties":{},"description":"Passing conditions in the standard Respan filter format.","title":"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaPassingConditions"},"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat"},"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems"},"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaLlmConfig":{"type":"object","properties":{"model":{"type":"string"},"evaluator_definition":{"type":"string","description":"Prompt/template used by the LLM grader."},"scoring_rubric":{"type":"string"},"temperature":{"type":"number","format":"double"},"max_tokens":{"type":"integer"},"top_p":{"type":"number","format":"double"},"frequency_penalty":{"type":"number","format":"double"},"presence_penalty":{"type":"number","format":"double"},"stop":{"type":"array","items":{"type":"string"}},"response_format":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems"}},"tool_choice":{"description":"Any type"},"verbosity":{"type":"string"}},"description":"LLM grader configuration. The backend validates this against the selected evaluator form.","title":"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaLlmConfig"},"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaCodeConfig":{"type":"object","properties":{"eval_code_snippet":{"type":"string","description":"Python code defining `main(eval_inputs)`."}},"description":"Code grader configuration.","title":"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaCodeConfig"},"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdPatchRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems"},"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code"],"title":"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaType"},"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaScoreValueType"},"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaEvalClass":{"type":"string","enum":["keywordsai_custom_llm","custom_code"],"description":"Optional pre-built evaluator template.","title":"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaEvalClass"},"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaScoreConfigChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaScoreConfigChoicesItems"},"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaScoreConfig":{"type":"object","properties":{"min_score":{"type":"number","format":"double"},"max_score":{"type":"number","format":"double"},"choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaScoreConfigChoicesItems"}}},"description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`.","title":"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaScoreConfig"},"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaPassingConditions":{"type":"object","properties":{},"description":"Passing conditions in the standard Respan filter format.","title":"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaPassingConditions"},"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaLlmConfigResponseFormat":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaLlmConfigResponseFormat"},"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaLlmConfigToolsItems":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaLlmConfigToolsItems"},"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaLlmConfig":{"type":"object","properties":{"model":{"type":"string"},"evaluator_definition":{"type":"string","description":"Prompt/template used by the LLM grader."},"scoring_rubric":{"type":"string"},"temperature":{"type":"number","format":"double"},"max_tokens":{"type":"integer"},"top_p":{"type":"number","format":"double"},"frequency_penalty":{"type":"number","format":"double"},"presence_penalty":{"type":"number","format":"double"},"stop":{"type":"array","items":{"type":"string"}},"response_format":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaLlmConfigResponseFormat"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaLlmConfigToolsItems"}},"tool_choice":{"description":"Any type"},"verbosity":{"type":"string"}},"description":"LLM grader configuration. The backend validates this against the selected evaluator form.","title":"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaLlmConfig"},"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaCodeConfig":{"type":"object","properties":{"eval_code_snippet":{"type":"string","description":"Python code defining `main(eval_inputs)`."}},"description":"Code grader configuration.","title":"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaCodeConfig"},"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaCategoricalChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaCategoricalChoicesItems"},"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaCreatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaCreatedBy"},"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaUpdatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaUpdatedBy"},"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaEditor":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaEditor"},"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaTagsItems":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"color":{"type":"string"}},"title":"ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaTagsItems"},"Evaluators_updateEvaluator_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Stable evaluator ID shared by all versions."},"version_id":{"type":"string","description":"Unique ID for this evaluator version."},"version":{"type":"integer","description":"Version number. The first draft is version 0."},"is_read_only":{"type":"boolean","description":"Whether this version is committed and immutable."},"version_description":{"type":"string","description":"Commit message for this version."},"name":{"type":"string"},"evaluator_slug":{"type":"string","description":"Organization-scoped evaluator slug."},"type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaType"},"score_value_type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaScoreValueType"},"eval_class":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaEvalClass","description":"Optional pre-built evaluator template."},"description":{"type":["string","null"]},"score_config":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaScoreConfig","description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`."},"passing_conditions":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaPassingConditions"},{"type":"null"}],"description":"Passing conditions in the standard Respan filter format."},"llm_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaLlmConfig"},{"type":"null"}],"description":"LLM grader configuration. The backend validates this against the selected evaluator form."},"code_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaCodeConfig"},{"type":"null"}],"description":"Code grader configuration."},"configurations":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Legacy user-facing configuration object. New clients should prefer `llm_config`, `code_config`, `score_config`, and `passing_conditions`."},"categorical_choices":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaCategoricalChoicesItems"}},"starred":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_by":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaCreatedBy"},"updated_by":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaUpdatedBy"},"editor":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaEditor"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPatchResponsesContentApplicationJsonSchemaTagsItems"}},"is_public":{"type":"boolean","description":"Whether this is a Respan-managed public evaluator."}},"required":["id","name","type","score_value_type"],"title":"Evaluators_updateEvaluator_Response_200"},"UpdateEvaluatorRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateEvaluatorRequestBadRequestError"},"UpdateEvaluatorRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateEvaluatorRequestUnauthorizedError"},"UpdateEvaluatorRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateEvaluatorRequestNotFoundError"},"DeleteEvaluatorRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeleteEvaluatorRequestUnauthorizedError"},"DeleteEvaluatorRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeleteEvaluatorRequestNotFoundError"},"ApiEvaluatorsEvaluatorIdRunPostRequestBodyContentApplicationJsonSchemaInputsMetrics":{"type":"object","properties":{},"description":"Runtime metrics such as cost, latency, and token counts.","title":"ApiEvaluatorsEvaluatorIdRunPostRequestBodyContentApplicationJsonSchemaInputsMetrics"},"ApiEvaluatorsEvaluatorIdRunPostRequestBodyContentApplicationJsonSchemaInputsMetadata":{"type":"object","properties":{},"description":"Request metadata such as model, environment, trace IDs, or customer identifiers.","title":"ApiEvaluatorsEvaluatorIdRunPostRequestBodyContentApplicationJsonSchemaInputsMetadata"},"ApiEvaluatorsEvaluatorIdRunPostRequestBodyContentApplicationJsonSchemaInputs":{"type":"object","properties":{"input":{"description":"Input/request being evaluated."},"output":{"description":"Output/response being evaluated."},"expected_output":{"description":"Reference output, when available."},"metrics":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostRequestBodyContentApplicationJsonSchemaInputsMetrics","description":"Runtime metrics such as cost, latency, and token counts."},"metadata":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostRequestBodyContentApplicationJsonSchemaInputsMetadata","description":"Request metadata such as model, environment, trace IDs, or customer identifiers."},"llm_input":{"type":"string","description":"Legacy alias for `input`."},"llm_output":{"type":"string","description":"Legacy alias for `output`."}},"description":"Unified evaluator inputs.","title":"ApiEvaluatorsEvaluatorIdRunPostRequestBodyContentApplicationJsonSchemaInputs"},"ApiEvaluatorsEvaluatorIdRunPostRequestBodyContentApplicationJsonSchemaGenerationMethod":{"type":"string","enum":["auto","llm","code"],"default":"auto","description":"Optional method override for evaluators that support multiple execution modes.","title":"ApiEvaluatorsEvaluatorIdRunPostRequestBodyContentApplicationJsonSchemaGenerationMethod"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaInputsMetrics":{"type":"object","properties":{},"description":"Runtime metrics such as cost, latency, and token counts.","title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaInputsMetrics"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaInputsMetadata":{"type":"object","properties":{},"description":"Request metadata such as model, environment, trace IDs, or customer identifiers.","title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaInputsMetadata"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaInputs":{"type":"object","properties":{"input":{"description":"Input/request being evaluated."},"output":{"description":"Output/response being evaluated."},"expected_output":{"description":"Reference output, when available."},"metrics":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaInputsMetrics","description":"Runtime metrics such as cost, latency, and token counts."},"metadata":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaInputsMetadata","description":"Request metadata such as model, environment, trace IDs, or customer identifiers."},"llm_input":{"type":"string","description":"Legacy alias for `input`."},"llm_output":{"type":"string","description":"Legacy alias for `output`."}},"description":"Unified evaluator inputs.","title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaInputs"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorType":{"type":"string","enum":["llm","human","code"],"title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorType"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorScoreValueType"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorEvalClass":{"type":"string","enum":["keywordsai_custom_llm","custom_code"],"description":"Optional pre-built evaluator template.","title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorEvalClass"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorScoreConfigChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorScoreConfigChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorScoreConfigChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorScoreConfigChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorScoreConfigChoicesItems"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorScoreConfig":{"type":"object","properties":{"min_score":{"type":"number","format":"double"},"max_score":{"type":"number","format":"double"},"choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorScoreConfigChoicesItems"}}},"description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`.","title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorScoreConfig"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorPassingConditions":{"type":"object","properties":{},"description":"Passing conditions in the standard Respan filter format.","title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorPassingConditions"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorLlmConfigResponseFormat":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorLlmConfigResponseFormat"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorLlmConfigToolsItems":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorLlmConfigToolsItems"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorLlmConfig":{"type":"object","properties":{"model":{"type":"string"},"evaluator_definition":{"type":"string","description":"Prompt/template used by the LLM grader."},"scoring_rubric":{"type":"string"},"temperature":{"type":"number","format":"double"},"max_tokens":{"type":"integer"},"top_p":{"type":"number","format":"double"},"frequency_penalty":{"type":"number","format":"double"},"presence_penalty":{"type":"number","format":"double"},"stop":{"type":"array","items":{"type":"string"}},"response_format":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorLlmConfigResponseFormat"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorLlmConfigToolsItems"}},"tool_choice":{"description":"Any type"},"verbosity":{"type":"string"}},"description":"LLM grader configuration. The backend validates this against the selected evaluator form.","title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorLlmConfig"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorCodeConfig":{"type":"object","properties":{"eval_code_snippet":{"type":"string","description":"Python code defining `main(eval_inputs)`."}},"description":"Code grader configuration.","title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorCodeConfig"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorCategoricalChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorCategoricalChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorCategoricalChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorCategoricalChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorCategoricalChoicesItems"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorCreatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorCreatedBy"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorUpdatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorUpdatedBy"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorEditor":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorEditor"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorTagsItems":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"color":{"type":"string"}},"title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorTagsItems"},"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluator":{"type":"object","properties":{"id":{"type":"string","description":"Stable evaluator ID shared by all versions."},"version_id":{"type":"string","description":"Unique ID for this evaluator version."},"version":{"type":"integer","description":"Version number. The first draft is version 0."},"is_read_only":{"type":"boolean","description":"Whether this version is committed and immutable."},"version_description":{"type":"string","description":"Commit message for this version."},"name":{"type":"string"},"evaluator_slug":{"type":"string","description":"Organization-scoped evaluator slug."},"type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorType"},"score_value_type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorScoreValueType"},"eval_class":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorEvalClass","description":"Optional pre-built evaluator template."},"description":{"type":["string","null"]},"score_config":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorScoreConfig","description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`."},"passing_conditions":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorPassingConditions"},{"type":"null"}],"description":"Passing conditions in the standard Respan filter format."},"llm_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorLlmConfig"},{"type":"null"}],"description":"LLM grader configuration. The backend validates this against the selected evaluator form."},"code_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorCodeConfig"},{"type":"null"}],"description":"Code grader configuration."},"configurations":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Legacy user-facing configuration object. New clients should prefer `llm_config`, `code_config`, `score_config`, and `passing_conditions`."},"categorical_choices":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorCategoricalChoicesItems"}},"starred":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_by":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorCreatedBy"},"updated_by":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorUpdatedBy"},"editor":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorEditor"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluatorTagsItems"}}},"required":["id","name","type","score_value_type"],"title":"ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluator"},"Evaluators_runEvaluator_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Score/result ID."},"created_at":{"type":"string","format":"date-time"},"type":{"type":"string"},"environment":{"type":"string"},"numerical_value":{"type":["number","null"],"format":"double"},"string_value":{"type":["string","null"]},"boolean_value":{"type":["boolean","null"]},"categorical_value":{"type":["array","null"],"items":{"type":"string"}},"json_value":{"type":["string","null"]},"is_passed":{"type":["boolean","null"]},"cost":{"type":["number","null"],"format":"double"},"evaluator_id":{"type":"string"},"evaluator_slug":{"type":"string"},"scorer":{"type":["string","null"]},"log_id":{"type":["string","null"]},"prompt_id":{"type":["string","null"]},"prompt_version_number":{"type":["integer","null"]},"dataset_id":{"type":["string","null"]},"automation_id":{"type":["string","null"]},"status":{"type":["string","null"]},"error_message":{"type":["string","null"]},"inputs":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaInputs","description":"Unified evaluator inputs."},"evaluator":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdRunPostResponsesContentApplicationJsonSchemaEvaluator"}},"title":"Evaluators_runEvaluator_Response_200"},"RunEvaluatorRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RunEvaluatorRequestBadRequestError"},"RunEvaluatorRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RunEvaluatorRequestUnauthorizedError"},"RunEvaluatorRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RunEvaluatorRequestNotFoundError"},"ApiEvaluatorsSummaryPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{},"description":"Filter criteria using the standard Respan filter format.","title":"ApiEvaluatorsSummaryPostRequestBodyContentApplicationJsonSchemaFilters"},"Evaluators_getFilteredEvaluatorsSummary_Response_200":{"type":"object","properties":{"total_count":{"type":"integer"}},"required":["total_count"],"title":"Evaluators_getFilteredEvaluatorsSummary_Response_200"},"GetFilteredEvaluatorsSummaryRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"GetFilteredEvaluatorsSummaryRequestBadRequestError"},"GetFilteredEvaluatorsSummaryRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"GetFilteredEvaluatorsSummaryRequestUnauthorizedError"},"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code"],"title":"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaType"},"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaScoreValueType"},"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaEvalClass":{"type":"string","enum":["keywordsai_custom_llm","custom_code"],"description":"Optional pre-built evaluator template.","title":"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaEvalClass"},"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems"},"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaScoreConfig":{"type":"object","properties":{"min_score":{"type":"number","format":"double"},"max_score":{"type":"number","format":"double"},"choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems"}}},"description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`.","title":"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaScoreConfig"},"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaPassingConditions":{"type":"object","properties":{},"description":"Passing conditions in the standard Respan filter format.","title":"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaPassingConditions"},"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat"},"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems"},"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaLlmConfig":{"type":"object","properties":{"model":{"type":"string"},"evaluator_definition":{"type":"string","description":"Prompt/template used by the LLM grader."},"scoring_rubric":{"type":"string"},"temperature":{"type":"number","format":"double"},"max_tokens":{"type":"integer"},"top_p":{"type":"number","format":"double"},"frequency_penalty":{"type":"number","format":"double"},"presence_penalty":{"type":"number","format":"double"},"stop":{"type":"array","items":{"type":"string"}},"response_format":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems"}},"tool_choice":{"description":"Any type"},"verbosity":{"type":"string"}},"description":"LLM grader configuration. The backend validates this against the selected evaluator form.","title":"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaLlmConfig"},"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaCodeConfig":{"type":"object","properties":{"eval_code_snippet":{"type":"string","description":"Python code defining `main(eval_inputs)`."}},"description":"Code grader configuration.","title":"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaCodeConfig"},"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdPutRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems"},"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code"],"title":"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaType"},"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaScoreValueType"},"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaEvalClass":{"type":"string","enum":["keywordsai_custom_llm","custom_code"],"description":"Optional pre-built evaluator template.","title":"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaEvalClass"},"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaScoreConfigChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaScoreConfigChoicesItems"},"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaScoreConfig":{"type":"object","properties":{"min_score":{"type":"number","format":"double"},"max_score":{"type":"number","format":"double"},"choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaScoreConfigChoicesItems"}}},"description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`.","title":"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaScoreConfig"},"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaPassingConditions":{"type":"object","properties":{},"description":"Passing conditions in the standard Respan filter format.","title":"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaPassingConditions"},"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaLlmConfigResponseFormat":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaLlmConfigResponseFormat"},"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaLlmConfigToolsItems":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaLlmConfigToolsItems"},"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaLlmConfig":{"type":"object","properties":{"model":{"type":"string"},"evaluator_definition":{"type":"string","description":"Prompt/template used by the LLM grader."},"scoring_rubric":{"type":"string"},"temperature":{"type":"number","format":"double"},"max_tokens":{"type":"integer"},"top_p":{"type":"number","format":"double"},"frequency_penalty":{"type":"number","format":"double"},"presence_penalty":{"type":"number","format":"double"},"stop":{"type":"array","items":{"type":"string"}},"response_format":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaLlmConfigResponseFormat"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaLlmConfigToolsItems"}},"tool_choice":{"description":"Any type"},"verbosity":{"type":"string"}},"description":"LLM grader configuration. The backend validates this against the selected evaluator form.","title":"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaLlmConfig"},"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaCodeConfig":{"type":"object","properties":{"eval_code_snippet":{"type":"string","description":"Python code defining `main(eval_inputs)`."}},"description":"Code grader configuration.","title":"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaCodeConfig"},"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaCategoricalChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaCategoricalChoicesItems"},"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaCreatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaCreatedBy"},"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaUpdatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaUpdatedBy"},"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaEditor":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaEditor"},"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaTagsItems":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"color":{"type":"string"}},"title":"ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaTagsItems"},"Evaluators_replaceEvaluator_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Stable evaluator ID shared by all versions."},"version_id":{"type":"string","description":"Unique ID for this evaluator version."},"version":{"type":"integer","description":"Version number. The first draft is version 0."},"is_read_only":{"type":"boolean","description":"Whether this version is committed and immutable."},"version_description":{"type":"string","description":"Commit message for this version."},"name":{"type":"string"},"evaluator_slug":{"type":"string","description":"Organization-scoped evaluator slug."},"type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaType"},"score_value_type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaScoreValueType"},"eval_class":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaEvalClass","description":"Optional pre-built evaluator template."},"description":{"type":["string","null"]},"score_config":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaScoreConfig","description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`."},"passing_conditions":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaPassingConditions"},{"type":"null"}],"description":"Passing conditions in the standard Respan filter format."},"llm_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaLlmConfig"},{"type":"null"}],"description":"LLM grader configuration. The backend validates this against the selected evaluator form."},"code_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaCodeConfig"},{"type":"null"}],"description":"Code grader configuration."},"configurations":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Legacy user-facing configuration object. New clients should prefer `llm_config`, `code_config`, `score_config`, and `passing_conditions`."},"categorical_choices":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaCategoricalChoicesItems"}},"starred":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_by":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaCreatedBy"},"updated_by":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaUpdatedBy"},"editor":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaEditor"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdPutResponsesContentApplicationJsonSchemaTagsItems"}},"is_public":{"type":"boolean","description":"Whether this is a Respan-managed public evaluator."}},"required":["id","name","type","score_value_type"],"title":"Evaluators_replaceEvaluator_Response_200"},"ReplaceEvaluatorRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceEvaluatorRequestBadRequestError"},"ReplaceEvaluatorRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceEvaluatorRequestUnauthorizedError"},"ReplaceEvaluatorRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceEvaluatorRequestNotFoundError"},"ApiEvaluatorsEvaluatorIdVersionsGetResponsesContentApplicationJsonSchemaCurrentFilters":{"type":"object","properties":{},"description":"Normalized filters applied to this request.","title":"ApiEvaluatorsEvaluatorIdVersionsGetResponsesContentApplicationJsonSchemaCurrentFilters"},"ApiEvaluatorsEvaluatorIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsType":{"type":"string","enum":["llm","human","code"],"title":"ApiEvaluatorsEvaluatorIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsType"},"ApiEvaluatorsEvaluatorIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiEvaluatorsEvaluatorIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsScoreValueType"},"ApiEvaluatorsEvaluatorIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsCreatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsCreatedBy"},"ApiEvaluatorsEvaluatorIdVersionsGetResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string","description":"Stable evaluator ID shared by all versions."},"version_id":{"type":"string","description":"Unique ID for this evaluator version."},"version":{"type":"integer","description":"Version number. The first draft is version 0."},"is_read_only":{"type":"boolean","description":"Whether this version is committed and immutable."},"version_description":{"type":"string","description":"Commit message for this version."},"name":{"type":"string"},"description":{"type":["string","null"]},"type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsType"},"score_value_type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsScoreValueType"},"created_at":{"type":"string","format":"date-time"},"created_by":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsGetResponsesContentApplicationJsonSchemaResultsItemsCreatedBy"}},"required":["id","version_id","version","is_read_only","name","type","score_value_type"],"title":"ApiEvaluatorsEvaluatorIdVersionsGetResponsesContentApplicationJsonSchemaResultsItems"},"Evaluators_listEvaluatorVersions_Response_200":{"type":"object","properties":{"count":{"type":"integer","description":"Number of resources returned on this page."},"next":{"type":["string","null"],"description":"URL for the next page, if any."},"previous":{"type":["string","null"],"description":"URL for the previous page, if any."},"current_filters":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsGetResponsesContentApplicationJsonSchemaCurrentFilters","description":"Normalized filters applied to this request."},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsGetResponsesContentApplicationJsonSchemaResultsItems"}}},"required":["count","results"],"title":"Evaluators_listEvaluatorVersions_Response_200"},"ListEvaluatorVersionsRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListEvaluatorVersionsRequestUnauthorizedError"},"ListEvaluatorVersionsRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListEvaluatorVersionsRequestNotFoundError"},"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code"],"title":"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaType"},"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaScoreValueType"},"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaEvalClass":{"type":"string","enum":["keywordsai_custom_llm","custom_code"],"description":"Optional pre-built evaluator template.","title":"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaEvalClass"},"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems"},"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaScoreConfig":{"type":"object","properties":{"min_score":{"type":"number","format":"double"},"max_score":{"type":"number","format":"double"},"choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems"}}},"description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`.","title":"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaScoreConfig"},"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaPassingConditions":{"type":"object","properties":{},"description":"Passing conditions in the standard Respan filter format.","title":"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaPassingConditions"},"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat"},"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems"},"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaLlmConfig":{"type":"object","properties":{"model":{"type":"string"},"evaluator_definition":{"type":"string","description":"Prompt/template used by the LLM grader."},"scoring_rubric":{"type":"string"},"temperature":{"type":"number","format":"double"},"max_tokens":{"type":"integer"},"top_p":{"type":"number","format":"double"},"frequency_penalty":{"type":"number","format":"double"},"presence_penalty":{"type":"number","format":"double"},"stop":{"type":"array","items":{"type":"string"}},"response_format":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems"}},"tool_choice":{"description":"Any type"},"verbosity":{"type":"string"}},"description":"LLM grader configuration. The backend validates this against the selected evaluator form.","title":"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaLlmConfig"},"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaCodeConfig":{"type":"object","properties":{"eval_code_snippet":{"type":"string","description":"Python code defining `main(eval_inputs)`."}},"description":"Code grader configuration.","title":"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaCodeConfig"},"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdVersionsPostRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems"},"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code"],"title":"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaType"},"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaScoreValueType"},"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaScoreConfigChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaScoreConfigChoicesItems"},"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaScoreConfig":{"type":"object","properties":{"min_score":{"type":"number","format":"double"},"max_score":{"type":"number","format":"double"},"choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaScoreConfigChoicesItems"}}},"description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`.","title":"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaScoreConfig"},"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaPassingConditions":{"type":"object","properties":{},"description":"Passing conditions in the standard Respan filter format.","title":"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaPassingConditions"},"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaLlmConfigResponseFormat":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaLlmConfigResponseFormat"},"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaLlmConfigToolsItems":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaLlmConfigToolsItems"},"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaLlmConfig":{"type":"object","properties":{"model":{"type":"string"},"evaluator_definition":{"type":"string","description":"Prompt/template used by the LLM grader."},"scoring_rubric":{"type":"string"},"temperature":{"type":"number","format":"double"},"max_tokens":{"type":"integer"},"top_p":{"type":"number","format":"double"},"frequency_penalty":{"type":"number","format":"double"},"presence_penalty":{"type":"number","format":"double"},"stop":{"type":"array","items":{"type":"string"}},"response_format":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaLlmConfigResponseFormat"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaLlmConfigToolsItems"}},"tool_choice":{"description":"Any type"},"verbosity":{"type":"string"}},"description":"LLM grader configuration. The backend validates this against the selected evaluator form.","title":"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaLlmConfig"},"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaCodeConfig":{"type":"object","properties":{"eval_code_snippet":{"type":"string","description":"Python code defining `main(eval_inputs)`."}},"description":"Code grader configuration.","title":"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaCodeConfig"},"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaCategoricalChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaCategoricalChoicesItems"},"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaEvalClass":{"type":"string","enum":["keywordsai_custom_llm","custom_code"],"description":"Optional pre-built evaluator template.","title":"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaEvalClass"},"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaCreatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaCreatedBy"},"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaUpdatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaUpdatedBy"},"Evaluators_createEvaluatorVersion_Response_201":{"type":"object","properties":{"id":{"type":"string","description":"Stable evaluator ID shared by all versions."},"version_id":{"type":"string","description":"Unique ID for this evaluator version."},"version":{"type":"integer","description":"Version number. The first draft is version 0."},"is_read_only":{"type":"boolean","description":"Whether this version is committed and immutable."},"version_description":{"type":"string","description":"Commit message for this version."},"name":{"type":"string"},"description":{"type":["string","null"]},"type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaType"},"score_value_type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaScoreValueType"},"score_config":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaScoreConfig","description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`."},"passing_conditions":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaPassingConditions"},{"type":"null"}],"description":"Passing conditions in the standard Respan filter format."},"llm_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaLlmConfig"},{"type":"null"}],"description":"LLM grader configuration. The backend validates this against the selected evaluator form."},"code_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaCodeConfig"},{"type":"null"}],"description":"Code grader configuration."},"configurations":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Legacy user-facing configuration object. New clients should prefer `llm_config`, `code_config`, `score_config`, and `passing_conditions`."},"categorical_choices":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaCategoricalChoicesItems"}},"eval_class":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaEvalClass","description":"Optional pre-built evaluator template."},"starred":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_by":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaCreatedBy"},"updated_by":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsPostResponsesContentApplicationJsonSchemaUpdatedBy"},"is_public":{"type":"boolean","description":"Whether this is a Respan-managed public evaluator."}},"required":["id","version_id","version","is_read_only","name","type","score_value_type"],"title":"Evaluators_createEvaluatorVersion_Response_201"},"CreateEvaluatorVersionRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateEvaluatorVersionRequestBadRequestError"},"CreateEvaluatorVersionRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateEvaluatorVersionRequestUnauthorizedError"},"CreateEvaluatorVersionRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateEvaluatorVersionRequestNotFoundError"},"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaType"},"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaScoreValueType"},"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaScoreConfigChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaScoreConfigChoicesItems"},"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaScoreConfig":{"type":"object","properties":{"min_score":{"type":"number","format":"double"},"max_score":{"type":"number","format":"double"},"choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaScoreConfigChoicesItems"}}},"description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaScoreConfig"},"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaPassingConditions":{"type":"object","properties":{},"description":"Passing conditions in the standard Respan filter format.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaPassingConditions"},"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaLlmConfigResponseFormat":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaLlmConfigResponseFormat"},"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaLlmConfigToolsItems":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaLlmConfigToolsItems"},"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaLlmConfig":{"type":"object","properties":{"model":{"type":"string"},"evaluator_definition":{"type":"string","description":"Prompt/template used by the LLM grader."},"scoring_rubric":{"type":"string"},"temperature":{"type":"number","format":"double"},"max_tokens":{"type":"integer"},"top_p":{"type":"number","format":"double"},"frequency_penalty":{"type":"number","format":"double"},"presence_penalty":{"type":"number","format":"double"},"stop":{"type":"array","items":{"type":"string"}},"response_format":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaLlmConfigResponseFormat"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaLlmConfigToolsItems"}},"tool_choice":{"description":"Any type"},"verbosity":{"type":"string"}},"description":"LLM grader configuration. The backend validates this against the selected evaluator form.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaLlmConfig"},"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaCodeConfig":{"type":"object","properties":{"eval_code_snippet":{"type":"string","description":"Python code defining `main(eval_inputs)`."}},"description":"Code grader configuration.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaCodeConfig"},"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaCategoricalChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaCategoricalChoicesItems"},"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaEvalClass":{"type":"string","enum":["keywordsai_custom_llm","custom_code"],"description":"Optional pre-built evaluator template.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaEvalClass"},"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaCreatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaCreatedBy"},"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaUpdatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaUpdatedBy"},"Evaluators_retrieveEvaluatorVersion_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Stable evaluator ID shared by all versions."},"version_id":{"type":"string","description":"Unique ID for this evaluator version."},"version":{"type":"integer","description":"Version number. The first draft is version 0."},"is_read_only":{"type":"boolean","description":"Whether this version is committed and immutable."},"version_description":{"type":"string","description":"Commit message for this version."},"name":{"type":"string"},"description":{"type":["string","null"]},"type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaType"},"score_value_type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaScoreValueType"},"score_config":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaScoreConfig","description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`."},"passing_conditions":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaPassingConditions"},{"type":"null"}],"description":"Passing conditions in the standard Respan filter format."},"llm_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaLlmConfig"},{"type":"null"}],"description":"LLM grader configuration. The backend validates this against the selected evaluator form."},"code_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaCodeConfig"},{"type":"null"}],"description":"Code grader configuration."},"configurations":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Legacy user-facing configuration object. New clients should prefer `llm_config`, `code_config`, `score_config`, and `passing_conditions`."},"categorical_choices":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaCategoricalChoicesItems"}},"eval_class":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaEvalClass","description":"Optional pre-built evaluator template."},"starred":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_by":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaCreatedBy"},"updated_by":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionGetResponsesContentApplicationJsonSchemaUpdatedBy"},"is_public":{"type":"boolean","description":"Whether this is a Respan-managed public evaluator."}},"required":["id","version_id","version","is_read_only","name","type","score_value_type"],"title":"Evaluators_retrieveEvaluatorVersion_Response_200"},"RetrieveEvaluatorVersionRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveEvaluatorVersionRequestUnauthorizedError"},"RetrieveEvaluatorVersionRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveEvaluatorVersionRequestNotFoundError"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaType"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaScoreValueType"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaEvalClass":{"type":"string","enum":["keywordsai_custom_llm","custom_code"],"description":"Optional pre-built evaluator template.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaEvalClass"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaScoreConfig":{"type":"object","properties":{"min_score":{"type":"number","format":"double"},"max_score":{"type":"number","format":"double"},"choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems"}}},"description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaScoreConfig"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaPassingConditions":{"type":"object","properties":{},"description":"Passing conditions in the standard Respan filter format.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaPassingConditions"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaLlmConfig":{"type":"object","properties":{"model":{"type":"string"},"evaluator_definition":{"type":"string","description":"Prompt/template used by the LLM grader."},"scoring_rubric":{"type":"string"},"temperature":{"type":"number","format":"double"},"max_tokens":{"type":"integer"},"top_p":{"type":"number","format":"double"},"frequency_penalty":{"type":"number","format":"double"},"presence_penalty":{"type":"number","format":"double"},"stop":{"type":"array","items":{"type":"string"}},"response_format":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems"}},"tool_choice":{"description":"Any type"},"verbosity":{"type":"string"}},"description":"LLM grader configuration. The backend validates this against the selected evaluator form.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaLlmConfig"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaCodeConfig":{"type":"object","properties":{"eval_code_snippet":{"type":"string","description":"Python code defining `main(eval_inputs)`."}},"description":"Code grader configuration.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaCodeConfig"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaType"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaScoreValueType"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaScoreConfigChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaScoreConfigChoicesItems"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaScoreConfig":{"type":"object","properties":{"min_score":{"type":"number","format":"double"},"max_score":{"type":"number","format":"double"},"choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaScoreConfigChoicesItems"}}},"description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaScoreConfig"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaPassingConditions":{"type":"object","properties":{},"description":"Passing conditions in the standard Respan filter format.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaPassingConditions"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaLlmConfigResponseFormat":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaLlmConfigResponseFormat"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaLlmConfigToolsItems":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaLlmConfigToolsItems"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaLlmConfig":{"type":"object","properties":{"model":{"type":"string"},"evaluator_definition":{"type":"string","description":"Prompt/template used by the LLM grader."},"scoring_rubric":{"type":"string"},"temperature":{"type":"number","format":"double"},"max_tokens":{"type":"integer"},"top_p":{"type":"number","format":"double"},"frequency_penalty":{"type":"number","format":"double"},"presence_penalty":{"type":"number","format":"double"},"stop":{"type":"array","items":{"type":"string"}},"response_format":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaLlmConfigResponseFormat"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaLlmConfigToolsItems"}},"tool_choice":{"description":"Any type"},"verbosity":{"type":"string"}},"description":"LLM grader configuration. The backend validates this against the selected evaluator form.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaLlmConfig"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaCodeConfig":{"type":"object","properties":{"eval_code_snippet":{"type":"string","description":"Python code defining `main(eval_inputs)`."}},"description":"Code grader configuration.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaCodeConfig"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaCategoricalChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaCategoricalChoicesItems"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaEvalClass":{"type":"string","enum":["keywordsai_custom_llm","custom_code"],"description":"Optional pre-built evaluator template.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaEvalClass"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaCreatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaCreatedBy"},"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaUpdatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaUpdatedBy"},"Evaluators_replaceEvaluatorVersion_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Stable evaluator ID shared by all versions."},"version_id":{"type":"string","description":"Unique ID for this evaluator version."},"version":{"type":"integer","description":"Version number. The first draft is version 0."},"is_read_only":{"type":"boolean","description":"Whether this version is committed and immutable."},"version_description":{"type":"string","description":"Commit message for this version."},"name":{"type":"string"},"description":{"type":["string","null"]},"type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaType"},"score_value_type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaScoreValueType"},"score_config":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaScoreConfig","description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`."},"passing_conditions":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaPassingConditions"},{"type":"null"}],"description":"Passing conditions in the standard Respan filter format."},"llm_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaLlmConfig"},{"type":"null"}],"description":"LLM grader configuration. The backend validates this against the selected evaluator form."},"code_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaCodeConfig"},{"type":"null"}],"description":"Code grader configuration."},"configurations":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Legacy user-facing configuration object. New clients should prefer `llm_config`, `code_config`, `score_config`, and `passing_conditions`."},"categorical_choices":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaCategoricalChoicesItems"}},"eval_class":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaEvalClass","description":"Optional pre-built evaluator template."},"starred":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_by":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaCreatedBy"},"updated_by":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPutResponsesContentApplicationJsonSchemaUpdatedBy"},"is_public":{"type":"boolean","description":"Whether this is a Respan-managed public evaluator."}},"required":["id","version_id","version","is_read_only","name","type","score_value_type"],"title":"Evaluators_replaceEvaluatorVersion_Response_200"},"ReplaceEvaluatorVersionRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceEvaluatorVersionRequestBadRequestError"},"ReplaceEvaluatorVersionRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceEvaluatorVersionRequestUnauthorizedError"},"ReplaceEvaluatorVersionRequestForbiddenError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceEvaluatorVersionRequestForbiddenError"},"ReplaceEvaluatorVersionRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceEvaluatorVersionRequestNotFoundError"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaType"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaScoreValueType"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaEvalClass":{"type":"string","enum":["keywordsai_custom_llm","custom_code"],"description":"Optional pre-built evaluator template.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaEvalClass"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaScoreConfig":{"type":"object","properties":{"min_score":{"type":"number","format":"double"},"max_score":{"type":"number","format":"double"},"choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaScoreConfigChoicesItems"}}},"description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaScoreConfig"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaPassingConditions":{"type":"object","properties":{},"description":"Passing conditions in the standard Respan filter format.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaPassingConditions"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaLlmConfig":{"type":"object","properties":{"model":{"type":"string"},"evaluator_definition":{"type":"string","description":"Prompt/template used by the LLM grader."},"scoring_rubric":{"type":"string"},"temperature":{"type":"number","format":"double"},"max_tokens":{"type":"integer"},"top_p":{"type":"number","format":"double"},"frequency_penalty":{"type":"number","format":"double"},"presence_penalty":{"type":"number","format":"double"},"stop":{"type":"array","items":{"type":"string"}},"response_format":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaLlmConfigResponseFormat"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaLlmConfigToolsItems"}},"tool_choice":{"description":"Any type"},"verbosity":{"type":"string"}},"description":"LLM grader configuration. The backend validates this against the selected evaluator form.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaLlmConfig"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaCodeConfig":{"type":"object","properties":{"eval_code_snippet":{"type":"string","description":"Python code defining `main(eval_inputs)`."}},"description":"Code grader configuration.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaCodeConfig"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaCategoricalChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchRequestBodyContentApplicationJsonSchemaCategoricalChoicesItems"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaType"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaScoreValueType"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaScoreConfigChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaScoreConfigChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaScoreConfigChoicesItems"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaScoreConfig":{"type":"object","properties":{"min_score":{"type":"number","format":"double"},"max_score":{"type":"number","format":"double"},"choices":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaScoreConfigChoicesItems"}}},"description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaScoreConfig"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaPassingConditions":{"type":"object","properties":{},"description":"Passing conditions in the standard Respan filter format.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaPassingConditions"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaLlmConfigResponseFormat":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaLlmConfigResponseFormat"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaLlmConfigToolsItems":{"type":"object","properties":{},"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaLlmConfigToolsItems"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaLlmConfig":{"type":"object","properties":{"model":{"type":"string"},"evaluator_definition":{"type":"string","description":"Prompt/template used by the LLM grader."},"scoring_rubric":{"type":"string"},"temperature":{"type":"number","format":"double"},"max_tokens":{"type":"integer"},"top_p":{"type":"number","format":"double"},"frequency_penalty":{"type":"number","format":"double"},"presence_penalty":{"type":"number","format":"double"},"stop":{"type":"array","items":{"type":"string"}},"response_format":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaLlmConfigResponseFormat"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaLlmConfigToolsItems"}},"tool_choice":{"description":"Any type"},"verbosity":{"type":"string"}},"description":"LLM grader configuration. The backend validates this against the selected evaluator form.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaLlmConfig"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaCodeConfig":{"type":"object","properties":{"eval_code_snippet":{"type":"string","description":"Python code defining `main(eval_inputs)`."}},"description":"Code grader configuration.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaCodeConfig"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue":{"oneOf":[{"type":"string"},{"type":"number","format":"double"},{"type":"boolean"}],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaCategoricalChoicesItems":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaCategoricalChoicesItemsValue"}},"required":["name","value"],"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaCategoricalChoicesItems"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaEvalClass":{"type":"string","enum":["keywordsai_custom_llm","custom_code"],"description":"Optional pre-built evaluator template.","title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaEvalClass"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaCreatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaCreatedBy"},"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaUpdatedBy":{"type":"object","properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"}},"title":"ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaUpdatedBy"},"Evaluators_updateEvaluatorVersion_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Stable evaluator ID shared by all versions."},"version_id":{"type":"string","description":"Unique ID for this evaluator version."},"version":{"type":"integer","description":"Version number. The first draft is version 0."},"is_read_only":{"type":"boolean","description":"Whether this version is committed and immutable."},"version_description":{"type":"string","description":"Commit message for this version."},"name":{"type":"string"},"description":{"type":["string","null"]},"type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaType"},"score_value_type":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaScoreValueType"},"score_config":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaScoreConfig","description":"Score configuration. For numerical/percentage scores, use `min_score` and `max_score`. For select scores, use `choices`."},"passing_conditions":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaPassingConditions"},{"type":"null"}],"description":"Passing conditions in the standard Respan filter format."},"llm_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaLlmConfig"},{"type":"null"}],"description":"LLM grader configuration. The backend validates this against the selected evaluator form."},"code_config":{"oneOf":[{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaCodeConfig"},{"type":"null"}],"description":"Code grader configuration."},"configurations":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Legacy user-facing configuration object. New clients should prefer `llm_config`, `code_config`, `score_config`, and `passing_conditions`."},"categorical_choices":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaCategoricalChoicesItems"}},"eval_class":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaEvalClass","description":"Optional pre-built evaluator template."},"starred":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"created_by":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaCreatedBy"},"updated_by":{"$ref":"#/components/schemas/ApiEvaluatorsEvaluatorIdVersionsVersionPatchResponsesContentApplicationJsonSchemaUpdatedBy"},"is_public":{"type":"boolean","description":"Whether this is a Respan-managed public evaluator."}},"required":["id","version_id","version","is_read_only","name","type","score_value_type"],"title":"Evaluators_updateEvaluatorVersion_Response_200"},"UpdateEvaluatorVersionRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateEvaluatorVersionRequestBadRequestError"},"UpdateEvaluatorVersionRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateEvaluatorVersionRequestUnauthorizedError"},"UpdateEvaluatorVersionRequestForbiddenError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateEvaluatorVersionRequestForbiddenError"},"UpdateEvaluatorVersionRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateEvaluatorVersionRequestNotFoundError"},"ApiScoresPostResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code","function","human_numerical","human_boolean","human_categorical","human_text","custom"],"description":"Evaluator execution type. Legacy rows may contain legacy type values.","title":"ApiScoresPostResponsesContentApplicationJsonSchemaType"},"Scores_createScore_Response_201":{"type":"object","properties":{"id":{"type":"string","description":"Score ID."},"created_at":{"type":"string","format":"date-time","description":"When the score was created."},"type":{"$ref":"#/components/schemas/ApiScoresPostResponsesContentApplicationJsonSchemaType","description":"Evaluator execution type. Legacy rows may contain legacy type values."},"environment":{"type":"string","description":"Environment associated with the score."},"numerical_value":{"type":["number","null"],"format":"double","description":"Numeric score value. Use for `numerical` and `percentage` evaluators."},"string_value":{"type":["string","null"],"description":"Text score value. Use for `text` and legacy `comment` evaluators."},"boolean_value":{"type":["boolean","null"],"description":"Boolean score value. Use for `boolean` evaluators."},"categorical_value":{"type":["array","null"],"items":{"type":"string"},"description":"Categorical score values. Use for `single_select`, `multi_select`, and legacy `categorical` evaluators."},"json_value":{"type":["string","null"],"description":"JSON score value encoded as a string. Use for `json` evaluators."},"is_passed":{"type":["boolean","null"],"description":"Whether the score passes the evaluator conditions."},"cost":{"type":["number","null"],"format":"double","description":"Evaluation cost in USD, when available."},"evaluator_id":{"type":["string","null"],"description":"Evaluator ID associated with the score."},"evaluator_slug":{"type":["string","null"],"description":"Evaluator slug associated with the score."},"evaluator_name":{"type":["string","null"],"description":"Human-readable evaluator name, when available."},"scorer":{"type":["string","null"],"description":"Who or what produced the score. For log-scoped score writes, the backend derives this from the authenticated user."},"log_id":{"type":["string","null"],"description":"Associated log/span ID."},"prompt_id":{"type":["string","null"],"description":"Associated prompt ID, when available."},"prompt_version_number":{"type":["integer","null"],"description":"Associated prompt version number, when available."},"dataset_id":{"type":["string","null"],"description":"Associated dataset ID, when available."},"automation_id":{"type":["string","null"],"description":"Associated automation ID, when available."},"status":{"type":["string","null"],"description":"Evaluation status, when available."},"error_message":{"type":["string","null"],"description":"Evaluation error message, when available."},"explanation":{"type":"string","description":"Optional explanation for the score."}},"required":["id","created_at"],"title":"Scores_createScore_Response_201"},"CreateScoreRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateScoreRequestBadRequestError"},"CreateScoreRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateScoreRequestUnauthorizedError"},"ApiScoresIdGetResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code","function","human_numerical","human_boolean","human_categorical","human_text","custom"],"description":"Evaluator execution type. Legacy rows may contain legacy type values.","title":"ApiScoresIdGetResponsesContentApplicationJsonSchemaType"},"ApiScoresIdGetResponsesContentApplicationJsonSchemaInputsMetrics":{"type":"object","properties":{},"title":"ApiScoresIdGetResponsesContentApplicationJsonSchemaInputsMetrics"},"ApiScoresIdGetResponsesContentApplicationJsonSchemaInputsMetadata":{"type":"object","properties":{},"title":"ApiScoresIdGetResponsesContentApplicationJsonSchemaInputsMetadata"},"ApiScoresIdGetResponsesContentApplicationJsonSchemaInputs":{"type":"object","properties":{"input":{"description":"Input/request evaluated."},"output":{"description":"Output/response evaluated."},"metrics":{"oneOf":[{"$ref":"#/components/schemas/ApiScoresIdGetResponsesContentApplicationJsonSchemaInputsMetrics"},{"type":"null"}]},"metadata":{"oneOf":[{"$ref":"#/components/schemas/ApiScoresIdGetResponsesContentApplicationJsonSchemaInputsMetadata"},{"type":"null"}]}},"description":"Unified evaluator inputs stored with the score, when available.","title":"ApiScoresIdGetResponsesContentApplicationJsonSchemaInputs"},"ApiScoresIdGetResponsesContentApplicationJsonSchemaEvaluator":{"type":"object","properties":{},"description":"Evaluator metadata when the score is associated with a platform evaluator.","title":"ApiScoresIdGetResponsesContentApplicationJsonSchemaEvaluator"},"Scores_retrieveScore_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Score ID."},"created_at":{"type":"string","format":"date-time","description":"When the score was created."},"type":{"$ref":"#/components/schemas/ApiScoresIdGetResponsesContentApplicationJsonSchemaType","description":"Evaluator execution type. Legacy rows may contain legacy type values."},"environment":{"type":"string","description":"Environment associated with the score."},"numerical_value":{"type":["number","null"],"format":"double","description":"Numeric score value. Use for `numerical` and `percentage` evaluators."},"string_value":{"type":["string","null"],"description":"Text score value. Use for `text` and legacy `comment` evaluators."},"boolean_value":{"type":["boolean","null"],"description":"Boolean score value. Use for `boolean` evaluators."},"categorical_value":{"type":["array","null"],"items":{"type":"string"},"description":"Categorical score values. Use for `single_select`, `multi_select`, and legacy `categorical` evaluators."},"json_value":{"type":["string","null"],"description":"JSON score value encoded as a string. Use for `json` evaluators."},"is_passed":{"type":["boolean","null"],"description":"Whether the score passes the evaluator conditions."},"cost":{"type":["number","null"],"format":"double","description":"Evaluation cost in USD, when available."},"evaluator_id":{"type":["string","null"],"description":"Evaluator ID associated with the score."},"evaluator_slug":{"type":["string","null"],"description":"Evaluator slug associated with the score."},"evaluator_name":{"type":["string","null"],"description":"Human-readable evaluator name, when available."},"scorer":{"type":["string","null"],"description":"Who or what produced the score. For log-scoped score writes, the backend derives this from the authenticated user."},"log_id":{"type":["string","null"],"description":"Associated log/span ID."},"prompt_id":{"type":["string","null"],"description":"Associated prompt ID, when available."},"prompt_version_number":{"type":["integer","null"],"description":"Associated prompt version number, when available."},"dataset_id":{"type":["string","null"],"description":"Associated dataset ID, when available."},"automation_id":{"type":["string","null"],"description":"Associated automation ID, when available."},"status":{"type":["string","null"],"description":"Evaluation status, when available."},"error_message":{"type":["string","null"],"description":"Evaluation error message, when available."},"inputs":{"$ref":"#/components/schemas/ApiScoresIdGetResponsesContentApplicationJsonSchemaInputs","description":"Unified evaluator inputs stored with the score, when available."},"evaluator":{"oneOf":[{"$ref":"#/components/schemas/ApiScoresIdGetResponsesContentApplicationJsonSchemaEvaluator"},{"type":"null"}],"description":"Evaluator metadata when the score is associated with a platform evaluator."},"explanation":{"type":"string","description":"Optional explanation for the score."}},"required":["id","created_at"],"title":"Scores_retrieveScore_Response_200"},"RetrieveScoreRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveScoreRequestUnauthorizedError"},"RetrieveScoreRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveScoreRequestNotFoundError"},"ApiScoresIdPatchResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code","function","human_numerical","human_boolean","human_categorical","human_text","custom"],"description":"Evaluator execution type. Legacy rows may contain legacy type values.","title":"ApiScoresIdPatchResponsesContentApplicationJsonSchemaType"},"ApiScoresIdPatchResponsesContentApplicationJsonSchemaInputsMetrics":{"type":"object","properties":{},"title":"ApiScoresIdPatchResponsesContentApplicationJsonSchemaInputsMetrics"},"ApiScoresIdPatchResponsesContentApplicationJsonSchemaInputsMetadata":{"type":"object","properties":{},"title":"ApiScoresIdPatchResponsesContentApplicationJsonSchemaInputsMetadata"},"ApiScoresIdPatchResponsesContentApplicationJsonSchemaInputs":{"type":"object","properties":{"input":{"description":"Input/request evaluated."},"output":{"description":"Output/response evaluated."},"metrics":{"oneOf":[{"$ref":"#/components/schemas/ApiScoresIdPatchResponsesContentApplicationJsonSchemaInputsMetrics"},{"type":"null"}]},"metadata":{"oneOf":[{"$ref":"#/components/schemas/ApiScoresIdPatchResponsesContentApplicationJsonSchemaInputsMetadata"},{"type":"null"}]}},"description":"Unified evaluator inputs stored with the score, when available.","title":"ApiScoresIdPatchResponsesContentApplicationJsonSchemaInputs"},"ApiScoresIdPatchResponsesContentApplicationJsonSchemaEvaluator":{"type":"object","properties":{},"description":"Evaluator metadata when the score is associated with a platform evaluator.","title":"ApiScoresIdPatchResponsesContentApplicationJsonSchemaEvaluator"},"Scores_updateScore_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Score ID."},"created_at":{"type":"string","format":"date-time","description":"When the score was created."},"type":{"$ref":"#/components/schemas/ApiScoresIdPatchResponsesContentApplicationJsonSchemaType","description":"Evaluator execution type. Legacy rows may contain legacy type values."},"environment":{"type":"string","description":"Environment associated with the score."},"numerical_value":{"type":["number","null"],"format":"double","description":"Numeric score value. Use for `numerical` and `percentage` evaluators."},"string_value":{"type":["string","null"],"description":"Text score value. Use for `text` and legacy `comment` evaluators."},"boolean_value":{"type":["boolean","null"],"description":"Boolean score value. Use for `boolean` evaluators."},"categorical_value":{"type":["array","null"],"items":{"type":"string"},"description":"Categorical score values. Use for `single_select`, `multi_select`, and legacy `categorical` evaluators."},"json_value":{"type":["string","null"],"description":"JSON score value encoded as a string. Use for `json` evaluators."},"is_passed":{"type":["boolean","null"],"description":"Whether the score passes the evaluator conditions."},"cost":{"type":["number","null"],"format":"double","description":"Evaluation cost in USD, when available."},"evaluator_id":{"type":["string","null"],"description":"Evaluator ID associated with the score."},"evaluator_slug":{"type":["string","null"],"description":"Evaluator slug associated with the score."},"evaluator_name":{"type":["string","null"],"description":"Human-readable evaluator name, when available."},"scorer":{"type":["string","null"],"description":"Who or what produced the score. For log-scoped score writes, the backend derives this from the authenticated user."},"log_id":{"type":["string","null"],"description":"Associated log/span ID."},"prompt_id":{"type":["string","null"],"description":"Associated prompt ID, when available."},"prompt_version_number":{"type":["integer","null"],"description":"Associated prompt version number, when available."},"dataset_id":{"type":["string","null"],"description":"Associated dataset ID, when available."},"automation_id":{"type":["string","null"],"description":"Associated automation ID, when available."},"status":{"type":["string","null"],"description":"Evaluation status, when available."},"error_message":{"type":["string","null"],"description":"Evaluation error message, when available."},"inputs":{"$ref":"#/components/schemas/ApiScoresIdPatchResponsesContentApplicationJsonSchemaInputs","description":"Unified evaluator inputs stored with the score, when available."},"evaluator":{"oneOf":[{"$ref":"#/components/schemas/ApiScoresIdPatchResponsesContentApplicationJsonSchemaEvaluator"},{"type":"null"}],"description":"Evaluator metadata when the score is associated with a platform evaluator."},"explanation":{"type":"string","description":"Optional explanation for the score."}},"required":["id","created_at"],"title":"Scores_updateScore_Response_200"},"UpdateScoreRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateScoreRequestBadRequestError"},"UpdateScoreRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateScoreRequestUnauthorizedError"},"UpdateScoreRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateScoreRequestNotFoundError"},"DeleteScoreRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeleteScoreRequestUnauthorizedError"},"DeleteScoreRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeleteScoreRequestNotFoundError"},"ApiLogsLogIdScoresPostResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code","function","human_numerical","human_boolean","human_categorical","human_text","custom"],"description":"Evaluator execution type. Legacy rows may contain legacy type values.","title":"ApiLogsLogIdScoresPostResponsesContentApplicationJsonSchemaType"},"Scores_createSpanScore_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Score ID."},"created_at":{"type":"string","format":"date-time","description":"When the score was created."},"type":{"$ref":"#/components/schemas/ApiLogsLogIdScoresPostResponsesContentApplicationJsonSchemaType","description":"Evaluator execution type. Legacy rows may contain legacy type values."},"environment":{"type":"string","description":"Environment associated with the score."},"numerical_value":{"type":["number","null"],"format":"double","description":"Numeric score value. Use for `numerical` and `percentage` evaluators."},"string_value":{"type":["string","null"],"description":"Text score value. Use for `text` and legacy `comment` evaluators."},"boolean_value":{"type":["boolean","null"],"description":"Boolean score value. Use for `boolean` evaluators."},"categorical_value":{"type":["array","null"],"items":{"type":"string"},"description":"Categorical score values. Use for `single_select`, `multi_select`, and legacy `categorical` evaluators."},"json_value":{"type":["string","null"],"description":"JSON score value encoded as a string. Use for `json` evaluators."},"is_passed":{"type":["boolean","null"],"description":"Whether the score passes the evaluator conditions."},"cost":{"type":["number","null"],"format":"double","description":"Evaluation cost in USD, when available."},"evaluator_id":{"type":["string","null"],"description":"Evaluator ID associated with the score."},"evaluator_slug":{"type":["string","null"],"description":"Evaluator slug associated with the score."},"evaluator_name":{"type":["string","null"],"description":"Human-readable evaluator name, when available."},"scorer":{"type":["string","null"],"description":"Who or what produced the score. For log-scoped score writes, the backend derives this from the authenticated user."},"log_id":{"type":["string","null"],"description":"Associated log/span ID."},"prompt_id":{"type":["string","null"],"description":"Associated prompt ID, when available."},"prompt_version_number":{"type":["integer","null"],"description":"Associated prompt version number, when available."},"dataset_id":{"type":["string","null"],"description":"Associated dataset ID, when available."},"automation_id":{"type":["string","null"],"description":"Associated automation ID, when available."},"status":{"type":["string","null"],"description":"Evaluation status, when available."},"error_message":{"type":["string","null"],"description":"Evaluation error message, when available."},"explanation":{"type":"string","description":"Optional explanation for the score."}},"required":["id","created_at"],"title":"Scores_createSpanScore_Response_200"},"CreateSpanScoreRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateSpanScoreRequestBadRequestError"},"CreateSpanScoreRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateSpanScoreRequestUnauthorizedError"},"CreateSpanScoreRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateSpanScoreRequestNotFoundError"},"ApiLogsLogIdScoresGetResponsesContentApplicationJsonSchemaCurrentFilters":{"type":"object","properties":{},"description":"Normalized filters applied to this request.","title":"ApiLogsLogIdScoresGetResponsesContentApplicationJsonSchemaCurrentFilters"},"ApiLogsLogIdScoresGetResponsesContentApplicationJsonSchemaResultsItemsType":{"type":"string","enum":["llm","human","code","function","human_numerical","human_boolean","human_categorical","human_text","custom"],"description":"Evaluator execution type. Legacy rows may contain legacy type values.","title":"ApiLogsLogIdScoresGetResponsesContentApplicationJsonSchemaResultsItemsType"},"ApiLogsLogIdScoresGetResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string","description":"Score ID."},"created_at":{"type":"string","format":"date-time","description":"When the score was created."},"type":{"$ref":"#/components/schemas/ApiLogsLogIdScoresGetResponsesContentApplicationJsonSchemaResultsItemsType","description":"Evaluator execution type. Legacy rows may contain legacy type values."},"environment":{"type":"string","description":"Environment associated with the score."},"numerical_value":{"type":["number","null"],"format":"double","description":"Numeric score value. Use for `numerical` and `percentage` evaluators."},"string_value":{"type":["string","null"],"description":"Text score value. Use for `text` and legacy `comment` evaluators."},"boolean_value":{"type":["boolean","null"],"description":"Boolean score value. Use for `boolean` evaluators."},"categorical_value":{"type":["array","null"],"items":{"type":"string"},"description":"Categorical score values. Use for `single_select`, `multi_select`, and legacy `categorical` evaluators."},"json_value":{"type":["string","null"],"description":"JSON score value encoded as a string. Use for `json` evaluators."},"is_passed":{"type":["boolean","null"],"description":"Whether the score passes the evaluator conditions."},"cost":{"type":["number","null"],"format":"double","description":"Evaluation cost in USD, when available."},"evaluator_id":{"type":["string","null"],"description":"Evaluator ID associated with the score."},"evaluator_slug":{"type":["string","null"],"description":"Evaluator slug associated with the score."},"evaluator_name":{"type":["string","null"],"description":"Human-readable evaluator name, when available."},"scorer":{"type":["string","null"],"description":"Who or what produced the score. For log-scoped score writes, the backend derives this from the authenticated user."},"log_id":{"type":["string","null"],"description":"Associated log/span ID."},"prompt_id":{"type":["string","null"],"description":"Associated prompt ID, when available."},"prompt_version_number":{"type":["integer","null"],"description":"Associated prompt version number, when available."},"dataset_id":{"type":["string","null"],"description":"Associated dataset ID, when available."},"automation_id":{"type":["string","null"],"description":"Associated automation ID, when available."},"status":{"type":["string","null"],"description":"Evaluation status, when available."},"error_message":{"type":["string","null"],"description":"Evaluation error message, when available."},"explanation":{"type":"string","description":"Optional explanation for the score."}},"required":["id","created_at"],"title":"ApiLogsLogIdScoresGetResponsesContentApplicationJsonSchemaResultsItems"},"Scores_listSpanScores_Response_200":{"type":"object","properties":{"count":{"type":"integer","description":"Number of scores returned on this page."},"next":{"type":["string","null"],"description":"URL for the next page, if any."},"previous":{"type":["string","null"],"description":"URL for the previous page, if any."},"current_filters":{"$ref":"#/components/schemas/ApiLogsLogIdScoresGetResponsesContentApplicationJsonSchemaCurrentFilters","description":"Normalized filters applied to this request."},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiLogsLogIdScoresGetResponsesContentApplicationJsonSchemaResultsItems"}}},"required":["count","results"],"title":"Scores_listSpanScores_Response_200"},"ListSpanScoresRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListSpanScoresRequestUnauthorizedError"},"ListSpanScoresRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListSpanScoresRequestNotFoundError"},"ApiLogsLogIdScoresScoreIdGetResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code","function","human_numerical","human_boolean","human_categorical","human_text","custom"],"description":"Evaluator execution type. Legacy rows may contain legacy type values.","title":"ApiLogsLogIdScoresScoreIdGetResponsesContentApplicationJsonSchemaType"},"Scores_retrieveSpanScore_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Score ID."},"created_at":{"type":"string","format":"date-time","description":"When the score was created."},"type":{"$ref":"#/components/schemas/ApiLogsLogIdScoresScoreIdGetResponsesContentApplicationJsonSchemaType","description":"Evaluator execution type. Legacy rows may contain legacy type values."},"environment":{"type":"string","description":"Environment associated with the score."},"numerical_value":{"type":["number","null"],"format":"double","description":"Numeric score value. Use for `numerical` and `percentage` evaluators."},"string_value":{"type":["string","null"],"description":"Text score value. Use for `text` and legacy `comment` evaluators."},"boolean_value":{"type":["boolean","null"],"description":"Boolean score value. Use for `boolean` evaluators."},"categorical_value":{"type":["array","null"],"items":{"type":"string"},"description":"Categorical score values. Use for `single_select`, `multi_select`, and legacy `categorical` evaluators."},"json_value":{"type":["string","null"],"description":"JSON score value encoded as a string. Use for `json` evaluators."},"is_passed":{"type":["boolean","null"],"description":"Whether the score passes the evaluator conditions."},"cost":{"type":["number","null"],"format":"double","description":"Evaluation cost in USD, when available."},"evaluator_id":{"type":["string","null"],"description":"Evaluator ID associated with the score."},"evaluator_slug":{"type":["string","null"],"description":"Evaluator slug associated with the score."},"evaluator_name":{"type":["string","null"],"description":"Human-readable evaluator name, when available."},"scorer":{"type":["string","null"],"description":"Who or what produced the score. For log-scoped score writes, the backend derives this from the authenticated user."},"log_id":{"type":["string","null"],"description":"Associated log/span ID."},"prompt_id":{"type":["string","null"],"description":"Associated prompt ID, when available."},"prompt_version_number":{"type":["integer","null"],"description":"Associated prompt version number, when available."},"dataset_id":{"type":["string","null"],"description":"Associated dataset ID, when available."},"automation_id":{"type":["string","null"],"description":"Associated automation ID, when available."},"status":{"type":["string","null"],"description":"Evaluation status, when available."},"error_message":{"type":["string","null"],"description":"Evaluation error message, when available."},"explanation":{"type":"string","description":"Optional explanation for the score."}},"required":["id","created_at"],"title":"Scores_retrieveSpanScore_Response_200"},"RetrieveSpanScoreRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveSpanScoreRequestUnauthorizedError"},"RetrieveSpanScoreRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveSpanScoreRequestNotFoundError"},"ApiLogsLogIdScoresScoreIdPatchResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code","function","human_numerical","human_boolean","human_categorical","human_text","custom"],"description":"Evaluator execution type. Legacy rows may contain legacy type values.","title":"ApiLogsLogIdScoresScoreIdPatchResponsesContentApplicationJsonSchemaType"},"Scores_updateSpanScore_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Score ID."},"created_at":{"type":"string","format":"date-time","description":"When the score was created."},"type":{"$ref":"#/components/schemas/ApiLogsLogIdScoresScoreIdPatchResponsesContentApplicationJsonSchemaType","description":"Evaluator execution type. Legacy rows may contain legacy type values."},"environment":{"type":"string","description":"Environment associated with the score."},"numerical_value":{"type":["number","null"],"format":"double","description":"Numeric score value. Use for `numerical` and `percentage` evaluators."},"string_value":{"type":["string","null"],"description":"Text score value. Use for `text` and legacy `comment` evaluators."},"boolean_value":{"type":["boolean","null"],"description":"Boolean score value. Use for `boolean` evaluators."},"categorical_value":{"type":["array","null"],"items":{"type":"string"},"description":"Categorical score values. Use for `single_select`, `multi_select`, and legacy `categorical` evaluators."},"json_value":{"type":["string","null"],"description":"JSON score value encoded as a string. Use for `json` evaluators."},"is_passed":{"type":["boolean","null"],"description":"Whether the score passes the evaluator conditions."},"cost":{"type":["number","null"],"format":"double","description":"Evaluation cost in USD, when available."},"evaluator_id":{"type":["string","null"],"description":"Evaluator ID associated with the score."},"evaluator_slug":{"type":["string","null"],"description":"Evaluator slug associated with the score."},"evaluator_name":{"type":["string","null"],"description":"Human-readable evaluator name, when available."},"scorer":{"type":["string","null"],"description":"Who or what produced the score. For log-scoped score writes, the backend derives this from the authenticated user."},"log_id":{"type":["string","null"],"description":"Associated log/span ID."},"prompt_id":{"type":["string","null"],"description":"Associated prompt ID, when available."},"prompt_version_number":{"type":["integer","null"],"description":"Associated prompt version number, when available."},"dataset_id":{"type":["string","null"],"description":"Associated dataset ID, when available."},"automation_id":{"type":["string","null"],"description":"Associated automation ID, when available."},"status":{"type":["string","null"],"description":"Evaluation status, when available."},"error_message":{"type":["string","null"],"description":"Evaluation error message, when available."},"explanation":{"type":"string","description":"Optional explanation for the score."}},"required":["id","created_at"],"title":"Scores_updateSpanScore_Response_200"},"UpdateSpanScoreRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateSpanScoreRequestBadRequestError"},"UpdateSpanScoreRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateSpanScoreRequestUnauthorizedError"},"UpdateSpanScoreRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateSpanScoreRequestNotFoundError"},"DeleteSpanScoreRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeleteSpanScoreRequestUnauthorizedError"},"DeleteSpanScoreRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeleteSpanScoreRequestNotFoundError"},"ApiScoresListPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{},"description":"Filter criteria using the standard Respan filter format.","title":"ApiScoresListPostRequestBodyContentApplicationJsonSchemaFilters"},"ApiScoresListPostResponsesContentApplicationJsonSchemaCurrentFilters":{"type":"object","properties":{},"description":"Normalized filters applied to this request.","title":"ApiScoresListPostResponsesContentApplicationJsonSchemaCurrentFilters"},"ApiScoresListPostResponsesContentApplicationJsonSchemaResultsItemsType":{"type":"string","enum":["llm","human","code","function","human_numerical","human_boolean","human_categorical","human_text","custom"],"description":"Evaluator execution type. Legacy rows may contain legacy type values.","title":"ApiScoresListPostResponsesContentApplicationJsonSchemaResultsItemsType"},"ApiScoresListPostResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string","description":"Score ID."},"created_at":{"type":"string","format":"date-time","description":"When the score was created."},"type":{"$ref":"#/components/schemas/ApiScoresListPostResponsesContentApplicationJsonSchemaResultsItemsType","description":"Evaluator execution type. Legacy rows may contain legacy type values."},"environment":{"type":"string","description":"Environment associated with the score."},"numerical_value":{"type":["number","null"],"format":"double","description":"Numeric score value. Use for `numerical` and `percentage` evaluators."},"string_value":{"type":["string","null"],"description":"Text score value. Use for `text` and legacy `comment` evaluators."},"boolean_value":{"type":["boolean","null"],"description":"Boolean score value. Use for `boolean` evaluators."},"categorical_value":{"type":["array","null"],"items":{"type":"string"},"description":"Categorical score values. Use for `single_select`, `multi_select`, and legacy `categorical` evaluators."},"json_value":{"type":["string","null"],"description":"JSON score value encoded as a string. Use for `json` evaluators."},"is_passed":{"type":["boolean","null"],"description":"Whether the score passes the evaluator conditions."},"cost":{"type":["number","null"],"format":"double","description":"Evaluation cost in USD, when available."},"evaluator_id":{"type":["string","null"],"description":"Evaluator ID associated with the score."},"evaluator_slug":{"type":["string","null"],"description":"Evaluator slug associated with the score."},"evaluator_name":{"type":["string","null"],"description":"Human-readable evaluator name, when available."},"scorer":{"type":["string","null"],"description":"Who or what produced the score. For log-scoped score writes, the backend derives this from the authenticated user."},"log_id":{"type":["string","null"],"description":"Associated log/span ID."},"prompt_id":{"type":["string","null"],"description":"Associated prompt ID, when available."},"prompt_version_number":{"type":["integer","null"],"description":"Associated prompt version number, when available."},"dataset_id":{"type":["string","null"],"description":"Associated dataset ID, when available."},"automation_id":{"type":["string","null"],"description":"Associated automation ID, when available."},"status":{"type":["string","null"],"description":"Evaluation status, when available."},"error_message":{"type":["string","null"],"description":"Evaluation error message, when available."},"explanation":{"type":"string","description":"Optional explanation for the score."}},"required":["id","created_at"],"title":"ApiScoresListPostResponsesContentApplicationJsonSchemaResultsItems"},"Scores_filterScores_Response_200":{"type":"object","properties":{"count":{"type":"integer","description":"Number of scores returned on this page."},"next":{"type":["string","null"],"description":"URL for the next page, if any."},"previous":{"type":["string","null"],"description":"URL for the previous page, if any."},"current_filters":{"$ref":"#/components/schemas/ApiScoresListPostResponsesContentApplicationJsonSchemaCurrentFilters","description":"Normalized filters applied to this request."},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiScoresListPostResponsesContentApplicationJsonSchemaResultsItems"}}},"required":["count","results"],"title":"Scores_filterScores_Response_200"},"FilterScoresRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"FilterScoresRequestBadRequestError"},"FilterScoresRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"FilterScoresRequestUnauthorizedError"},"ApiScoresIdPutResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code","function","human_numerical","human_boolean","human_categorical","human_text","custom"],"description":"Evaluator execution type. Legacy rows may contain legacy type values.","title":"ApiScoresIdPutResponsesContentApplicationJsonSchemaType"},"ApiScoresIdPutResponsesContentApplicationJsonSchemaInputsMetrics":{"type":"object","properties":{},"title":"ApiScoresIdPutResponsesContentApplicationJsonSchemaInputsMetrics"},"ApiScoresIdPutResponsesContentApplicationJsonSchemaInputsMetadata":{"type":"object","properties":{},"title":"ApiScoresIdPutResponsesContentApplicationJsonSchemaInputsMetadata"},"ApiScoresIdPutResponsesContentApplicationJsonSchemaInputs":{"type":"object","properties":{"input":{"description":"Input/request evaluated."},"output":{"description":"Output/response evaluated."},"metrics":{"oneOf":[{"$ref":"#/components/schemas/ApiScoresIdPutResponsesContentApplicationJsonSchemaInputsMetrics"},{"type":"null"}]},"metadata":{"oneOf":[{"$ref":"#/components/schemas/ApiScoresIdPutResponsesContentApplicationJsonSchemaInputsMetadata"},{"type":"null"}]}},"description":"Unified evaluator inputs stored with the score, when available.","title":"ApiScoresIdPutResponsesContentApplicationJsonSchemaInputs"},"ApiScoresIdPutResponsesContentApplicationJsonSchemaEvaluator":{"type":"object","properties":{},"description":"Evaluator metadata when the score is associated with a platform evaluator.","title":"ApiScoresIdPutResponsesContentApplicationJsonSchemaEvaluator"},"Scores_replaceScore_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Score ID."},"created_at":{"type":"string","format":"date-time","description":"When the score was created."},"type":{"$ref":"#/components/schemas/ApiScoresIdPutResponsesContentApplicationJsonSchemaType","description":"Evaluator execution type. Legacy rows may contain legacy type values."},"environment":{"type":"string","description":"Environment associated with the score."},"numerical_value":{"type":["number","null"],"format":"double","description":"Numeric score value. Use for `numerical` and `percentage` evaluators."},"string_value":{"type":["string","null"],"description":"Text score value. Use for `text` and legacy `comment` evaluators."},"boolean_value":{"type":["boolean","null"],"description":"Boolean score value. Use for `boolean` evaluators."},"categorical_value":{"type":["array","null"],"items":{"type":"string"},"description":"Categorical score values. Use for `single_select`, `multi_select`, and legacy `categorical` evaluators."},"json_value":{"type":["string","null"],"description":"JSON score value encoded as a string. Use for `json` evaluators."},"is_passed":{"type":["boolean","null"],"description":"Whether the score passes the evaluator conditions."},"cost":{"type":["number","null"],"format":"double","description":"Evaluation cost in USD, when available."},"evaluator_id":{"type":["string","null"],"description":"Evaluator ID associated with the score."},"evaluator_slug":{"type":["string","null"],"description":"Evaluator slug associated with the score."},"evaluator_name":{"type":["string","null"],"description":"Human-readable evaluator name, when available."},"scorer":{"type":["string","null"],"description":"Who or what produced the score. For log-scoped score writes, the backend derives this from the authenticated user."},"log_id":{"type":["string","null"],"description":"Associated log/span ID."},"prompt_id":{"type":["string","null"],"description":"Associated prompt ID, when available."},"prompt_version_number":{"type":["integer","null"],"description":"Associated prompt version number, when available."},"dataset_id":{"type":["string","null"],"description":"Associated dataset ID, when available."},"automation_id":{"type":["string","null"],"description":"Associated automation ID, when available."},"status":{"type":["string","null"],"description":"Evaluation status, when available."},"error_message":{"type":["string","null"],"description":"Evaluation error message, when available."},"inputs":{"$ref":"#/components/schemas/ApiScoresIdPutResponsesContentApplicationJsonSchemaInputs","description":"Unified evaluator inputs stored with the score, when available."},"evaluator":{"oneOf":[{"$ref":"#/components/schemas/ApiScoresIdPutResponsesContentApplicationJsonSchemaEvaluator"},{"type":"null"}],"description":"Evaluator metadata when the score is associated with a platform evaluator."},"explanation":{"type":"string","description":"Optional explanation for the score."}},"required":["id","created_at"],"title":"Scores_replaceScore_Response_200"},"ReplaceScoreRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceScoreRequestBadRequestError"},"ReplaceScoreRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceScoreRequestUnauthorizedError"},"ReplaceScoreRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceScoreRequestNotFoundError"},"ApiLogsLogIdScoresScoreIdPutResponsesContentApplicationJsonSchemaType":{"type":"string","enum":["llm","human","code","function","human_numerical","human_boolean","human_categorical","human_text","custom"],"description":"Evaluator execution type. Legacy rows may contain legacy type values.","title":"ApiLogsLogIdScoresScoreIdPutResponsesContentApplicationJsonSchemaType"},"Scores_replaceSpanScore_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Score ID."},"created_at":{"type":"string","format":"date-time","description":"When the score was created."},"type":{"$ref":"#/components/schemas/ApiLogsLogIdScoresScoreIdPutResponsesContentApplicationJsonSchemaType","description":"Evaluator execution type. Legacy rows may contain legacy type values."},"environment":{"type":"string","description":"Environment associated with the score."},"numerical_value":{"type":["number","null"],"format":"double","description":"Numeric score value. Use for `numerical` and `percentage` evaluators."},"string_value":{"type":["string","null"],"description":"Text score value. Use for `text` and legacy `comment` evaluators."},"boolean_value":{"type":["boolean","null"],"description":"Boolean score value. Use for `boolean` evaluators."},"categorical_value":{"type":["array","null"],"items":{"type":"string"},"description":"Categorical score values. Use for `single_select`, `multi_select`, and legacy `categorical` evaluators."},"json_value":{"type":["string","null"],"description":"JSON score value encoded as a string. Use for `json` evaluators."},"is_passed":{"type":["boolean","null"],"description":"Whether the score passes the evaluator conditions."},"cost":{"type":["number","null"],"format":"double","description":"Evaluation cost in USD, when available."},"evaluator_id":{"type":["string","null"],"description":"Evaluator ID associated with the score."},"evaluator_slug":{"type":["string","null"],"description":"Evaluator slug associated with the score."},"evaluator_name":{"type":["string","null"],"description":"Human-readable evaluator name, when available."},"scorer":{"type":["string","null"],"description":"Who or what produced the score. For log-scoped score writes, the backend derives this from the authenticated user."},"log_id":{"type":["string","null"],"description":"Associated log/span ID."},"prompt_id":{"type":["string","null"],"description":"Associated prompt ID, when available."},"prompt_version_number":{"type":["integer","null"],"description":"Associated prompt version number, when available."},"dataset_id":{"type":["string","null"],"description":"Associated dataset ID, when available."},"automation_id":{"type":["string","null"],"description":"Associated automation ID, when available."},"status":{"type":["string","null"],"description":"Evaluation status, when available."},"error_message":{"type":["string","null"],"description":"Evaluation error message, when available."},"explanation":{"type":"string","description":"Optional explanation for the score."}},"required":["id","created_at"],"title":"Scores_replaceSpanScore_Response_200"},"ReplaceSpanScoreRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceSpanScoreRequestBadRequestError"},"ReplaceSpanScoreRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceSpanScoreRequestUnauthorizedError"},"ReplaceSpanScoreRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ReplaceSpanScoreRequestNotFoundError"},"ApiV2ExperimentsPostRequestBodyContentApplicationJsonSchemaWorkflowItemsType":{"type":"string","enum":["prompt","completion","eval","condition","wait","duplicate"],"description":"Workflow step type. Use `eval` for inline evaluation steps; legacy `evaluator` input is normalized to `eval`.","title":"ApiV2ExperimentsPostRequestBodyContentApplicationJsonSchemaWorkflowItemsType"},"ApiV2ExperimentsPostRequestBodyContentApplicationJsonSchemaWorkflowItems":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/ApiV2ExperimentsPostRequestBodyContentApplicationJsonSchemaWorkflowItemsType","description":"Workflow step type. Use `eval` for inline evaluation steps; legacy `evaluator` input is normalized to `eval`."},"config":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Configuration for this workflow step. `prompt` accepts `prompt_id` or `prompt_slug`; `completion` accepts model generation settings; `wait` pauses until results are submitted; `duplicate` reuses dataset input/output."}},"required":["type","config"],"title":"ApiV2ExperimentsPostRequestBodyContentApplicationJsonSchemaWorkflowItems"},"ApiV2ExperimentsPostResponsesContentApplicationJsonSchemaWorkflowItemsType":{"type":"string","enum":["prompt","completion","eval","condition","wait","duplicate"],"description":"Workflow step type. Use `eval` for inline evaluation steps; legacy `evaluator` input is normalized to `eval`.","title":"ApiV2ExperimentsPostResponsesContentApplicationJsonSchemaWorkflowItemsType"},"ApiV2ExperimentsPostResponsesContentApplicationJsonSchemaWorkflowItems":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/ApiV2ExperimentsPostResponsesContentApplicationJsonSchemaWorkflowItemsType","description":"Workflow step type. Use `eval` for inline evaluation steps; legacy `evaluator` input is normalized to `eval`."},"config":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Configuration for this workflow step. `prompt` accepts `prompt_id` or `prompt_slug`; `completion` accepts model generation settings; `wait` pauses until results are submitted; `duplicate` reuses dataset input/output."}},"required":["type","config"],"title":"ApiV2ExperimentsPostResponsesContentApplicationJsonSchemaWorkflowItems"},"Experiments_createExperiment_Response_201":{"type":"object","properties":{"id":{"type":"string","description":"Experiment ID."},"name":{"type":"string","description":"Experiment name."},"description":{"type":["string","null"],"description":"Experiment description."},"dataset":{"type":["string","null"],"description":"Dataset ID associated with the experiment."},"dataset_id":{"type":["string","null"],"description":"Dataset ID associated with the experiment."},"dataset_name":{"type":["string","null"],"description":"Dataset name, when available."},"workflow_count":{"type":"integer","description":"Number of workflow steps."},"status":{"type":"string","description":"Experiment execution status."},"progress":{"type":"number","format":"double","description":"Execution progress percentage."},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"tags":{"type":"array","items":{"type":"object","additionalProperties":{"description":"Any type"}},"description":"Tags attached to the experiment."},"workflow":{"type":"array","items":{"$ref":"#/components/schemas/ApiV2ExperimentsPostResponsesContentApplicationJsonSchemaWorkflowItems"},"description":"Workflow tasks configured for the experiment."},"evaluator_ids":{"type":"array","items":{"type":"string"},"description":"Evaluator IDs used for scoring."},"evaluator_slugs":{"type":"array","items":{"type":"string"},"description":"Backward-compatible evaluator identifiers stored by the backend."},"evaluator_workflow_ids":{"type":"array","items":{"type":"string"},"description":"Eval-only workflow versions used for scoring."},"batch_size":{"type":"integer"},"concurrency":{"type":"integer"},"enable_tracing":{"type":"boolean"},"error_message":{"type":["string","null"],"description":"Failure details when status is failed."}},"required":["id","name","status","created_at"],"title":"Experiments_createExperiment_Response_201"},"CreateExperimentRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"CreateExperimentRequestBadRequestError"},"CreateExperimentRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"CreateExperimentRequestUnauthorizedError"},"CreateExperimentRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"CreateExperimentRequestNotFoundError"},"ApiV2ExperimentsListPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{},"description":"Filter criteria using the standard Respan filter format.","title":"ApiV2ExperimentsListPostRequestBodyContentApplicationJsonSchemaFilters"},"ApiV2ExperimentsListPostResponsesContentApplicationJsonSchemaCurrentFilters":{"type":"object","properties":{},"description":"Normalized filters applied to this request.","title":"ApiV2ExperimentsListPostResponsesContentApplicationJsonSchemaCurrentFilters"},"ApiV2ExperimentsListPostResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string","description":"Experiment ID."},"name":{"type":"string","description":"Experiment name."},"description":{"type":["string","null"],"description":"Experiment description."},"dataset":{"type":["string","null"],"description":"Dataset ID associated with the experiment."},"dataset_id":{"type":["string","null"],"description":"Dataset ID associated with the experiment."},"dataset_name":{"type":["string","null"],"description":"Dataset name, when available."},"workflow_count":{"type":"integer","description":"Number of workflow steps."},"status":{"type":"string","description":"Experiment execution status."},"progress":{"type":"number","format":"double","description":"Execution progress percentage."},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"tags":{"type":"array","items":{"type":"object","additionalProperties":{"description":"Any type"}},"description":"Tags attached to the experiment."}},"required":["id","name","status","created_at"],"title":"ApiV2ExperimentsListPostResponsesContentApplicationJsonSchemaResultsItems"},"Experiments_listExperiments_Response_200":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of matching results."},"next":{"type":["string","null"],"description":"URL for the next page, if any."},"previous":{"type":["string","null"],"description":"URL for the previous page, if any."},"current_filters":{"$ref":"#/components/schemas/ApiV2ExperimentsListPostResponsesContentApplicationJsonSchemaCurrentFilters","description":"Normalized filters applied to this request."},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiV2ExperimentsListPostResponsesContentApplicationJsonSchemaResultsItems"}}},"required":["count","results"],"title":"Experiments_listExperiments_Response_200"},"ListExperimentsRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"ListExperimentsRequestBadRequestError"},"ListExperimentsRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"ListExperimentsRequestUnauthorizedError"},"ApiV2ExperimentsExperimentIdGetResponsesContentApplicationJsonSchemaWorkflowItemsType":{"type":"string","enum":["prompt","completion","eval","condition","wait","duplicate"],"description":"Workflow step type. Use `eval` for inline evaluation steps; legacy `evaluator` input is normalized to `eval`.","title":"ApiV2ExperimentsExperimentIdGetResponsesContentApplicationJsonSchemaWorkflowItemsType"},"ApiV2ExperimentsExperimentIdGetResponsesContentApplicationJsonSchemaWorkflowItems":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdGetResponsesContentApplicationJsonSchemaWorkflowItemsType","description":"Workflow step type. Use `eval` for inline evaluation steps; legacy `evaluator` input is normalized to `eval`."},"config":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Configuration for this workflow step. `prompt` accepts `prompt_id` or `prompt_slug`; `completion` accepts model generation settings; `wait` pauses until results are submitted; `duplicate` reuses dataset input/output."}},"required":["type","config"],"title":"ApiV2ExperimentsExperimentIdGetResponsesContentApplicationJsonSchemaWorkflowItems"},"Experiments_retrieveExperiment_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Experiment ID."},"name":{"type":"string","description":"Experiment name."},"description":{"type":["string","null"],"description":"Experiment description."},"dataset":{"type":["string","null"],"description":"Dataset ID associated with the experiment."},"dataset_id":{"type":["string","null"],"description":"Dataset ID associated with the experiment."},"dataset_name":{"type":["string","null"],"description":"Dataset name, when available."},"workflow_count":{"type":"integer","description":"Number of workflow steps."},"status":{"type":"string","description":"Experiment execution status."},"progress":{"type":"number","format":"double","description":"Execution progress percentage."},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"tags":{"type":"array","items":{"type":"object","additionalProperties":{"description":"Any type"}},"description":"Tags attached to the experiment."},"workflow":{"type":"array","items":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdGetResponsesContentApplicationJsonSchemaWorkflowItems"},"description":"Workflow tasks configured for the experiment."},"evaluator_ids":{"type":"array","items":{"type":"string"},"description":"Evaluator IDs used for scoring."},"evaluator_slugs":{"type":"array","items":{"type":"string"},"description":"Backward-compatible evaluator identifiers stored by the backend."},"evaluator_workflow_ids":{"type":"array","items":{"type":"string"},"description":"Eval-only workflow versions used for scoring."},"batch_size":{"type":"integer"},"concurrency":{"type":"integer"},"enable_tracing":{"type":"boolean"},"error_message":{"type":["string","null"],"description":"Failure details when status is failed."}},"required":["id","name","status","created_at"],"title":"Experiments_retrieveExperiment_Response_200"},"RetrieveExperimentRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"RetrieveExperimentRequestUnauthorizedError"},"RetrieveExperimentRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"RetrieveExperimentRequestNotFoundError"},"DeleteExperimentRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"DeleteExperimentRequestUnauthorizedError"},"DeleteExperimentRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"DeleteExperimentRequestNotFoundError"},"ApiV2ExperimentsExperimentIdLogsListPostParametersDetail":{"type":"string","enum":["1","true"],"title":"ApiV2ExperimentsExperimentIdLogsListPostParametersDetail"},"ApiV2ExperimentsExperimentIdLogsListPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{},"description":"Filter criteria using the standard Respan filter format.","title":"ApiV2ExperimentsExperimentIdLogsListPostRequestBodyContentApplicationJsonSchemaFilters"},"ApiV2ExperimentsExperimentIdLogsListPostResponsesContentApplicationJsonSchemaCurrentFilters":{"type":"object","properties":{},"description":"Normalized filters applied to this request.","title":"ApiV2ExperimentsExperimentIdLogsListPostResponsesContentApplicationJsonSchemaCurrentFilters"},"ApiV2ExperimentsExperimentIdLogsListPostResponsesContentApplicationJsonSchemaResultsItemsScoresScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiV2ExperimentsExperimentIdLogsListPostResponsesContentApplicationJsonSchemaResultsItemsScoresScoreValueType"},"ApiV2ExperimentsExperimentIdLogsListPostResponsesContentApplicationJsonSchemaResultsItemsScores":{"type":"object","properties":{"evaluator_id":{"type":"string"},"evaluator_slug":{"type":["string","null"]},"evaluator_name":{"type":["string","null"]},"score_value_type":{"oneOf":[{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdLogsListPostResponsesContentApplicationJsonSchemaResultsItemsScoresScoreValueType"},{"type":"null"}]},"numerical_value":{"type":["number","null"],"format":"double"},"string_value":{"type":["string","null"]},"boolean_value":{"type":["boolean","null"]},"categorical_value":{"type":["array","null"],"items":{"type":"string"}},"json_value":{"type":["string","null"]},"avg_score":{"type":["number","null"],"format":"double"},"true_count":{"type":["integer","null"]},"false_count":{"type":["integer","null"]},"explanation":{"type":"string","description":"Optional explanation for the score."}},"title":"ApiV2ExperimentsExperimentIdLogsListPostResponsesContentApplicationJsonSchemaResultsItemsScores"},"ApiV2ExperimentsExperimentIdLogsListPostResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string","description":"Trace ID. Use this value as `log_id` for trace detail and wait-workflow resume routes."},"trace_unique_id":{"type":"string","description":"Trace unique ID."},"root_span_unique_id":{"type":["string","null"]},"environment":{"type":["string","null"]},"customer_identifier":{"type":["string","null"]},"name":{"type":["string","null"]},"input":{"oneOf":[{"description":"Any type"},{"type":"null"}],"description":"Trace input. May be a JSON value or serialized JSON string depending on storage."},"output":{"oneOf":[{"description":"Any type"},{"type":"null"}],"description":"Trace output. May be a JSON value or serialized JSON string depending on storage."},"expected_output":{"oneOf":[{"description":"Any type"},{"type":"null"}],"description":"Expected output from the dataset row, when available."},"status":{"type":["string","null"]},"comparison_key":{"type":["string","null"],"description":"Stable key for comparing the same input across experiments."},"start_time":{"type":["string","null"],"format":"date-time"},"end_time":{"type":["string","null"],"format":"date-time"},"duration":{"type":["number","null"],"format":"double","description":"Trace duration in seconds."},"span_count":{"type":["integer","null"]},"llm_call_count":{"type":["integer","null"]},"total_cost":{"type":["number","null"],"format":"double"},"total_tokens":{"type":["integer","null"]},"total_prompt_tokens":{"type":["integer","null"]},"total_completion_tokens":{"type":["integer","null"]},"error_count":{"type":["integer","null"]},"scores":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdLogsListPostResponsesContentApplicationJsonSchemaResultsItemsScores"},"description":"Scores keyed by evaluator ID or slug. Each value includes evaluator metadata and the score value field matching `score_value_type`."}},"required":["id"],"title":"ApiV2ExperimentsExperimentIdLogsListPostResponsesContentApplicationJsonSchemaResultsItems"},"Experiments_listExperimentSpans_Response_200":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of matching results."},"next":{"type":["string","null"],"description":"URL for the next page, if any."},"previous":{"type":["string","null"],"description":"URL for the previous page, if any."},"current_filters":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdLogsListPostResponsesContentApplicationJsonSchemaCurrentFilters","description":"Normalized filters applied to this request."},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdLogsListPostResponsesContentApplicationJsonSchemaResultsItems"}}},"required":["count","results"],"title":"Experiments_listExperimentSpans_Response_200"},"ListExperimentSpansRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"ListExperimentSpansRequestBadRequestError"},"ListExperimentSpansRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"ListExperimentSpansRequestUnauthorizedError"},"ListExperimentSpansRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"ListExperimentSpansRequestNotFoundError"},"ListExperimentSpansRequestContentTooLargeError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"ListExperimentSpansRequestContentTooLargeError"},"ApiV2ExperimentsExperimentIdLogsLogIdGetResponsesContentApplicationJsonSchemaScoresScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiV2ExperimentsExperimentIdLogsLogIdGetResponsesContentApplicationJsonSchemaScoresScoreValueType"},"ApiV2ExperimentsExperimentIdLogsLogIdGetResponsesContentApplicationJsonSchemaScores":{"type":"object","properties":{"evaluator_id":{"type":"string"},"evaluator_slug":{"type":["string","null"]},"evaluator_name":{"type":["string","null"]},"score_value_type":{"oneOf":[{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdLogsLogIdGetResponsesContentApplicationJsonSchemaScoresScoreValueType"},{"type":"null"}]},"numerical_value":{"type":["number","null"],"format":"double"},"string_value":{"type":["string","null"]},"boolean_value":{"type":["boolean","null"]},"categorical_value":{"type":["array","null"],"items":{"type":"string"}},"json_value":{"type":["string","null"]},"avg_score":{"type":["number","null"],"format":"double"},"true_count":{"type":["integer","null"]},"false_count":{"type":["integer","null"]},"explanation":{"type":"string","description":"Optional explanation for the score."}},"title":"ApiV2ExperimentsExperimentIdLogsLogIdGetResponsesContentApplicationJsonSchemaScores"},"ApiV2ExperimentsExperimentIdLogsLogIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsScoresScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiV2ExperimentsExperimentIdLogsLogIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsScoresScoreValueType"},"ApiV2ExperimentsExperimentIdLogsLogIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsScores":{"type":"object","properties":{"evaluator_id":{"type":"string"},"evaluator_slug":{"type":["string","null"]},"evaluator_name":{"type":["string","null"]},"score_value_type":{"oneOf":[{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdLogsLogIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsScoresScoreValueType"},{"type":"null"}]},"numerical_value":{"type":["number","null"],"format":"double"},"string_value":{"type":["string","null"]},"boolean_value":{"type":["boolean","null"]},"categorical_value":{"type":["array","null"],"items":{"type":"string"}},"json_value":{"type":["string","null"]},"avg_score":{"type":["number","null"],"format":"double"},"true_count":{"type":["integer","null"]},"false_count":{"type":["integer","null"]},"explanation":{"type":"string","description":"Optional explanation for the score."}},"title":"ApiV2ExperimentsExperimentIdLogsLogIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsScores"},"ApiV2ExperimentsExperimentIdLogsLogIdGetResponsesContentApplicationJsonSchemaSpanTreeItems":{"type":"object","properties":{"id":{"type":"string","description":"Trace ID. Use this value as `log_id` for trace detail and wait-workflow resume routes."},"trace_unique_id":{"type":"string","description":"Trace unique ID."},"root_span_unique_id":{"type":["string","null"]},"environment":{"type":["string","null"]},"customer_identifier":{"type":["string","null"]},"name":{"type":["string","null"]},"input":{"oneOf":[{"description":"Any type"},{"type":"null"}],"description":"Trace input. May be a JSON value or serialized JSON string depending on storage."},"output":{"oneOf":[{"description":"Any type"},{"type":"null"}],"description":"Trace output. May be a JSON value or serialized JSON string depending on storage."},"expected_output":{"oneOf":[{"description":"Any type"},{"type":"null"}],"description":"Expected output from the dataset row, when available."},"status":{"type":["string","null"]},"comparison_key":{"type":["string","null"],"description":"Stable key for comparing the same input across experiments."},"start_time":{"type":["string","null"],"format":"date-time"},"end_time":{"type":["string","null"],"format":"date-time"},"duration":{"type":["number","null"],"format":"double","description":"Trace duration in seconds."},"span_count":{"type":["integer","null"]},"llm_call_count":{"type":["integer","null"]},"total_cost":{"type":["number","null"],"format":"double"},"total_tokens":{"type":["integer","null"]},"total_prompt_tokens":{"type":["integer","null"]},"total_completion_tokens":{"type":["integer","null"]},"error_count":{"type":["integer","null"]},"scores":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdLogsLogIdGetResponsesContentApplicationJsonSchemaSpanTreeItemsScores"},"description":"Scores keyed by evaluator ID or slug. Each value includes evaluator metadata and the score value field matching `score_value_type`."},"span_name":{"type":["string","null"]},"log_type":{"type":["string","null"]},"model":{"type":["string","null"]},"children":{"type":"array","items":{"type":"object","additionalProperties":{"description":"Any type"}}}},"required":["id"],"title":"ApiV2ExperimentsExperimentIdLogsLogIdGetResponsesContentApplicationJsonSchemaSpanTreeItems"},"Experiments_retrieveExperimentSpan_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Trace ID. Use this value as `log_id` for trace detail and wait-workflow resume routes."},"trace_unique_id":{"type":"string","description":"Trace unique ID."},"root_span_unique_id":{"type":["string","null"]},"environment":{"type":["string","null"]},"customer_identifier":{"type":["string","null"]},"name":{"type":["string","null"]},"input":{"oneOf":[{"description":"Any type"},{"type":"null"}],"description":"Trace input. May be a JSON value or serialized JSON string depending on storage."},"output":{"oneOf":[{"description":"Any type"},{"type":"null"}],"description":"Trace output. May be a JSON value or serialized JSON string depending on storage."},"expected_output":{"oneOf":[{"description":"Any type"},{"type":"null"}],"description":"Expected output from the dataset row, when available."},"status":{"type":["string","null"]},"comparison_key":{"type":["string","null"],"description":"Stable key for comparing the same input across experiments."},"start_time":{"type":["string","null"],"format":"date-time"},"end_time":{"type":["string","null"],"format":"date-time"},"duration":{"type":["number","null"],"format":"double","description":"Trace duration in seconds."},"span_count":{"type":["integer","null"]},"llm_call_count":{"type":["integer","null"]},"total_cost":{"type":["number","null"],"format":"double"},"total_tokens":{"type":["integer","null"]},"total_prompt_tokens":{"type":["integer","null"]},"total_completion_tokens":{"type":["integer","null"]},"error_count":{"type":["integer","null"]},"scores":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdLogsLogIdGetResponsesContentApplicationJsonSchemaScores"},"description":"Scores keyed by evaluator ID or slug. Each value includes evaluator metadata and the score value field matching `score_value_type`."},"span_tree":{"type":"array","items":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdLogsLogIdGetResponsesContentApplicationJsonSchemaSpanTreeItems"},"description":"Hierarchical span tree for this trace."}},"required":["id"],"title":"Experiments_retrieveExperimentSpan_Response_200"},"RetrieveExperimentSpanRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"RetrieveExperimentSpanRequestUnauthorizedError"},"RetrieveExperimentSpanRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"RetrieveExperimentSpanRequestNotFoundError"},"RetrieveExperimentSpanRequestContentTooLargeError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"RetrieveExperimentSpanRequestContentTooLargeError"},"Experiments_updateExperimentSpan_Response_200":{"type":"object","properties":{"id":{"type":"string"},"trace_unique_id":{"type":"string"},"status":{"type":"string"}},"required":["id","trace_unique_id","status"],"title":"Experiments_updateExperimentSpan_Response_200"},"UpdateExperimentSpanRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"UpdateExperimentSpanRequestBadRequestError"},"UpdateExperimentSpanRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"UpdateExperimentSpanRequestUnauthorizedError"},"UpdateExperimentSpanRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"UpdateExperimentSpanRequestNotFoundError"},"ApiV2ExperimentsSummaryPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{},"description":"Filter criteria using the standard Respan filter format.","title":"ApiV2ExperimentsSummaryPostRequestBodyContentApplicationJsonSchemaFilters"},"Experiments_filterExperimentsSummary_Response_200":{"type":"object","properties":{"total_count":{"type":"integer","description":"Number of experiments matching the filters."}},"required":["total_count"],"title":"Experiments_filterExperimentsSummary_Response_200"},"FilterExperimentsSummaryRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"FilterExperimentsSummaryRequestBadRequestError"},"FilterExperimentsSummaryRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"FilterExperimentsSummaryRequestUnauthorizedError"},"ApiV2ExperimentsExperimentIdPutRequestBodyContentApplicationJsonSchemaWorkflowItemsType":{"type":"string","enum":["prompt","completion","eval","condition","wait","duplicate"],"description":"Workflow step type. Use `eval` for inline evaluation steps; legacy `evaluator` input is normalized to `eval`.","title":"ApiV2ExperimentsExperimentIdPutRequestBodyContentApplicationJsonSchemaWorkflowItemsType"},"ApiV2ExperimentsExperimentIdPutRequestBodyContentApplicationJsonSchemaWorkflowItems":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdPutRequestBodyContentApplicationJsonSchemaWorkflowItemsType","description":"Workflow step type. Use `eval` for inline evaluation steps; legacy `evaluator` input is normalized to `eval`."},"config":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Configuration for this workflow step. `prompt` accepts `prompt_id` or `prompt_slug`; `completion` accepts model generation settings; `wait` pauses until results are submitted; `duplicate` reuses dataset input/output."}},"required":["type","config"],"title":"ApiV2ExperimentsExperimentIdPutRequestBodyContentApplicationJsonSchemaWorkflowItems"},"ApiV2ExperimentsExperimentIdPutResponsesContentApplicationJsonSchemaWorkflowItemsType":{"type":"string","enum":["prompt","completion","eval","condition","wait","duplicate"],"description":"Workflow step type. Use `eval` for inline evaluation steps; legacy `evaluator` input is normalized to `eval`.","title":"ApiV2ExperimentsExperimentIdPutResponsesContentApplicationJsonSchemaWorkflowItemsType"},"ApiV2ExperimentsExperimentIdPutResponsesContentApplicationJsonSchemaWorkflowItems":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdPutResponsesContentApplicationJsonSchemaWorkflowItemsType","description":"Workflow step type. Use `eval` for inline evaluation steps; legacy `evaluator` input is normalized to `eval`."},"config":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Configuration for this workflow step. `prompt` accepts `prompt_id` or `prompt_slug`; `completion` accepts model generation settings; `wait` pauses until results are submitted; `duplicate` reuses dataset input/output."}},"required":["type","config"],"title":"ApiV2ExperimentsExperimentIdPutResponsesContentApplicationJsonSchemaWorkflowItems"},"Experiments_replaceExperiment_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Experiment ID."},"name":{"type":"string","description":"Experiment name."},"description":{"type":["string","null"],"description":"Experiment description."},"dataset":{"type":["string","null"],"description":"Dataset ID associated with the experiment."},"dataset_id":{"type":["string","null"],"description":"Dataset ID associated with the experiment."},"dataset_name":{"type":["string","null"],"description":"Dataset name, when available."},"workflow_count":{"type":"integer","description":"Number of workflow steps."},"status":{"type":"string","description":"Experiment execution status."},"progress":{"type":"number","format":"double","description":"Execution progress percentage."},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"tags":{"type":"array","items":{"type":"object","additionalProperties":{"description":"Any type"}},"description":"Tags attached to the experiment."},"workflow":{"type":"array","items":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdPutResponsesContentApplicationJsonSchemaWorkflowItems"},"description":"Workflow tasks configured for the experiment."},"evaluator_ids":{"type":"array","items":{"type":"string"},"description":"Evaluator IDs used for scoring."},"evaluator_slugs":{"type":"array","items":{"type":"string"},"description":"Backward-compatible evaluator identifiers stored by the backend."},"evaluator_workflow_ids":{"type":"array","items":{"type":"string"},"description":"Eval-only workflow versions used for scoring."},"batch_size":{"type":"integer"},"concurrency":{"type":"integer"},"enable_tracing":{"type":"boolean"},"error_message":{"type":["string","null"],"description":"Failure details when status is failed."}},"required":["id","name","status","created_at"],"title":"Experiments_replaceExperiment_Response_200"},"ReplaceExperimentRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"ReplaceExperimentRequestBadRequestError"},"ReplaceExperimentRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"ReplaceExperimentRequestUnauthorizedError"},"ReplaceExperimentRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"ReplaceExperimentRequestNotFoundError"},"ApiV2ExperimentsExperimentIdPatchRequestBodyContentApplicationJsonSchemaWorkflowItemsType":{"type":"string","enum":["prompt","completion","eval","condition","wait","duplicate"],"description":"Workflow step type. Use `eval` for inline evaluation steps; legacy `evaluator` input is normalized to `eval`.","title":"ApiV2ExperimentsExperimentIdPatchRequestBodyContentApplicationJsonSchemaWorkflowItemsType"},"ApiV2ExperimentsExperimentIdPatchRequestBodyContentApplicationJsonSchemaWorkflowItems":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdPatchRequestBodyContentApplicationJsonSchemaWorkflowItemsType","description":"Workflow step type. Use `eval` for inline evaluation steps; legacy `evaluator` input is normalized to `eval`."},"config":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Configuration for this workflow step. `prompt` accepts `prompt_id` or `prompt_slug`; `completion` accepts model generation settings; `wait` pauses until results are submitted; `duplicate` reuses dataset input/output."}},"required":["type","config"],"title":"ApiV2ExperimentsExperimentIdPatchRequestBodyContentApplicationJsonSchemaWorkflowItems"},"ApiV2ExperimentsExperimentIdPatchResponsesContentApplicationJsonSchemaWorkflowItemsType":{"type":"string","enum":["prompt","completion","eval","condition","wait","duplicate"],"description":"Workflow step type. Use `eval` for inline evaluation steps; legacy `evaluator` input is normalized to `eval`.","title":"ApiV2ExperimentsExperimentIdPatchResponsesContentApplicationJsonSchemaWorkflowItemsType"},"ApiV2ExperimentsExperimentIdPatchResponsesContentApplicationJsonSchemaWorkflowItems":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdPatchResponsesContentApplicationJsonSchemaWorkflowItemsType","description":"Workflow step type. Use `eval` for inline evaluation steps; legacy `evaluator` input is normalized to `eval`."},"config":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Configuration for this workflow step. `prompt` accepts `prompt_id` or `prompt_slug`; `completion` accepts model generation settings; `wait` pauses until results are submitted; `duplicate` reuses dataset input/output."}},"required":["type","config"],"title":"ApiV2ExperimentsExperimentIdPatchResponsesContentApplicationJsonSchemaWorkflowItems"},"Experiments_updateExperiment_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Experiment ID."},"name":{"type":"string","description":"Experiment name."},"description":{"type":["string","null"],"description":"Experiment description."},"dataset":{"type":["string","null"],"description":"Dataset ID associated with the experiment."},"dataset_id":{"type":["string","null"],"description":"Dataset ID associated with the experiment."},"dataset_name":{"type":["string","null"],"description":"Dataset name, when available."},"workflow_count":{"type":"integer","description":"Number of workflow steps."},"status":{"type":"string","description":"Experiment execution status."},"progress":{"type":"number","format":"double","description":"Execution progress percentage."},"created_at":{"type":"string","format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"tags":{"type":"array","items":{"type":"object","additionalProperties":{"description":"Any type"}},"description":"Tags attached to the experiment."},"workflow":{"type":"array","items":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdPatchResponsesContentApplicationJsonSchemaWorkflowItems"},"description":"Workflow tasks configured for the experiment."},"evaluator_ids":{"type":"array","items":{"type":"string"},"description":"Evaluator IDs used for scoring."},"evaluator_slugs":{"type":"array","items":{"type":"string"},"description":"Backward-compatible evaluator identifiers stored by the backend."},"evaluator_workflow_ids":{"type":"array","items":{"type":"string"},"description":"Eval-only workflow versions used for scoring."},"batch_size":{"type":"integer"},"concurrency":{"type":"integer"},"enable_tracing":{"type":"boolean"},"error_message":{"type":["string","null"],"description":"Failure details when status is failed."}},"required":["id","name","status","created_at"],"title":"Experiments_updateExperiment_Response_200"},"UpdateExperimentRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"UpdateExperimentRequestBadRequestError"},"UpdateExperimentRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"UpdateExperimentRequestUnauthorizedError"},"UpdateExperimentRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"UpdateExperimentRequestNotFoundError"},"ApiV2ExperimentsExperimentIdLogsSummaryPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{},"description":"Filter criteria using the standard Respan filter format.","title":"ApiV2ExperimentsExperimentIdLogsSummaryPostRequestBodyContentApplicationJsonSchemaFilters"},"ApiV2ExperimentsExperimentIdLogsSummaryPostResponsesContentApplicationJsonSchemaScoresScoreValueType":{"type":"string","enum":["numerical","boolean","percentage","single_select","multi_select","text","json","comment","categorical"],"title":"ApiV2ExperimentsExperimentIdLogsSummaryPostResponsesContentApplicationJsonSchemaScoresScoreValueType"},"ApiV2ExperimentsExperimentIdLogsSummaryPostResponsesContentApplicationJsonSchemaScores":{"type":"object","properties":{"evaluator_id":{"type":"string"},"evaluator_slug":{"type":["string","null"]},"evaluator_name":{"type":["string","null"]},"score_value_type":{"oneOf":[{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdLogsSummaryPostResponsesContentApplicationJsonSchemaScoresScoreValueType"},{"type":"null"}]},"numerical_value":{"type":["number","null"],"format":"double"},"string_value":{"type":["string","null"]},"boolean_value":{"type":["boolean","null"]},"categorical_value":{"type":["array","null"],"items":{"type":"string"}},"json_value":{"type":["string","null"]},"avg_score":{"type":["number","null"],"format":"double"},"true_count":{"type":["integer","null"]},"false_count":{"type":["integer","null"]},"evaluator_family_id":{"type":["string","null"],"description":"Version-independent evaluator or eval-only workflow family ID."}},"title":"ApiV2ExperimentsExperimentIdLogsSummaryPostResponsesContentApplicationJsonSchemaScores"},"Experiments_filterExperimentSpansSummary_Response_200":{"type":"object","properties":{"number_of_requests":{"type":"integer","description":"Total number of traces matching the filters."},"total_cost":{"type":"number","format":"double","description":"Sum of request costs in USD."},"total_tokens":{"type":"integer"},"total_prompt_tokens":{"type":"integer"},"total_completion_tokens":{"type":"integer"},"avg_latency":{"type":"number","format":"double","description":"Average latency in seconds."},"avg_tps":{"type":"number","format":"double","description":"Average output tokens per second."},"avg_ttft":{"type":"number","format":"double","description":"Average time to first token in seconds."},"scores":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdLogsSummaryPostResponsesContentApplicationJsonSchemaScores"},"description":"Scores keyed by evaluator ID or slug. Each value includes evaluator metadata and the score value field matching `score_value_type`."}},"required":["number_of_requests","total_cost","total_tokens","scores"],"title":"Experiments_filterExperimentSpansSummary_Response_200"},"FilterExperimentSpansSummaryRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"FilterExperimentSpansSummaryRequestBadRequestError"},"FilterExperimentSpansSummaryRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"FilterExperimentSpansSummaryRequestUnauthorizedError"},"FilterExperimentSpansSummaryRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"FilterExperimentSpansSummaryRequestNotFoundError"},"FilterExperimentSpansSummaryRequestContentTooLargeError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"FilterExperimentSpansSummaryRequestContentTooLargeError"},"ApiV2ExperimentsExperimentIdHistogramPostResponsesContentApplicationJsonSchemaBinsItems":{"type":"object","properties":{"lower":{"type":"number","format":"double"},"upper":{"type":"number","format":"double"},"count":{"type":"integer"},"label":{"type":["string","null"],"description":"Human-readable label for boolean bins, such as `false` or `true`."}},"required":["lower","upper","count"],"title":"ApiV2ExperimentsExperimentIdHistogramPostResponsesContentApplicationJsonSchemaBinsItems"},"ApiV2ExperimentsExperimentIdHistogramPostResponsesContentApplicationJsonSchemaStats":{"type":"object","properties":{"min":{"type":"number","format":"double"},"max":{"type":"number","format":"double"},"mean":{"type":"number","format":"double"},"total":{"type":"integer"}},"required":["min","max","mean","total"],"title":"ApiV2ExperimentsExperimentIdHistogramPostResponsesContentApplicationJsonSchemaStats"},"Experiments_filterExperimentScoreHistogram_Response_200":{"type":"object","properties":{"evaluator_id":{"type":"string"},"evaluator_slug":{"type":["string","null"]},"evaluator_name":{"type":["string","null"]},"bins":{"type":"array","items":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdHistogramPostResponsesContentApplicationJsonSchemaBinsItems"}},"stats":{"$ref":"#/components/schemas/ApiV2ExperimentsExperimentIdHistogramPostResponsesContentApplicationJsonSchemaStats"}},"required":["evaluator_id","bins","stats"],"title":"Experiments_filterExperimentScoreHistogram_Response_200"},"FilterExperimentScoreHistogramRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"FilterExperimentScoreHistogramRequestBadRequestError"},"FilterExperimentScoreHistogramRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"FilterExperimentScoreHistogramRequestUnauthorizedError"},"FilterExperimentScoreHistogramRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"FilterExperimentScoreHistogramRequestNotFoundError"},"ApiModelsSummaryPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{},"description":"Filter criteria using the standard Respan filter format.","title":"ApiModelsSummaryPostRequestBodyContentApplicationJsonSchemaFilters"},"ApiModelsSummaryPostResponsesContentApplicationJsonSchemaSummary":{"type":"object","properties":{"total_count":{"type":"integer","description":"Total models visible to this caller."},"global_count":{"type":"integer","description":"Built-in shared model count."},"custom_count":{"type":"integer","description":"Organization-specific model count. This is zero for anonymous callers."}},"required":["total_count","global_count","custom_count"],"title":"ApiModelsSummaryPostResponsesContentApplicationJsonSchemaSummary"},"Models_filterModelsSummary_Response_200":{"type":"object","properties":{"summary":{"$ref":"#/components/schemas/ApiModelsSummaryPostResponsesContentApplicationJsonSchemaSummary"}},"required":["summary"],"title":"Models_filterModelsSummary_Response_200"},"FilterModelsSummaryRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"FilterModelsSummaryRequestBadRequestError"},"ApiModelsListPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{},"description":"Filter criteria using the standard Respan filter format.","title":"ApiModelsListPostRequestBodyContentApplicationJsonSchemaFilters"},"ApiModelsListPostResponsesContentApplicationJsonSchemaCurrentFilters":{"type":"object","properties":{},"description":"Normalized filters applied to this request.","title":"ApiModelsListPostResponsesContentApplicationJsonSchemaCurrentFilters"},"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsAffiliationCategory":{"type":"string","enum":["respan","custom"],"description":"Whether the model is built in or organization-specific.","title":"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsAffiliationCategory"},"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsStreamingSupport":{"type":"string","enum":["0","1"],"description":"Streaming support. `0` = no, `1` = yes.","title":"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsStreamingSupport"},"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsFunctionCall":{"type":"string","enum":["0","1"],"description":"Function/tool calling support. `0` = no, `1` = yes.","title":"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsFunctionCall"},"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsImageSupport":{"type":"string","enum":["0","1"],"description":"Vision input support. `0` = no, `1` = yes.","title":"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsImageSupport"},"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsSource":{"type":"string","enum":["db","hardcoded"],"description":"Source of the model definition.","title":"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsSource"},"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsModelType":{"type":"string","enum":["chat","embedding","audio"],"description":"Model type.","title":"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsModelType"},"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsThroughput":{"type":"object","properties":{"average_tps":{"type":["number","null"],"format":"double","description":"Average output tokens per second over the recent global window."},"average_ttft":{"type":["number","null"],"format":"double","description":"Average time to first token in seconds over the recent global window."},"average_latency":{"type":["number","null"],"format":"double","description":"Average request latency in seconds over the recent global window."},"number_of_requests":{"type":["integer","null"],"description":"Request count over the recent global window."}},"title":"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsThroughput"},"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsProvider":{"type":"object","properties":{"id":{"type":"string","description":"Provider string ID. Same value as `provider_id`."},"provider_id":{"type":"string","description":"Unique provider identifier within your organization."},"provider_name":{"type":"string","description":"Human-readable provider name."},"extra_kwargs":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Provider configuration such as `base_url` and timeout values. Secret values are not returned here."},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","provider_id","provider_name"],"title":"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsProvider"},"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string","description":"Model string ID. Same value as `model_name`."},"model_name":{"type":"string","description":"Model name used in API calls."},"display_name":{"type":"string","description":"Human-readable model name."},"base_model_name":{"type":"string","description":"Base model inherited from, when configured."},"affiliation_category":{"$ref":"#/components/schemas/ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsAffiliationCategory","description":"Whether the model is built in or organization-specific."},"is_called_by_custom_name":{"type":"boolean","description":"Whether requests are sent upstream using this custom model name."},"input_cost":{"type":"number","format":"double","description":"Cost per 1M input tokens in USD."},"output_cost":{"type":"number","format":"double","description":"Cost per 1M output tokens in USD."},"cache_hit_input_cost":{"type":"number","format":"double","description":"Cost per 1M cached input tokens in USD."},"cache_creation_input_cost":{"type":"number","format":"double","description":"Cost per 1M cache creation input tokens in USD."},"max_context_window":{"type":"integer","description":"Maximum context window size."},"streaming_support":{"$ref":"#/components/schemas/ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsStreamingSupport","description":"Streaming support. `0` = no, `1` = yes."},"function_call":{"$ref":"#/components/schemas/ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsFunctionCall","description":"Function/tool calling support. `0` = no, `1` = yes."},"image_support":{"$ref":"#/components/schemas/ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsImageSupport","description":"Vision input support. `0` = no, `1` = yes."},"source":{"$ref":"#/components/schemas/ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsSource","description":"Source of the model definition."},"model_type":{"$ref":"#/components/schemas/ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsModelType","description":"Model type."},"supported_params":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Computed parameter support after applying model-specific overrides."},"throughput":{"oneOf":[{"$ref":"#/components/schemas/ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsThroughput"},{"type":"null"}]},"provider":{"$ref":"#/components/schemas/ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItemsProvider"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"is_officially_supported":{"type":"boolean","description":"Whether the model's bare slug is in Respan's first-party supported catalog."}},"required":["id","model_name","is_officially_supported"],"title":"ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItems"},"Models_filterModels_Response_200":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of matching models."},"next":{"type":["string","null"],"description":"URL for the next page, if any."},"previous":{"type":["string","null"],"description":"URL for the previous page, if any."},"current_filters":{"$ref":"#/components/schemas/ApiModelsListPostResponsesContentApplicationJsonSchemaCurrentFilters","description":"Normalized filters applied to this request."},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiModelsListPostResponsesContentApplicationJsonSchemaResultsItems"}}},"required":["count","results"],"title":"Models_filterModels_Response_200"},"FilterModelsRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"FilterModelsRequestBadRequestError"},"ApiModelsPublicGetResponsesContentApplicationJsonSchemaOneOf0ModelsItemsProvider":{"type":"object","properties":{"provider_name":{"type":"string"},"provider_id":{"type":"string"},"moderation":{"type":"string"},"credential_fields":{"type":"array","items":{"type":"string"}}},"title":"ApiModelsPublicGetResponsesContentApplicationJsonSchemaOneOf0ModelsItemsProvider"},"ApiModelsPublicGetResponsesContentApplicationJsonSchemaOneOf0ModelsItems":{"type":"object","properties":{"model_name":{"type":"string"},"max_context_window":{"type":"integer"},"input_cost":{"type":"number","format":"double","description":"Cost per 1M input tokens in USD."},"output_cost":{"type":"number","format":"double","description":"Cost per 1M output tokens in USD."},"prompt_cost":{"type":"number","format":"double","description":"Alias of input token cost."},"completion_cost":{"type":"number","format":"double","description":"Alias of output token cost."},"provider":{"$ref":"#/components/schemas/ApiModelsPublicGetResponsesContentApplicationJsonSchemaOneOf0ModelsItemsProvider"}},"required":["model_name"],"title":"ApiModelsPublicGetResponsesContentApplicationJsonSchemaOneOf0ModelsItems"},"ModelsListModelsResponse2000":{"type":"object","properties":{"models":{"type":"array","items":{"$ref":"#/components/schemas/ApiModelsPublicGetResponsesContentApplicationJsonSchemaOneOf0ModelsItems"}}},"required":["models"],"title":"ModelsListModelsResponse2000"},"ApiModelsPublicGetResponsesContentApplicationJsonSchemaOneOf1ItemsProvider":{"type":"object","properties":{"provider_name":{"type":"string"},"provider_id":{"type":"string"},"moderation":{"type":"string"},"credential_fields":{"type":"array","items":{"type":"string"}}},"title":"ApiModelsPublicGetResponsesContentApplicationJsonSchemaOneOf1ItemsProvider"},"ApiModelsPublicGetResponsesContentApplicationJsonSchemaOneOf1Items":{"type":"object","properties":{"model_name":{"type":"string"},"max_context_window":{"type":"integer"},"input_cost":{"type":"number","format":"double","description":"Cost per 1M input tokens in USD."},"output_cost":{"type":"number","format":"double","description":"Cost per 1M output tokens in USD."},"prompt_cost":{"type":"number","format":"double","description":"Alias of input token cost."},"completion_cost":{"type":"number","format":"double","description":"Alias of output token cost."},"provider":{"$ref":"#/components/schemas/ApiModelsPublicGetResponsesContentApplicationJsonSchemaOneOf1ItemsProvider"}},"required":["model_name"],"title":"ApiModelsPublicGetResponsesContentApplicationJsonSchemaOneOf1Items"},"ModelsListModelsResponse2001":{"type":"array","items":{"$ref":"#/components/schemas/ApiModelsPublicGetResponsesContentApplicationJsonSchemaOneOf1Items"},"title":"ModelsListModelsResponse2001"},"Models_listModels_Response_200":{"oneOf":[{"$ref":"#/components/schemas/ModelsListModelsResponse2000"},{"$ref":"#/components/schemas/ModelsListModelsResponse2001"}],"title":"Models_listModels_Response_200"},"ApiModelsPostRequestBodyContentApplicationJsonSchemaStreamingSupport":{"type":"string","enum":["0","1"],"title":"ApiModelsPostRequestBodyContentApplicationJsonSchemaStreamingSupport"},"ApiModelsPostRequestBodyContentApplicationJsonSchemaFunctionCall":{"type":"string","enum":["0","1"],"title":"ApiModelsPostRequestBodyContentApplicationJsonSchemaFunctionCall"},"ApiModelsPostRequestBodyContentApplicationJsonSchemaImageSupport":{"type":"string","enum":["0","1"],"title":"ApiModelsPostRequestBodyContentApplicationJsonSchemaImageSupport"},"ApiModelsPostResponsesContentApplicationJsonSchemaAffiliationCategory":{"type":"string","enum":["respan","custom"],"description":"Whether the model is built in or organization-specific.","title":"ApiModelsPostResponsesContentApplicationJsonSchemaAffiliationCategory"},"ApiModelsPostResponsesContentApplicationJsonSchemaStreamingSupport":{"type":"string","enum":["0","1"],"description":"Streaming support. `0` = no, `1` = yes.","title":"ApiModelsPostResponsesContentApplicationJsonSchemaStreamingSupport"},"ApiModelsPostResponsesContentApplicationJsonSchemaFunctionCall":{"type":"string","enum":["0","1"],"description":"Function/tool calling support. `0` = no, `1` = yes.","title":"ApiModelsPostResponsesContentApplicationJsonSchemaFunctionCall"},"ApiModelsPostResponsesContentApplicationJsonSchemaImageSupport":{"type":"string","enum":["0","1"],"description":"Vision input support. `0` = no, `1` = yes.","title":"ApiModelsPostResponsesContentApplicationJsonSchemaImageSupport"},"ApiModelsPostResponsesContentApplicationJsonSchemaSource":{"type":"string","enum":["db","hardcoded"],"description":"Source of the model definition.","title":"ApiModelsPostResponsesContentApplicationJsonSchemaSource"},"ApiModelsPostResponsesContentApplicationJsonSchemaModelType":{"type":"string","enum":["chat","embedding","audio"],"description":"Model type.","title":"ApiModelsPostResponsesContentApplicationJsonSchemaModelType"},"ApiModelsPostResponsesContentApplicationJsonSchemaThroughput":{"type":"object","properties":{"average_tps":{"type":["number","null"],"format":"double","description":"Average output tokens per second over the recent global window."},"average_ttft":{"type":["number","null"],"format":"double","description":"Average time to first token in seconds over the recent global window."},"average_latency":{"type":["number","null"],"format":"double","description":"Average request latency in seconds over the recent global window."},"number_of_requests":{"type":["integer","null"],"description":"Request count over the recent global window."}},"title":"ApiModelsPostResponsesContentApplicationJsonSchemaThroughput"},"ApiModelsPostResponsesContentApplicationJsonSchemaProvider":{"type":"object","properties":{"id":{"type":"string","description":"Provider string ID. Same value as `provider_id`."},"provider_id":{"type":"string","description":"Unique provider identifier within your organization."},"provider_name":{"type":"string","description":"Human-readable provider name."},"extra_kwargs":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Provider configuration such as `base_url` and timeout values. Secret values are not returned here."},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","provider_id","provider_name"],"title":"ApiModelsPostResponsesContentApplicationJsonSchemaProvider"},"Models_createCustomModel_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Model string ID. Same value as `model_name`."},"model_name":{"type":"string","description":"Model name used in API calls."},"display_name":{"type":"string","description":"Human-readable model name."},"base_model_name":{"type":"string","description":"Base model inherited from, when configured."},"affiliation_category":{"$ref":"#/components/schemas/ApiModelsPostResponsesContentApplicationJsonSchemaAffiliationCategory","description":"Whether the model is built in or organization-specific."},"is_called_by_custom_name":{"type":"boolean","description":"Whether requests are sent upstream using this custom model name."},"input_cost":{"type":"number","format":"double","description":"Cost per 1M input tokens in USD."},"output_cost":{"type":"number","format":"double","description":"Cost per 1M output tokens in USD."},"cache_hit_input_cost":{"type":"number","format":"double","description":"Cost per 1M cached input tokens in USD."},"cache_creation_input_cost":{"type":"number","format":"double","description":"Cost per 1M cache creation input tokens in USD."},"max_context_window":{"type":"integer","description":"Maximum context window size."},"streaming_support":{"$ref":"#/components/schemas/ApiModelsPostResponsesContentApplicationJsonSchemaStreamingSupport","description":"Streaming support. `0` = no, `1` = yes."},"function_call":{"$ref":"#/components/schemas/ApiModelsPostResponsesContentApplicationJsonSchemaFunctionCall","description":"Function/tool calling support. `0` = no, `1` = yes."},"image_support":{"$ref":"#/components/schemas/ApiModelsPostResponsesContentApplicationJsonSchemaImageSupport","description":"Vision input support. `0` = no, `1` = yes."},"source":{"$ref":"#/components/schemas/ApiModelsPostResponsesContentApplicationJsonSchemaSource","description":"Source of the model definition."},"model_type":{"$ref":"#/components/schemas/ApiModelsPostResponsesContentApplicationJsonSchemaModelType","description":"Model type."},"supported_params":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Computed parameter support after applying model-specific overrides."},"throughput":{"oneOf":[{"$ref":"#/components/schemas/ApiModelsPostResponsesContentApplicationJsonSchemaThroughput"},{"type":"null"}]},"provider":{"$ref":"#/components/schemas/ApiModelsPostResponsesContentApplicationJsonSchemaProvider"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","model_name"],"title":"Models_createCustomModel_Response_200"},"CreateCustomModelRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"CreateCustomModelRequestBadRequestError"},"CreateCustomModelRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"CreateCustomModelRequestUnauthorizedError"},"CreateCustomModelRequestForbiddenError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"CreateCustomModelRequestForbiddenError"},"CreateCustomModelRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"CreateCustomModelRequestNotFoundError"},"ApiModelsModelNameGetResponsesContentApplicationJsonSchemaAffiliationCategory":{"type":"string","enum":["respan","custom"],"description":"Whether the model is built in or organization-specific.","title":"ApiModelsModelNameGetResponsesContentApplicationJsonSchemaAffiliationCategory"},"ApiModelsModelNameGetResponsesContentApplicationJsonSchemaStreamingSupport":{"type":"string","enum":["0","1"],"description":"Streaming support. `0` = no, `1` = yes.","title":"ApiModelsModelNameGetResponsesContentApplicationJsonSchemaStreamingSupport"},"ApiModelsModelNameGetResponsesContentApplicationJsonSchemaFunctionCall":{"type":"string","enum":["0","1"],"description":"Function/tool calling support. `0` = no, `1` = yes.","title":"ApiModelsModelNameGetResponsesContentApplicationJsonSchemaFunctionCall"},"ApiModelsModelNameGetResponsesContentApplicationJsonSchemaImageSupport":{"type":"string","enum":["0","1"],"description":"Vision input support. `0` = no, `1` = yes.","title":"ApiModelsModelNameGetResponsesContentApplicationJsonSchemaImageSupport"},"ApiModelsModelNameGetResponsesContentApplicationJsonSchemaSource":{"type":"string","enum":["db","hardcoded"],"description":"Source of the model definition.","title":"ApiModelsModelNameGetResponsesContentApplicationJsonSchemaSource"},"ApiModelsModelNameGetResponsesContentApplicationJsonSchemaModelType":{"type":"string","enum":["chat","embedding","audio"],"description":"Model type.","title":"ApiModelsModelNameGetResponsesContentApplicationJsonSchemaModelType"},"ApiModelsModelNameGetResponsesContentApplicationJsonSchemaThroughput":{"type":"object","properties":{"average_tps":{"type":["number","null"],"format":"double","description":"Average output tokens per second over the recent global window."},"average_ttft":{"type":["number","null"],"format":"double","description":"Average time to first token in seconds over the recent global window."},"average_latency":{"type":["number","null"],"format":"double","description":"Average request latency in seconds over the recent global window."},"number_of_requests":{"type":["integer","null"],"description":"Request count over the recent global window."}},"title":"ApiModelsModelNameGetResponsesContentApplicationJsonSchemaThroughput"},"ApiModelsModelNameGetResponsesContentApplicationJsonSchemaProvider":{"type":"object","properties":{"id":{"type":"string","description":"Provider string ID. Same value as `provider_id`."},"provider_id":{"type":"string","description":"Unique provider identifier within your organization."},"provider_name":{"type":"string","description":"Human-readable provider name."},"extra_kwargs":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Provider configuration such as `base_url` and timeout values. Secret values are not returned here."},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","provider_id","provider_name"],"title":"ApiModelsModelNameGetResponsesContentApplicationJsonSchemaProvider"},"Models_retrieveCustomModel_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Model string ID. Same value as `model_name`."},"model_name":{"type":"string","description":"Model name used in API calls."},"display_name":{"type":"string","description":"Human-readable model name."},"base_model_name":{"type":"string","description":"Base model inherited from, when configured."},"affiliation_category":{"$ref":"#/components/schemas/ApiModelsModelNameGetResponsesContentApplicationJsonSchemaAffiliationCategory","description":"Whether the model is built in or organization-specific."},"is_called_by_custom_name":{"type":"boolean","description":"Whether requests are sent upstream using this custom model name."},"input_cost":{"type":"number","format":"double","description":"Cost per 1M input tokens in USD."},"output_cost":{"type":"number","format":"double","description":"Cost per 1M output tokens in USD."},"cache_hit_input_cost":{"type":"number","format":"double","description":"Cost per 1M cached input tokens in USD."},"cache_creation_input_cost":{"type":"number","format":"double","description":"Cost per 1M cache creation input tokens in USD."},"max_context_window":{"type":"integer","description":"Maximum context window size."},"streaming_support":{"$ref":"#/components/schemas/ApiModelsModelNameGetResponsesContentApplicationJsonSchemaStreamingSupport","description":"Streaming support. `0` = no, `1` = yes."},"function_call":{"$ref":"#/components/schemas/ApiModelsModelNameGetResponsesContentApplicationJsonSchemaFunctionCall","description":"Function/tool calling support. `0` = no, `1` = yes."},"image_support":{"$ref":"#/components/schemas/ApiModelsModelNameGetResponsesContentApplicationJsonSchemaImageSupport","description":"Vision input support. `0` = no, `1` = yes."},"source":{"$ref":"#/components/schemas/ApiModelsModelNameGetResponsesContentApplicationJsonSchemaSource","description":"Source of the model definition."},"model_type":{"$ref":"#/components/schemas/ApiModelsModelNameGetResponsesContentApplicationJsonSchemaModelType","description":"Model type."},"supported_params":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Computed parameter support after applying model-specific overrides."},"throughput":{"oneOf":[{"$ref":"#/components/schemas/ApiModelsModelNameGetResponsesContentApplicationJsonSchemaThroughput"},{"type":"null"}]},"provider":{"$ref":"#/components/schemas/ApiModelsModelNameGetResponsesContentApplicationJsonSchemaProvider"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"is_officially_supported":{"type":"boolean","description":"Whether the model's bare slug is in Respan's first-party supported catalog."}},"required":["id","model_name","is_officially_supported"],"title":"Models_retrieveCustomModel_Response_200"},"RetrieveCustomModelRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"RetrieveCustomModelRequestUnauthorizedError"},"RetrieveCustomModelRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"RetrieveCustomModelRequestNotFoundError"},"ApiModelsModelNamePatchRequestBodyContentApplicationJsonSchemaStreamingSupport":{"type":"string","enum":["0","1"],"title":"ApiModelsModelNamePatchRequestBodyContentApplicationJsonSchemaStreamingSupport"},"ApiModelsModelNamePatchRequestBodyContentApplicationJsonSchemaFunctionCall":{"type":"string","enum":["0","1"],"title":"ApiModelsModelNamePatchRequestBodyContentApplicationJsonSchemaFunctionCall"},"ApiModelsModelNamePatchRequestBodyContentApplicationJsonSchemaImageSupport":{"type":"string","enum":["0","1"],"title":"ApiModelsModelNamePatchRequestBodyContentApplicationJsonSchemaImageSupport"},"ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaAffiliationCategory":{"type":"string","enum":["respan","custom"],"description":"Whether the model is built in or organization-specific.","title":"ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaAffiliationCategory"},"ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaStreamingSupport":{"type":"string","enum":["0","1"],"description":"Streaming support. `0` = no, `1` = yes.","title":"ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaStreamingSupport"},"ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaFunctionCall":{"type":"string","enum":["0","1"],"description":"Function/tool calling support. `0` = no, `1` = yes.","title":"ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaFunctionCall"},"ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaImageSupport":{"type":"string","enum":["0","1"],"description":"Vision input support. `0` = no, `1` = yes.","title":"ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaImageSupport"},"ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaSource":{"type":"string","enum":["db","hardcoded"],"description":"Source of the model definition.","title":"ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaSource"},"ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaModelType":{"type":"string","enum":["chat","embedding","audio"],"description":"Model type.","title":"ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaModelType"},"ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaThroughput":{"type":"object","properties":{"average_tps":{"type":["number","null"],"format":"double","description":"Average output tokens per second over the recent global window."},"average_ttft":{"type":["number","null"],"format":"double","description":"Average time to first token in seconds over the recent global window."},"average_latency":{"type":["number","null"],"format":"double","description":"Average request latency in seconds over the recent global window."},"number_of_requests":{"type":["integer","null"],"description":"Request count over the recent global window."}},"title":"ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaThroughput"},"ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaProvider":{"type":"object","properties":{"id":{"type":"string","description":"Provider string ID. Same value as `provider_id`."},"provider_id":{"type":"string","description":"Unique provider identifier within your organization."},"provider_name":{"type":"string","description":"Human-readable provider name."},"extra_kwargs":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Provider configuration such as `base_url` and timeout values. Secret values are not returned here."},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","provider_id","provider_name"],"title":"ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaProvider"},"Models_updateCustomModel_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Model string ID. Same value as `model_name`."},"model_name":{"type":"string","description":"Model name used in API calls."},"display_name":{"type":"string","description":"Human-readable model name."},"base_model_name":{"type":"string","description":"Base model inherited from, when configured."},"affiliation_category":{"$ref":"#/components/schemas/ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaAffiliationCategory","description":"Whether the model is built in or organization-specific."},"is_called_by_custom_name":{"type":"boolean","description":"Whether requests are sent upstream using this custom model name."},"input_cost":{"type":"number","format":"double","description":"Cost per 1M input tokens in USD."},"output_cost":{"type":"number","format":"double","description":"Cost per 1M output tokens in USD."},"cache_hit_input_cost":{"type":"number","format":"double","description":"Cost per 1M cached input tokens in USD."},"cache_creation_input_cost":{"type":"number","format":"double","description":"Cost per 1M cache creation input tokens in USD."},"max_context_window":{"type":"integer","description":"Maximum context window size."},"streaming_support":{"$ref":"#/components/schemas/ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaStreamingSupport","description":"Streaming support. `0` = no, `1` = yes."},"function_call":{"$ref":"#/components/schemas/ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaFunctionCall","description":"Function/tool calling support. `0` = no, `1` = yes."},"image_support":{"$ref":"#/components/schemas/ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaImageSupport","description":"Vision input support. `0` = no, `1` = yes."},"source":{"$ref":"#/components/schemas/ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaSource","description":"Source of the model definition."},"model_type":{"$ref":"#/components/schemas/ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaModelType","description":"Model type."},"supported_params":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Computed parameter support after applying model-specific overrides."},"throughput":{"oneOf":[{"$ref":"#/components/schemas/ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaThroughput"},{"type":"null"}]},"provider":{"$ref":"#/components/schemas/ApiModelsModelNamePatchResponsesContentApplicationJsonSchemaProvider"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","model_name"],"title":"Models_updateCustomModel_Response_200"},"UpdateCustomModelRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"UpdateCustomModelRequestBadRequestError"},"UpdateCustomModelRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"UpdateCustomModelRequestUnauthorizedError"},"UpdateCustomModelRequestForbiddenError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"UpdateCustomModelRequestForbiddenError"},"UpdateCustomModelRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"UpdateCustomModelRequestNotFoundError"},"DeleteCustomModelRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"DeleteCustomModelRequestUnauthorizedError"},"DeleteCustomModelRequestForbiddenError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"DeleteCustomModelRequestForbiddenError"},"DeleteCustomModelRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"DeleteCustomModelRequestNotFoundError"},"ApiProvidersGetResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string","description":"Provider string ID. Same value as `provider_id`."},"provider_id":{"type":"string","description":"Unique provider identifier within your organization."},"provider_name":{"type":"string","description":"Human-readable provider name."},"extra_kwargs":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Stored provider configuration. The current backend returns this object, including credentials it contains; handle the response as sensitive."},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","provider_id","provider_name"],"title":"ApiProvidersGetResponsesContentApplicationJsonSchemaResultsItems"},"Models_listCustomProviders_Response_200":{"type":"object","properties":{"count":{"type":"integer"},"next":{"type":["string","null"],"format":"uri"},"previous":{"type":["string","null"],"format":"uri"},"total_count":{"type":"integer","description":"Present for dashboard-authenticated callers."},"current_filters":{"type":"object","additionalProperties":{"description":"Any type"}},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiProvidersGetResponsesContentApplicationJsonSchemaResultsItems"}}},"required":["count","results"],"title":"Models_listCustomProviders_Response_200"},"ListCustomProvidersRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"ListCustomProvidersRequestUnauthorizedError"},"Models_createCustomProvider_Response_201":{"type":"object","properties":{"id":{"type":"string","description":"Provider string ID. Same value as `provider_id`."},"provider_id":{"type":"string","description":"Unique provider identifier within your organization."},"provider_name":{"type":"string","description":"Human-readable provider name."},"extra_kwargs":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Stored provider configuration. The current backend returns this object, including credentials it contains; handle the response as sensitive."},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","provider_id","provider_name"],"title":"Models_createCustomProvider_Response_201"},"CreateCustomProviderRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"CreateCustomProviderRequestBadRequestError"},"CreateCustomProviderRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"CreateCustomProviderRequestUnauthorizedError"},"Models_retrieveCustomProvider_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Provider string ID. Same value as `provider_id`."},"provider_id":{"type":"string","description":"Unique provider identifier within your organization."},"provider_name":{"type":"string","description":"Human-readable provider name."},"extra_kwargs":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Stored provider configuration. The current backend returns this object, including credentials it contains; handle the response as sensitive."},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","provider_id","provider_name"],"title":"Models_retrieveCustomProvider_Response_200"},"RetrieveCustomProviderRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"RetrieveCustomProviderRequestUnauthorizedError"},"RetrieveCustomProviderRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"RetrieveCustomProviderRequestNotFoundError"},"Models_updateCustomProvider_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Provider string ID. Same value as `provider_id`."},"provider_id":{"type":"string","description":"Unique provider identifier within your organization."},"provider_name":{"type":"string","description":"Human-readable provider name."},"extra_kwargs":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Stored provider configuration. The current backend returns this object, including credentials it contains; handle the response as sensitive."},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","provider_id","provider_name"],"title":"Models_updateCustomProvider_Response_200"},"UpdateCustomProviderRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"UpdateCustomProviderRequestBadRequestError"},"UpdateCustomProviderRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"UpdateCustomProviderRequestUnauthorizedError"},"UpdateCustomProviderRequestForbiddenError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"UpdateCustomProviderRequestForbiddenError"},"UpdateCustomProviderRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"UpdateCustomProviderRequestNotFoundError"},"DeleteCustomProviderRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"DeleteCustomProviderRequestUnauthorizedError"},"DeleteCustomProviderRequestForbiddenError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"DeleteCustomProviderRequestForbiddenError"},"DeleteCustomProviderRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"DeleteCustomProviderRequestNotFoundError"},"ApiModelsModelNamePutRequestBodyContentApplicationJsonSchemaStreamingSupport":{"type":"string","enum":["0","1"],"title":"ApiModelsModelNamePutRequestBodyContentApplicationJsonSchemaStreamingSupport"},"ApiModelsModelNamePutRequestBodyContentApplicationJsonSchemaFunctionCall":{"type":"string","enum":["0","1"],"title":"ApiModelsModelNamePutRequestBodyContentApplicationJsonSchemaFunctionCall"},"ApiModelsModelNamePutRequestBodyContentApplicationJsonSchemaImageSupport":{"type":"string","enum":["0","1"],"title":"ApiModelsModelNamePutRequestBodyContentApplicationJsonSchemaImageSupport"},"ApiModelsModelNamePutResponsesContentApplicationJsonSchemaAffiliationCategory":{"type":"string","enum":["respan","custom"],"description":"Whether the model is built in or organization-specific.","title":"ApiModelsModelNamePutResponsesContentApplicationJsonSchemaAffiliationCategory"},"ApiModelsModelNamePutResponsesContentApplicationJsonSchemaStreamingSupport":{"type":"string","enum":["0","1"],"description":"Streaming support. `0` = no, `1` = yes.","title":"ApiModelsModelNamePutResponsesContentApplicationJsonSchemaStreamingSupport"},"ApiModelsModelNamePutResponsesContentApplicationJsonSchemaFunctionCall":{"type":"string","enum":["0","1"],"description":"Function/tool calling support. `0` = no, `1` = yes.","title":"ApiModelsModelNamePutResponsesContentApplicationJsonSchemaFunctionCall"},"ApiModelsModelNamePutResponsesContentApplicationJsonSchemaImageSupport":{"type":"string","enum":["0","1"],"description":"Vision input support. `0` = no, `1` = yes.","title":"ApiModelsModelNamePutResponsesContentApplicationJsonSchemaImageSupport"},"ApiModelsModelNamePutResponsesContentApplicationJsonSchemaSource":{"type":"string","enum":["db","hardcoded"],"description":"Source of the model definition.","title":"ApiModelsModelNamePutResponsesContentApplicationJsonSchemaSource"},"ApiModelsModelNamePutResponsesContentApplicationJsonSchemaModelType":{"type":"string","enum":["chat","embedding","audio"],"description":"Model type.","title":"ApiModelsModelNamePutResponsesContentApplicationJsonSchemaModelType"},"ApiModelsModelNamePutResponsesContentApplicationJsonSchemaThroughput":{"type":"object","properties":{"average_tps":{"type":["number","null"],"format":"double","description":"Average output tokens per second over the recent global window."},"average_ttft":{"type":["number","null"],"format":"double","description":"Average time to first token in seconds over the recent global window."},"average_latency":{"type":["number","null"],"format":"double","description":"Average request latency in seconds over the recent global window."},"number_of_requests":{"type":["integer","null"],"description":"Request count over the recent global window."}},"title":"ApiModelsModelNamePutResponsesContentApplicationJsonSchemaThroughput"},"ApiModelsModelNamePutResponsesContentApplicationJsonSchemaProvider":{"type":"object","properties":{"id":{"type":"string","description":"Provider string ID. Same value as `provider_id`."},"provider_id":{"type":"string","description":"Unique provider identifier within your organization."},"provider_name":{"type":"string","description":"Human-readable provider name."},"extra_kwargs":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Provider configuration such as `base_url` and timeout values. Secret values are not returned here."},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","provider_id","provider_name"],"title":"ApiModelsModelNamePutResponsesContentApplicationJsonSchemaProvider"},"Models_replaceCustomModel_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Model string ID. Same value as `model_name`."},"model_name":{"type":"string","description":"Model name used in API calls."},"display_name":{"type":"string","description":"Human-readable model name."},"base_model_name":{"type":"string","description":"Base model inherited from, when configured."},"affiliation_category":{"$ref":"#/components/schemas/ApiModelsModelNamePutResponsesContentApplicationJsonSchemaAffiliationCategory","description":"Whether the model is built in or organization-specific."},"is_called_by_custom_name":{"type":"boolean","description":"Whether requests are sent upstream using this custom model name."},"input_cost":{"type":"number","format":"double","description":"Cost per 1M input tokens in USD."},"output_cost":{"type":"number","format":"double","description":"Cost per 1M output tokens in USD."},"cache_hit_input_cost":{"type":"number","format":"double","description":"Cost per 1M cached input tokens in USD."},"cache_creation_input_cost":{"type":"number","format":"double","description":"Cost per 1M cache creation input tokens in USD."},"max_context_window":{"type":"integer","description":"Maximum context window size."},"streaming_support":{"$ref":"#/components/schemas/ApiModelsModelNamePutResponsesContentApplicationJsonSchemaStreamingSupport","description":"Streaming support. `0` = no, `1` = yes."},"function_call":{"$ref":"#/components/schemas/ApiModelsModelNamePutResponsesContentApplicationJsonSchemaFunctionCall","description":"Function/tool calling support. `0` = no, `1` = yes."},"image_support":{"$ref":"#/components/schemas/ApiModelsModelNamePutResponsesContentApplicationJsonSchemaImageSupport","description":"Vision input support. `0` = no, `1` = yes."},"source":{"$ref":"#/components/schemas/ApiModelsModelNamePutResponsesContentApplicationJsonSchemaSource","description":"Source of the model definition."},"model_type":{"$ref":"#/components/schemas/ApiModelsModelNamePutResponsesContentApplicationJsonSchemaModelType","description":"Model type."},"supported_params":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Computed parameter support after applying model-specific overrides."},"throughput":{"oneOf":[{"$ref":"#/components/schemas/ApiModelsModelNamePutResponsesContentApplicationJsonSchemaThroughput"},{"type":"null"}]},"provider":{"$ref":"#/components/schemas/ApiModelsModelNamePutResponsesContentApplicationJsonSchemaProvider"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","model_name"],"title":"Models_replaceCustomModel_Response_200"},"ReplaceCustomModelRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"ReplaceCustomModelRequestBadRequestError"},"ReplaceCustomModelRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"ReplaceCustomModelRequestUnauthorizedError"},"ReplaceCustomModelRequestForbiddenError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"ReplaceCustomModelRequestForbiddenError"},"ReplaceCustomModelRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"ReplaceCustomModelRequestNotFoundError"},"Models_replaceCustomProvider_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Provider string ID. Same value as `provider_id`."},"provider_id":{"type":"string","description":"Unique provider identifier within your organization."},"provider_name":{"type":"string","description":"Human-readable provider name."},"extra_kwargs":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Stored provider configuration. The current backend returns this object, including credentials it contains; handle the response as sensitive."},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","provider_id","provider_name"],"title":"Models_replaceCustomProvider_Response_200"},"ReplaceCustomProviderRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"ReplaceCustomProviderRequestBadRequestError"},"ReplaceCustomProviderRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"ReplaceCustomProviderRequestUnauthorizedError"},"ReplaceCustomProviderRequestForbiddenError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"ReplaceCustomProviderRequestForbiddenError"},"ReplaceCustomProviderRequestNotFoundError":{"type":"object","properties":{"detail":{"type":"string"},"error":{"type":"string"}},"title":"ReplaceCustomProviderRequestNotFoundError"},"ApiModelsModelNameStatusGetParametersTimeTick":{"type":"string","enum":["minute","hour","day"],"default":"day","title":"ApiModelsModelNameStatusGetParametersTimeTick"},"ModelStatusResponseTimeTick":{"type":"string","enum":["minute","hour","day"],"title":"ModelStatusResponseTimeTick"},"ModelStatusUptimeBucket":{"type":"object","properties":{"date_group":{"type":"string","format":"date-time"},"uptime":{"type":["number","null"],"format":"double"},"total_count":{"type":"integer","description":"Staff-only."},"down_count":{"type":"integer","description":"Staff-only."}},"required":["date_group","uptime"],"title":"ModelStatusUptimeBucket"},"ModelStatusMetricBucket":{"type":"object","properties":{"date_group":{"type":"string","format":"date-time"},"average_tps":{"type":["number","null"],"format":"double"},"average_ttft":{"type":["number","null"],"format":"double"},"average_latency":{"type":["number","null"],"format":"double"},"cache_hit_percentage":{"type":["number","null"],"format":"double"},"number_of_requests":{"type":"integer","description":"Staff-only."},"cost":{"type":["number","null"],"format":"double","description":"Staff-only."}},"required":["date_group"],"title":"ModelStatusMetricBucket"},"ModelStatusResponseStatus":{"type":"object","properties":{"uptime_percent":{"type":["number","null"],"format":"double"},"average_tps":{"type":["number","null"],"format":"double"},"average_ttft":{"type":["number","null"],"format":"double"},"average_latency":{"type":["number","null"],"format":"double"},"cache_hit_percentage":{"type":["number","null"],"format":"double"},"input_cost":{"type":["number","null"],"format":"double"},"number_of_requests":{"type":"integer"},"cost":{"type":["number","null"],"format":"double"},"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"prompt_cache_hit_tokens":{"type":"integer"},"prompt_cache_creation_tokens":{"type":"integer"}},"description":"Omitted when provider_id is supplied. Volume fields are staff-only.","title":"ModelStatusResponseStatus"},"ModelStatusResponse":{"type":"object","properties":{"model":{"type":"string"},"provider_id":{"type":["string","null"]},"time_tick":{"$ref":"#/components/schemas/ModelStatusResponseTimeTick"},"start_time":{"type":"string","format":"date-time"},"end_time":{"type":"string","format":"date-time"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ModelStatusUptimeBucket"}},"respan_uptime":{"type":"array","items":{"$ref":"#/components/schemas/ModelStatusUptimeBucket"},"description":"Omitted when provider_id is supplied."},"metrics_series":{"type":"array","items":{"$ref":"#/components/schemas/ModelStatusMetricBucket"}},"status":{"$ref":"#/components/schemas/ModelStatusResponseStatus","description":"Omitted when provider_id is supplied. Volume fields are staff-only."}},"required":["model","provider_id","time_tick","start_time","end_time","data","metrics_series"],"title":"ModelStatusResponse"},"ApiModelsModelNameStatusPostRequestBodyContentApplicationJsonSchemaTimeTick":{"type":"string","enum":["minute","hour","day"],"default":"day","title":"ApiModelsModelNameStatusPostRequestBodyContentApplicationJsonSchemaTimeTick"},"OpenAI Batch_uploadFile_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"File ID."},"object":{"type":"string"},"bytes":{"type":"integer","description":"File size in bytes."},"created_at":{"type":"integer","description":"Unix timestamp."},"filename":{"type":"string"},"purpose":{"type":"string"},"status":{"type":"string","description":"File status."},"status_details":{"oneOf":[{"description":"Any type"},{"type":"null"}],"description":"Provider status details, when available."}},"required":["id","object"],"title":"OpenAI Batch_uploadFile_Response_200"},"UploadFileRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"},"error_class":{"type":"string"},"id":{"type":"string"}},"title":"UploadFileRequestBadRequestError"},"UploadFileRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"},"error_class":{"type":"string"},"id":{"type":"string"}},"title":"UploadFileRequestUnauthorizedError"},"ApiFilesGetResponsesContentApplicationJsonSchemaDataItems":{"type":"object","properties":{"id":{"type":"string","description":"File ID."},"object":{"type":"string"},"bytes":{"type":"integer","description":"File size in bytes."},"created_at":{"type":"integer","description":"Unix timestamp."},"filename":{"type":"string"},"purpose":{"type":"string"},"status":{"type":"string","description":"File status."},"status_details":{"oneOf":[{"description":"Any type"},{"type":"null"}],"description":"Provider status details, when available."}},"required":["id","object"],"title":"ApiFilesGetResponsesContentApplicationJsonSchemaDataItems"},"OpenAI Batch_listFiles_Response_200":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ApiFilesGetResponsesContentApplicationJsonSchemaDataItems"}}},"required":["data"],"title":"OpenAI Batch_listFiles_Response_200"},"ListFilesRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"},"error_class":{"type":"string"},"id":{"type":"string"}},"title":"ListFilesRequestUnauthorizedError"},"OpenAI Batch_retrieveFile_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"File ID."},"object":{"type":"string"},"bytes":{"type":"integer","description":"File size in bytes."},"created_at":{"type":"integer","description":"Unix timestamp."},"filename":{"type":"string"},"purpose":{"type":"string"},"status":{"type":"string","description":"File status."},"status_details":{"oneOf":[{"description":"Any type"},{"type":"null"}],"description":"Provider status details, when available."}},"required":["id","object"],"title":"OpenAI Batch_retrieveFile_Response_200"},"RetrieveFileRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"},"error_class":{"type":"string"},"id":{"type":"string"}},"title":"RetrieveFileRequestUnauthorizedError"},"RetrieveFileRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"},"error_class":{"type":"string"},"id":{"type":"string"}},"title":"RetrieveFileRequestNotFoundError"},"OpenAI Batch_deleteFile_Response_200":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string"},"deleted":{"type":"boolean"}},"required":["id","deleted"],"title":"OpenAI Batch_deleteFile_Response_200"},"DeleteFileRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"},"error_class":{"type":"string"},"id":{"type":"string"}},"title":"DeleteFileRequestUnauthorizedError"},"DeleteFileRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"},"error_class":{"type":"string"},"id":{"type":"string"}},"title":"DeleteFileRequestNotFoundError"},"RetrieveFileContentRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"},"error_class":{"type":"string"},"id":{"type":"string"}},"title":"RetrieveFileContentRequestUnauthorizedError"},"RetrieveFileContentRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"},"error_class":{"type":"string"},"id":{"type":"string"}},"title":"RetrieveFileContentRequestNotFoundError"},"ApiV1BatchesPostRequestBodyContentApplicationJsonSchemaEndpoint":{"type":"string","enum":["/v1/chat/completions","/v1/embeddings"],"description":"Endpoint each JSONL request targets.","title":"ApiV1BatchesPostRequestBodyContentApplicationJsonSchemaEndpoint"},"ApiV1BatchesPostRequestBodyContentApplicationJsonSchemaCompletionWindow":{"type":"string","enum":["24h"],"title":"ApiV1BatchesPostRequestBodyContentApplicationJsonSchemaCompletionWindow"},"ApiV1BatchesPostResponsesContentApplicationJsonSchemaStatus":{"type":"string","enum":["validating","pending","in_progress","finalizing","completed","failed","expired","cancelling","cancelled"],"title":"ApiV1BatchesPostResponsesContentApplicationJsonSchemaStatus"},"ApiV1BatchesPostResponsesContentApplicationJsonSchemaRequestCounts":{"type":"object","properties":{"total":{"type":"integer"},"completed":{"type":"integer"},"failed":{"type":"integer"}},"title":"ApiV1BatchesPostResponsesContentApplicationJsonSchemaRequestCounts"},"OpenAI Batch_createBatch_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Batch ID."},"object":{"type":"string"},"endpoint":{"type":"string"},"input_file_id":{"type":"string"},"output_file_id":{"type":["string","null"],"description":"Output file ID, available when the batch completes."},"error_file_id":{"type":["string","null"],"description":"Error file ID, when provider errors are available."},"completion_window":{"type":"string"},"status":{"$ref":"#/components/schemas/ApiV1BatchesPostResponsesContentApplicationJsonSchemaStatus"},"created_at":{"type":"integer","description":"Unix timestamp."},"in_progress_at":{"type":["integer","null"]},"expires_at":{"type":["integer","null"]},"finalizing_at":{"type":["integer","null"]},"completed_at":{"type":["integer","null"]},"failed_at":{"type":["integer","null"]},"expired_at":{"type":["integer","null"]},"cancelling_at":{"type":["integer","null"]},"cancelled_at":{"type":["integer","null"]},"request_counts":{"$ref":"#/components/schemas/ApiV1BatchesPostResponsesContentApplicationJsonSchemaRequestCounts"},"metadata":{"type":"object","additionalProperties":{"description":"Any type"}},"errors":{"oneOf":[{"description":"Any type"},{"type":"null"}],"description":"Provider error details, when available."}},"required":["id","status"],"title":"OpenAI Batch_createBatch_Response_200"},"CreateBatchRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"},"error_class":{"type":"string"},"id":{"type":"string"}},"title":"CreateBatchRequestBadRequestError"},"CreateBatchRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"},"error_class":{"type":"string"},"id":{"type":"string"}},"title":"CreateBatchRequestUnauthorizedError"},"ApiV1BatchesBatchIdGetResponsesContentApplicationJsonSchemaStatus":{"type":"string","enum":["validating","pending","in_progress","finalizing","completed","failed","expired","cancelling","cancelled"],"title":"ApiV1BatchesBatchIdGetResponsesContentApplicationJsonSchemaStatus"},"ApiV1BatchesBatchIdGetResponsesContentApplicationJsonSchemaRequestCounts":{"type":"object","properties":{"total":{"type":"integer"},"completed":{"type":"integer"},"failed":{"type":"integer"}},"title":"ApiV1BatchesBatchIdGetResponsesContentApplicationJsonSchemaRequestCounts"},"OpenAI Batch_retrieveBatch_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Batch ID."},"object":{"type":"string"},"endpoint":{"type":"string"},"input_file_id":{"type":"string"},"output_file_id":{"type":["string","null"],"description":"Output file ID, available when the batch completes."},"error_file_id":{"type":["string","null"],"description":"Error file ID, when provider errors are available."},"completion_window":{"type":"string"},"status":{"$ref":"#/components/schemas/ApiV1BatchesBatchIdGetResponsesContentApplicationJsonSchemaStatus"},"created_at":{"type":"integer","description":"Unix timestamp."},"in_progress_at":{"type":["integer","null"]},"expires_at":{"type":["integer","null"]},"finalizing_at":{"type":["integer","null"]},"completed_at":{"type":["integer","null"]},"failed_at":{"type":["integer","null"]},"expired_at":{"type":["integer","null"]},"cancelling_at":{"type":["integer","null"]},"cancelled_at":{"type":["integer","null"]},"request_counts":{"$ref":"#/components/schemas/ApiV1BatchesBatchIdGetResponsesContentApplicationJsonSchemaRequestCounts"},"metadata":{"type":"object","additionalProperties":{"description":"Any type"}},"errors":{"oneOf":[{"description":"Any type"},{"type":"null"}],"description":"Provider error details, when available."}},"required":["id","status"],"title":"OpenAI Batch_retrieveBatch_Response_200"},"RetrieveBatchRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"},"error_class":{"type":"string"},"id":{"type":"string"}},"title":"RetrieveBatchRequestUnauthorizedError"},"RetrieveBatchRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"},"error_class":{"type":"string"},"id":{"type":"string"}},"title":"RetrieveBatchRequestNotFoundError"},"ApiV1BatchesBatchIdCancelPostResponsesContentApplicationJsonSchemaStatus":{"type":"string","enum":["validating","pending","in_progress","finalizing","completed","failed","expired","cancelling","cancelled"],"title":"ApiV1BatchesBatchIdCancelPostResponsesContentApplicationJsonSchemaStatus"},"ApiV1BatchesBatchIdCancelPostResponsesContentApplicationJsonSchemaRequestCounts":{"type":"object","properties":{"total":{"type":"integer"},"completed":{"type":"integer"},"failed":{"type":"integer"}},"title":"ApiV1BatchesBatchIdCancelPostResponsesContentApplicationJsonSchemaRequestCounts"},"OpenAI Batch_cancelBatch_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Batch ID."},"object":{"type":"string"},"endpoint":{"type":"string"},"input_file_id":{"type":"string"},"output_file_id":{"type":["string","null"],"description":"Output file ID, available when the batch completes."},"error_file_id":{"type":["string","null"],"description":"Error file ID, when provider errors are available."},"completion_window":{"type":"string"},"status":{"$ref":"#/components/schemas/ApiV1BatchesBatchIdCancelPostResponsesContentApplicationJsonSchemaStatus"},"created_at":{"type":"integer","description":"Unix timestamp."},"in_progress_at":{"type":["integer","null"]},"expires_at":{"type":["integer","null"]},"finalizing_at":{"type":["integer","null"]},"completed_at":{"type":["integer","null"]},"failed_at":{"type":["integer","null"]},"expired_at":{"type":["integer","null"]},"cancelling_at":{"type":["integer","null"]},"cancelled_at":{"type":["integer","null"]},"request_counts":{"$ref":"#/components/schemas/ApiV1BatchesBatchIdCancelPostResponsesContentApplicationJsonSchemaRequestCounts"},"metadata":{"type":"object","additionalProperties":{"description":"Any type"}},"errors":{"oneOf":[{"description":"Any type"},{"type":"null"}],"description":"Provider error details, when available."}},"required":["id","status"],"title":"OpenAI Batch_cancelBatch_Response_200"},"CancelBatchRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"},"error_class":{"type":"string"},"id":{"type":"string"}},"title":"CancelBatchRequestBadRequestError"},"CancelBatchRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"},"error_class":{"type":"string"},"id":{"type":"string"}},"title":"CancelBatchRequestUnauthorizedError"},"CancelBatchRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"},"error_class":{"type":"string"},"id":{"type":"string"}},"title":"CancelBatchRequestNotFoundError"},"ApiV1BatchesGetResponsesContentApplicationJsonSchemaObject":{"type":"string","enum":["list"],"title":"ApiV1BatchesGetResponsesContentApplicationJsonSchemaObject"},"ApiV1BatchesGetResponsesContentApplicationJsonSchemaDataItemsStatus":{"type":"string","enum":["validating","pending","in_progress","finalizing","completed","failed","expired","cancelling","cancelled"],"title":"ApiV1BatchesGetResponsesContentApplicationJsonSchemaDataItemsStatus"},"ApiV1BatchesGetResponsesContentApplicationJsonSchemaDataItemsRequestCounts":{"type":"object","properties":{"total":{"type":"integer"},"completed":{"type":"integer"},"failed":{"type":"integer"}},"title":"ApiV1BatchesGetResponsesContentApplicationJsonSchemaDataItemsRequestCounts"},"ApiV1BatchesGetResponsesContentApplicationJsonSchemaDataItems":{"type":"object","properties":{"id":{"type":"string","description":"Batch ID."},"object":{"type":"string"},"endpoint":{"type":"string"},"input_file_id":{"type":"string"},"output_file_id":{"type":["string","null"],"description":"Output file ID, available when the batch completes."},"error_file_id":{"type":["string","null"],"description":"Error file ID, when provider errors are available."},"completion_window":{"type":"string"},"status":{"$ref":"#/components/schemas/ApiV1BatchesGetResponsesContentApplicationJsonSchemaDataItemsStatus"},"created_at":{"type":"integer","description":"Unix timestamp."},"in_progress_at":{"type":["integer","null"]},"expires_at":{"type":["integer","null"]},"finalizing_at":{"type":["integer","null"]},"completed_at":{"type":["integer","null"]},"failed_at":{"type":["integer","null"]},"expired_at":{"type":["integer","null"]},"cancelling_at":{"type":["integer","null"]},"cancelled_at":{"type":["integer","null"]},"request_counts":{"$ref":"#/components/schemas/ApiV1BatchesGetResponsesContentApplicationJsonSchemaDataItemsRequestCounts"},"metadata":{"type":"object","additionalProperties":{"description":"Any type"}},"errors":{"oneOf":[{"description":"Any type"},{"type":"null"}],"description":"Provider error details, when available."}},"required":["id","status"],"title":"ApiV1BatchesGetResponsesContentApplicationJsonSchemaDataItems"},"OpenAI Batch_api_v1_batches_retrieve_Response_200":{"type":"object","properties":{"object":{"$ref":"#/components/schemas/ApiV1BatchesGetResponsesContentApplicationJsonSchemaObject"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ApiV1BatchesGetResponsesContentApplicationJsonSchemaDataItems"}},"first_id":{"type":["string","null"]},"last_id":{"type":["string","null"]},"has_more":{"type":"boolean"}},"required":["object","data"],"title":"OpenAI Batch_api_v1_batches_retrieve_Response_200"},"Api_v1_batches_retrieveRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"Api_v1_batches_retrieveRequestBadRequestError"},"Api_v1_batches_retrieveRequestUnauthorizedError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"Api_v1_batches_retrieveRequestUnauthorizedError"},"Api_v1_batches_retrieveRequestFailedDependencyError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"Api_v1_batches_retrieveRequestFailedDependencyError"},"ApiEmbeddingsPostRequestBodyContentApplicationJsonSchemaModel":{"type":"string","enum":["text-embedding-3-small","text-embedding-3-large","text-embedding-ada-002"],"description":"Embedding model ID.","title":"ApiEmbeddingsPostRequestBodyContentApplicationJsonSchemaModel"},"ApiEmbeddingsPostRequestBodyContentApplicationJsonSchemaEncodingFormat":{"type":"string","enum":["float","base64"],"default":"float","description":"Output format.","title":"ApiEmbeddingsPostRequestBodyContentApplicationJsonSchemaEncodingFormat"},"ApiEmbeddingsPostRequestBodyContentApplicationJsonSchemaCustomerCredentials":{"type":"object","properties":{},"description":"Per-customer LLM provider credentials.","title":"ApiEmbeddingsPostRequestBodyContentApplicationJsonSchemaCustomerCredentials"},"ApiEmbeddingsPostRequestBodyContentApplicationJsonSchemaMetadata":{"type":"object","properties":{},"description":"Custom key-value metadata.","title":"ApiEmbeddingsPostRequestBodyContentApplicationJsonSchemaMetadata"},"ApiEmbeddingsPostResponsesContentApplicationJsonSchemaDataItems":{"type":"object","properties":{"object":{"type":"string"},"embedding":{"type":"array","items":{"type":"number","format":"double"},"description":"Embedding vector."},"index":{"type":"integer"}},"title":"ApiEmbeddingsPostResponsesContentApplicationJsonSchemaDataItems"},"ApiEmbeddingsPostResponsesContentApplicationJsonSchemaUsage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}},"title":"ApiEmbeddingsPostResponsesContentApplicationJsonSchemaUsage"},"Multimodal_createEmbeddings_Response_200":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ApiEmbeddingsPostResponsesContentApplicationJsonSchemaDataItems"}},"model":{"type":"string"},"usage":{"$ref":"#/components/schemas/ApiEmbeddingsPostResponsesContentApplicationJsonSchemaUsage"}},"title":"Multimodal_createEmbeddings_Response_200"},"CreateEmbeddingsRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateEmbeddingsRequestUnauthorizedError"},"ApiAudioTranscriptionsPostRequestBodyContentMultipartFormDataSchemaModel":{"type":"string","enum":["whisper-1"],"description":"Model ID.","title":"ApiAudioTranscriptionsPostRequestBodyContentMultipartFormDataSchemaModel"},"ApiAudioTranscriptionsPostRequestBodyContentMultipartFormDataSchemaResponseFormat":{"type":"string","enum":["json","text","srt","verbose_json","vtt"],"default":"json","description":"Output format.","title":"ApiAudioTranscriptionsPostRequestBodyContentMultipartFormDataSchemaResponseFormat"},"ApiAudioTranscriptionsPostRequestBodyContentMultipartFormDataSchemaTimestampGranularitiesItems":{"type":"string","enum":["word","segment"],"title":"ApiAudioTranscriptionsPostRequestBodyContentMultipartFormDataSchemaTimestampGranularitiesItems"},"ApiAudioTranscriptionsPostRequestBodyContentMultipartFormDataSchemaCustomerCredentials":{"type":"object","properties":{},"description":"Per-customer LLM provider credentials.","title":"ApiAudioTranscriptionsPostRequestBodyContentMultipartFormDataSchemaCustomerCredentials"},"ApiAudioTranscriptionsPostRequestBodyContentMultipartFormDataSchemaMetadata":{"type":"object","properties":{},"description":"Custom key-value metadata.","title":"ApiAudioTranscriptionsPostRequestBodyContentMultipartFormDataSchemaMetadata"},"ApiAudioTranscriptionsPostResponsesContentApplicationJsonSchemaWordsItems":{"type":"object","properties":{"word":{"type":"string"},"start":{"type":"number","format":"double"},"end":{"type":"number","format":"double"}},"title":"ApiAudioTranscriptionsPostResponsesContentApplicationJsonSchemaWordsItems"},"ApiAudioTranscriptionsPostResponsesContentApplicationJsonSchemaSegmentsItems":{"type":"object","properties":{},"title":"ApiAudioTranscriptionsPostResponsesContentApplicationJsonSchemaSegmentsItems"},"Multimodal_speechToText_Response_200":{"type":"object","properties":{"text":{"type":"string","description":"Transcribed text."},"language":{"type":"string","description":"Detected language."},"duration":{"type":"number","format":"double","description":"Audio duration in seconds."},"words":{"type":"array","items":{"$ref":"#/components/schemas/ApiAudioTranscriptionsPostResponsesContentApplicationJsonSchemaWordsItems"},"description":"Word-level timestamps (if requested)."},"segments":{"type":"array","items":{"$ref":"#/components/schemas/ApiAudioTranscriptionsPostResponsesContentApplicationJsonSchemaSegmentsItems"},"description":"Segment-level timestamps (if requested)."}},"title":"Multimodal_speechToText_Response_200"},"SpeechToTextRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"SpeechToTextRequestUnauthorizedError"},"ApiAudioSpeechPostRequestBodyContentApplicationJsonSchemaModel":{"type":"string","enum":["tts-1","tts-1-hd"],"description":"TTS model.","title":"ApiAudioSpeechPostRequestBodyContentApplicationJsonSchemaModel"},"ApiAudioSpeechPostRequestBodyContentApplicationJsonSchemaVoice":{"type":"string","enum":["alloy","echo","fable","onyx","nova","shimmer"],"description":"Voice to use.","title":"ApiAudioSpeechPostRequestBodyContentApplicationJsonSchemaVoice"},"ApiAudioSpeechPostRequestBodyContentApplicationJsonSchemaResponseFormat":{"type":"string","enum":["mp3","opus","aac","flac","wav","pcm"],"default":"mp3","description":"Audio output format.","title":"ApiAudioSpeechPostRequestBodyContentApplicationJsonSchemaResponseFormat"},"ApiAudioSpeechPostRequestBodyContentApplicationJsonSchemaCustomerCredentials":{"type":"object","properties":{},"description":"Per-customer LLM provider credentials.","title":"ApiAudioSpeechPostRequestBodyContentApplicationJsonSchemaCustomerCredentials"},"ApiAudioSpeechPostRequestBodyContentApplicationJsonSchemaMetadata":{"type":"object","properties":{},"description":"Custom key-value metadata.","title":"ApiAudioSpeechPostRequestBodyContentApplicationJsonSchemaMetadata"},"TextToSpeechRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"TextToSpeechRequestUnauthorizedError"},"ApiAssemblyaiV2TranscriptTranscriptIdGetResponsesContentApplicationJsonSchemaStatus":{"type":"string","enum":["queued","processing","completed","error"],"description":"Transcript status.","title":"ApiAssemblyaiV2TranscriptTranscriptIdGetResponsesContentApplicationJsonSchemaStatus"},"ApiAssemblyaiV2TranscriptTranscriptIdGetResponsesContentApplicationJsonSchemaWordsItems":{"type":"object","properties":{"text":{"type":"string"},"start":{"type":"integer","description":"Start time in ms."},"end":{"type":"integer","description":"End time in ms."},"confidence":{"type":"number","format":"double"}},"title":"ApiAssemblyaiV2TranscriptTranscriptIdGetResponsesContentApplicationJsonSchemaWordsItems"},"Multimodal_retrieveAssemblyaiTranscript_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"Transcript ID."},"status":{"$ref":"#/components/schemas/ApiAssemblyaiV2TranscriptTranscriptIdGetResponsesContentApplicationJsonSchemaStatus","description":"Transcript status."},"text":{"type":"string","description":"Transcribed text."},"words":{"type":"array","items":{"$ref":"#/components/schemas/ApiAssemblyaiV2TranscriptTranscriptIdGetResponsesContentApplicationJsonSchemaWordsItems"},"description":"Word-level details."}},"title":"Multimodal_retrieveAssemblyaiTranscript_Response_200"},"RetrieveAssemblyaiTranscriptRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveAssemblyaiTranscriptRequestUnauthorizedError"},"RetrieveAssemblyaiTranscriptRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveAssemblyaiTranscriptRequestNotFoundError"},"ApiKeyLimitPolicySpecMetric":{"type":"string","enum":["cost","request_count","token_count"],"default":"cost","description":"What the cap counts. `cost` is US dollars, `token_count` is total tokens, `request_count` is calls.","title":"ApiKeyLimitPolicySpecMetric"},"APIKeyLimitPolicySpec":{"type":"object","properties":{"max_value":{"type":"number","format":"double","description":"The cap, in the unit named by `metric`. The counter blocks when it reaches this value: `max_value` of 3 on `request_count` allows two requests and refuses the third."},"metric":{"$ref":"#/components/schemas/ApiKeyLimitPolicySpecMetric","description":"What the cap counts. `cost` is US dollars, `token_count` is total tokens, `request_count` is calls."},"period":{"type":"string","description":"A named bucket (`minute`, `hour`, `day`, `week`, `month`) or a positive integer of seconds as a string. A lifetime (`null`) period is rejected here; use `POST /api/limit-policies/` for that."},"warning_threshold":{"type":["number","null"],"format":"double","description":"Optional soft threshold; must be strictly below `max_value`. Fires an alert without blocking."},"name":{"type":"string","default":"","description":"Display label. When blank, the dashboard falls back to the key's own name."},"notification_method_id":{"type":["string","null"],"description":"OrganizationNotificationMethod id to ping when a rule trips. Must belong to the same project."}},"required":["max_value","period"],"description":"A spend, token, or request cap to create together with the API key, scoped to that key. Caps are stored and visible as soon as they are created, but the gateway enforces them only where the limit system is enabled for your environment. Where it is not enabled, a cap records no usage and never blocks.","title":"APIKeyLimitPolicySpec"},"Temporary API Keys_createApiKey_Response_201":{"type":"object","properties":{"id":{"type":"string","description":"API key ID."},"name":{"type":"string","description":"Key name."},"prefix":{"type":"string","description":"Key prefix."},"is_test":{"type":"boolean","description":"Test or production key."},"expiry_date":{"type":"string","format":"date-time","description":"Expiry date."},"max_usage":{"type":"integer","description":"Max usage count. -1 = unlimited."},"rate_limit":{"type":["number","null"],"format":"double","description":"Requests per minute. null uses the organization default."},"spending_limit":{"type":"number","format":"double","description":"Spending limit in USD."},"api_key":{"type":"string","description":"The API key value. Only returned on creation - store it securely."},"key_usage":{"type":"integer","description":"Number of times this key has been used."},"created":{"type":"string","format":"date-time","description":"When the API key was created."},"unique_organization_id":{"type":["string","null"],"description":"Owning organization UUID."}},"title":"Temporary API Keys_createApiKey_Response_201"},"CreateApiKeyRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateApiKeyRequestUnauthorizedError"},"ApiTemporaryKeysGetResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string","description":"API key ID."},"name":{"type":"string","description":"Key name."},"prefix":{"type":"string","description":"Key prefix."},"is_test":{"type":"boolean","description":"Test or production key."},"expiry_date":{"type":"string","format":"date-time","description":"Expiry date."},"max_usage":{"type":"integer","description":"Max usage count. -1 = unlimited."},"rate_limit":{"type":["number","null"],"format":"double","description":"Requests per minute. null uses the organization default."},"spending_limit":{"type":"number","format":"double","description":"Spending limit in USD."},"created":{"type":"string","format":"date-time","description":"When the API key was created."},"unique_organization_id":{"type":["string","null"],"description":"Owning organization UUID."}},"title":"ApiTemporaryKeysGetResponsesContentApplicationJsonSchemaResultsItems"},"Temporary API Keys_listApiKeys_Response_200":{"type":"object","properties":{"count":{"type":"integer"},"next":{"type":["string","null"],"format":"uri"},"previous":{"type":["string","null"],"format":"uri"},"current_filters":{"type":"object","additionalProperties":{"description":"Any type"}},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiTemporaryKeysGetResponsesContentApplicationJsonSchemaResultsItems"}}},"required":["count","results"],"title":"Temporary API Keys_listApiKeys_Response_200"},"ListApiKeysRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListApiKeysRequestUnauthorizedError"},"Temporary API Keys_retrieveApiKey_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"API key ID."},"name":{"type":"string","description":"Key name."},"prefix":{"type":"string","description":"Key prefix."},"is_test":{"type":"boolean","description":"Test or production key."},"expiry_date":{"type":"string","format":"date-time","description":"Expiry date."},"max_usage":{"type":"integer","description":"Max usage count. -1 = unlimited."},"rate_limit":{"type":["number","null"],"format":"double","description":"Requests per minute. null uses the organization default."},"spending_limit":{"type":"number","format":"double","description":"Spending limit in USD."},"created":{"type":"string","format":"date-time","description":"When the API key was created."},"unique_organization_id":{"type":["string","null"],"description":"Owning organization UUID."}},"title":"Temporary API Keys_retrieveApiKey_Response_200"},"RetrieveApiKeyRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveApiKeyRequestUnauthorizedError"},"RetrieveApiKeyRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveApiKeyRequestNotFoundError"},"Temporary API Keys_updateApiKey_Response_200":{"type":"object","properties":{"id":{"type":"string","description":"API key ID."},"name":{"type":"string","description":"Key name."},"prefix":{"type":"string","description":"Key prefix."},"is_test":{"type":"boolean","description":"Test or production key."},"expiry_date":{"type":"string","format":"date-time","description":"Expiry date."},"max_usage":{"type":"integer","description":"Max usage count. -1 = unlimited."},"rate_limit":{"type":["number","null"],"format":"double","description":"Requests per minute. null uses the organization default."},"spending_limit":{"type":"number","format":"double","description":"Spending limit in USD."},"created":{"type":"string","format":"date-time","description":"When the API key was created."},"unique_organization_id":{"type":["string","null"],"description":"Owning organization UUID."}},"title":"Temporary API Keys_updateApiKey_Response_200"},"UpdateApiKeyRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateApiKeyRequestUnauthorizedError"},"UpdateApiKeyRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"UpdateApiKeyRequestNotFoundError"},"DeleteApiKeyRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeleteApiKeyRequestUnauthorizedError"},"DeleteApiKeyRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"DeleteApiKeyRequestNotFoundError"},"LimitPolicyCreateRequestMetric":{"type":"string","enum":["cost","request_count","token_count"],"default":"cost","description":"What the cap counts. `cost` is US dollars, `token_count` is total tokens, `request_count` is calls.","title":"LimitPolicyCreateRequestMetric"},"LimitPolicyCreateRequestAlgorithm":{"type":"string","enum":["balance_fixed_window"],"default":"balance_fixed_window","title":"LimitPolicyCreateRequestAlgorithm"},"LimitPolicyCreateRequestAnchor":{"type":"string","enum":["calendar","first_event","explicit_ts"],"default":"calendar","title":"LimitPolicyCreateRequestAnchor"},"LimitPolicyRuleSeverity":{"type":"string","enum":["soft","hard"],"description":"`soft` fires an alert without blocking; `hard` blocks the request with 429.","title":"LimitPolicyRuleSeverity"},"LimitPolicyRule":{"type":"object","properties":{"trigger":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Threshold condition. Common shape: `{\"counter\": {\"operator\": \"gte\", \"value\": 10000}}`."},"severity":{"$ref":"#/components/schemas/LimitPolicyRuleSeverity","description":"`soft` fires an alert without blocking; `hard` blocks the request with 429."},"description":{"type":"string","description":"Shown in events and alert payloads."},"is_active":{"type":"boolean","default":true},"notification_method_id":{"type":["string","null"],"description":"Optional OrganizationNotificationMethod id to ping when this rule trips."}},"required":["trigger","severity"],"title":"LimitPolicyRule"},"LimitPolicyCreateRequest":{"type":"object","properties":{"name":{"type":"string"},"scope":{"type":"string","description":"Display category. Not used for matching."},"scope_value":{"type":"string","description":"Identity to meter. For composites (`compose` length >= 2), a JSON list of values in `compose` order."},"compose":{"type":"array","items":{"type":"string"}},"metric":{"$ref":"#/components/schemas/LimitPolicyCreateRequestMetric","description":"What the cap counts. `cost` is US dollars, `token_count` is total tokens, `request_count` is calls."},"algorithm":{"$ref":"#/components/schemas/LimitPolicyCreateRequestAlgorithm"},"period":{"type":["string","null"],"description":"Named bucket, integer-seconds string, or `null` for cumulative."},"anchor":{"$ref":"#/components/schemas/LimitPolicyCreateRequestAnchor"},"anchor_at":{"type":["string","null"],"format":"date-time"},"effective_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"priority":{"type":"integer","default":0},"is_active":{"type":"boolean","default":true},"rules":{"type":"array","items":{"$ref":"#/components/schemas/LimitPolicyRule"}}},"required":["name","scope_value","metric","rules"],"title":"LimitPolicyCreateRequest"},"LimitPolicyMetric":{"type":"string","enum":["cost","request_count","token_count"],"default":"cost","description":"What the cap counts. `cost` is US dollars, `token_count` is total tokens, `request_count` is calls.","title":"LimitPolicyMetric"},"LimitPolicyAlgorithm":{"type":"string","enum":["balance_fixed_window"],"default":"balance_fixed_window","description":"`balance_fixed_window` is the shipped algorithm. `token_bucket` is reserved and not yet enforced.","title":"LimitPolicyAlgorithm"},"LimitPolicyAnchor":{"type":"string","enum":["calendar","first_event","explicit_ts"],"default":"calendar","description":"When a recurring window aligns. `calendar` resets on the boundary (e.g. the 1st of the month).","title":"LimitPolicyAnchor"},"LimitPolicyCurrentState":{"type":"object","properties":{"meter_id":{"type":"string"},"interval_start":{"type":["integer","null"],"description":"Epoch seconds, inclusive."},"interval_end":{"type":["integer","null"],"description":"Epoch seconds, exclusive."},"current_value":{"type":"number","format":"double","description":"Accumulated value in this window."}},"description":"Live counter for the current window instance.","title":"LimitPolicyCurrentState"},"LimitPolicy":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","description":"Human label."},"scope":{"type":"string","description":"Display category (e.g. `API Key`, `Model`). Not used for matching."},"scope_value":{"type":"string","description":"Identity to meter. For composites, a JSON list of values in `compose` order."},"compose":{"type":"array","items":{"type":"string"},"description":"Empty for single-dimension policies. Members: `organization_id`, `api_key_id`, `user_id`, `customer_identifier`, `model`, `endpoint`."},"metric":{"$ref":"#/components/schemas/LimitPolicyMetric","description":"What the cap counts. `cost` is US dollars, `token_count` is total tokens, `request_count` is calls."},"algorithm":{"$ref":"#/components/schemas/LimitPolicyAlgorithm","description":"`balance_fixed_window` is the shipped algorithm. `token_bucket` is reserved and not yet enforced."},"period":{"type":["string","null"],"description":"Cadence. A named bucket (`minute`, `hour`, `day`, `week`, `month`), a positive integer of seconds as a string, or `null` for a cumulative (lifetime) cap that never resets."},"anchor":{"$ref":"#/components/schemas/LimitPolicyAnchor","description":"When a recurring window aligns. `calendar` resets on the boundary (e.g. the 1st of the month)."},"anchor_at":{"type":["string","null"],"format":"date-time","description":"Required when `anchor` is not `calendar`."},"effective_at":{"type":["string","null"],"format":"date-time","description":"Active-range start. `null` = live since forever."},"expires_at":{"type":["string","null"],"format":"date-time","description":"Active-range end. `null` = live until deactivated. Must be after `effective_at`."},"priority":{"type":"integer","default":0,"description":"Higher is checked first."},"is_active":{"type":"boolean","default":true},"rules":{"type":"array","items":{"$ref":"#/components/schemas/LimitPolicyRule"},"description":"Any number of soft rules and at most one effective hard rule."},"threshold_value":{"type":"number","format":"double","description":"First hard-rule threshold; falls back to the largest soft threshold."},"meter_definition_id":{"type":"string","description":"Stable hash of the policy identity. Same identity resolves to the same id across recreations."},"current_state":{"$ref":"#/components/schemas/LimitPolicyCurrentState"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"description":"A stored cap: watch a scope, measure a metric, refill on a cadence, and fire rules at thresholds.","title":"LimitPolicy"},"Limit Policies_list_limit_policies_Response_200":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/LimitPolicy"}},"count":{"type":"integer"},"next":{"type":["string","null"]},"previous":{"type":["string","null"]}},"title":"Limit Policies_list_limit_policies_Response_200"},"LimitPolicyUpdateRequest":{"type":"object","properties":{"name":{"type":"string"},"scope":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/LimitPolicyRule"}},"priority":{"type":"integer"},"is_active":{"type":"boolean"}},"description":"Only `name`, `scope`, `rules`, `priority`, and `is_active` are mutable. Other fields would change the policy identity and are ignored.","title":"LimitPolicyUpdateRequest"},"ApiCreditTransactionsListGetResponsesContentApplicationJsonSchemaResultsItems":{"type":"object","properties":{"id":{"type":"string"},"amount":{"type":"number","format":"double"},"transaction_type":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"description":{"type":"string"}},"required":["id","amount","transaction_type","created_at","description"],"title":"ApiCreditTransactionsListGetResponsesContentApplicationJsonSchemaResultsItems"},"Credit Transactions_listCreditTransactions_Response_200":{"type":"object","properties":{"count":{"type":"integer","description":"Total transactions."},"next":{"type":["string","null"]},"previous":{"type":["string","null"]},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiCreditTransactionsListGetResponsesContentApplicationJsonSchemaResultsItems"}},"total_count":{"type":"integer","description":"Present for dashboard-authenticated callers."},"current_filters":{"type":"object","additionalProperties":{"description":"Any type"}},"filters_data":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["count","results"],"title":"Credit Transactions_listCreditTransactions_Response_200"},"ListCreditTransactionsRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"ListCreditTransactionsRequestUnauthorizedError"},"Credit Transactions_retrieveCreditTransaction_Response_200":{"type":"object","properties":{"id":{"type":"string"},"unique_organization_id":{"type":"string"},"amount":{"type":"number","format":"double"},"transaction_type":{"type":"string"},"billable_type":{"type":"string"},"source_id":{"type":"string"},"credit_amount":{"type":"number","format":"double"},"debit_amount":{"type":"number","format":"double"},"description":{"type":"string"},"created_at":{"type":"string","format":"date-time"}},"required":["id","unique_organization_id","amount","transaction_type","billable_type","source_id","credit_amount","debit_amount","description","created_at"],"title":"Credit Transactions_retrieveCreditTransaction_Response_200"},"RetrieveCreditTransactionRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveCreditTransactionRequestUnauthorizedError"},"RetrieveCreditTransactionRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"RetrieveCreditTransactionRequestNotFoundError"},"ApiDashboardLlmMetricsPostParametersSummaryType":{"type":"string","enum":["daily","weekly","monthly","quarterly","yearly","last_24h","all"],"default":"all","title":"ApiDashboardLlmMetricsPostParametersSummaryType"},"ApiDashboardLlmMetricsPostParametersTimeTick":{"type":"string","enum":["minute","hour","day"],"default":"hour","title":"ApiDashboardLlmMetricsPostParametersTimeTick"},"ApiDashboardLlmMetricsPostParametersFetchFilters":{"type":"string","enum":["true","false"],"default":"true","title":"ApiDashboardLlmMetricsPostParametersFetchFilters"},"DashboardFiltersRequest":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/Filters"}},"description":"Optional POST body. Only `filters` is read from the body; time range controls are URL query parameters.","title":"DashboardFiltersRequest"},"DashboardLLMMetricsRow":{"type":"object","properties":{"date_group":{"type":"string","format":"date-time"},"number_of_requests":{"type":"integer"},"total_cost":{"type":"number","format":"double"},"total_prompt_tokens":{"type":"integer"},"total_completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"},"max_tpm":{"type":"integer"},"error_count":{"type":"integer"},"error_percentage":{"type":["number","null"],"format":"double"},"average_prompt_tokens":{"type":["number","null"],"format":"double"},"average_completion_tokens":{"type":["number","null"],"format":"double"},"average_tokens":{"type":["number","null"],"format":"double"},"average_cost":{"type":["number","null"],"format":"double"},"average_latency":{"type":["number","null"],"format":"double"},"average_tps":{"type":["number","null"],"format":"double"},"average_ttft":{"type":["number","null"],"format":"double"},"prompt_cache_hit_tokens":{"type":"integer"},"reasoning_tokens":{"type":"integer"},"cache_hit_percentage":{"type":["number","null"],"format":"double"},"requests_per_second":{"type":["number","null"],"format":"double"},"latency":{"type":["number","null"],"format":"double","description":"Legacy empty-bucket field."},"time_to_first_token":{"type":["number","null"],"format":"double","description":"Legacy empty-bucket field."}},"title":"DashboardLLMMetricsRow"},"Dashboard_listLlmMetrics_Response_200":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DashboardLLMMetricsRow"}},"summary":{"type":"object","additionalProperties":{"description":"Any type"}},"filter_options":{"type":["object","null"],"additionalProperties":{"description":"Any type"}}},"required":["data","summary","filter_options"],"title":"Dashboard_listLlmMetrics_Response_200"},"ApiDashboardLlmMetricsSummaryPostParametersSummaryType":{"type":"string","enum":["daily","weekly","monthly","quarterly","yearly","last_24h","all"],"default":"all","title":"ApiDashboardLlmMetricsSummaryPostParametersSummaryType"},"ApiDashboardLlmMetricsSummaryPostParametersTimeTick":{"type":"string","enum":["minute","hour","day"],"default":"hour","title":"ApiDashboardLlmMetricsSummaryPostParametersTimeTick"},"ApiDashboardLlmMetricsSummaryPostParametersFetchFilters":{"type":"string","enum":["true","false"],"default":"true","title":"ApiDashboardLlmMetricsSummaryPostParametersFetchFilters"},"DashboardLLMMetricsSummary":{"type":"object","properties":{"number_of_requests":{"type":"integer"},"total_cost":{"type":"number","format":"double"},"total_prompt_tokens":{"type":"integer"},"total_completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"},"max_tpm":{"type":"integer"},"error_count":{"type":"integer"},"error_percentage":{"type":["number","null"],"format":"double"},"average_prompt_tokens":{"type":["number","null"],"format":"double"},"average_completion_tokens":{"type":["number","null"],"format":"double"},"average_tokens":{"type":["number","null"],"format":"double"},"average_cost":{"type":["number","null"],"format":"double"},"average_latency":{"type":["number","null"],"format":"double"},"average_tps":{"type":["number","null"],"format":"double"},"average_ttft":{"type":["number","null"],"format":"double"},"prompt_cache_hit_tokens":{"type":"integer"},"reasoning_tokens":{"type":"integer"},"cache_hit_percentage":{"type":["number","null"],"format":"double"},"requests_per_second":{"type":["number","null"],"format":"double"},"latency":{"type":["number","null"],"format":"double","description":"Legacy empty-bucket field."},"time_to_first_token":{"type":["number","null"],"format":"double","description":"Legacy empty-bucket field."}},"title":"DashboardLLMMetricsSummary"},"ApiDashboardQuantilesPostParametersSummaryType":{"type":"string","enum":["daily","weekly","monthly","quarterly","yearly","last_24h","all"],"default":"all","title":"ApiDashboardQuantilesPostParametersSummaryType"},"ApiDashboardQuantilesPostParametersTimeTick":{"type":"string","enum":["minute","hour","day"],"default":"hour","title":"ApiDashboardQuantilesPostParametersTimeTick"},"DashboardQuantilesRequestMetricsToAggregateItems":{"type":"string","enum":["latency_quantiles","ttft_quantiles","tps_quantiles","prompt_tokens_quantiles","completion_tokens_quantiles"],"title":"DashboardQuantilesRequestMetricsToAggregateItems"},"DashboardQuantilesRequest":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/Filters"},"metrics_to_aggregate":{"type":"array","items":{"$ref":"#/components/schemas/DashboardQuantilesRequestMetricsToAggregateItems"},"description":"Quantile metric families to calculate."}},"description":"Optional POST body for quantile endpoints. Time range controls are URL query parameters.","title":"DashboardQuantilesRequest"},"DashboardQuantilesRow":{"type":"object","properties":{"date_group":{"type":"string","format":"date-time"},"latency_quantiles_p_50":{"type":["number","null"],"format":"double"},"latency_quantiles_p_90":{"type":["number","null"],"format":"double"},"latency_quantiles_p_95":{"type":["number","null"],"format":"double"},"latency_quantiles_p_99":{"type":["number","null"],"format":"double"},"ttft_quantiles_p_50":{"type":["number","null"],"format":"double"},"ttft_quantiles_p_90":{"type":["number","null"],"format":"double"},"ttft_quantiles_p_95":{"type":["number","null"],"format":"double"},"ttft_quantiles_p_99":{"type":["number","null"],"format":"double"},"tps_quantiles_p_50":{"type":["number","null"],"format":"double"},"tps_quantiles_p_90":{"type":["number","null"],"format":"double"},"tps_quantiles_p_95":{"type":["number","null"],"format":"double"},"tps_quantiles_p_99":{"type":["number","null"],"format":"double"},"prompt_tokens_quantiles_p_50":{"type":["number","null"],"format":"double"},"prompt_tokens_quantiles_p_90":{"type":["number","null"],"format":"double"},"prompt_tokens_quantiles_p_95":{"type":["number","null"],"format":"double"},"prompt_tokens_quantiles_p_99":{"type":["number","null"],"format":"double"},"completion_tokens_quantiles_p_50":{"type":["number","null"],"format":"double"},"completion_tokens_quantiles_p_90":{"type":["number","null"],"format":"double"},"completion_tokens_quantiles_p_95":{"type":["number","null"],"format":"double"},"completion_tokens_quantiles_p_99":{"type":["number","null"],"format":"double"}},"description":"Populated rows use *_quantiles_p_* keys. Empty buckets may also contain legacy percentile keys.","title":"DashboardQuantilesRow"},"Dashboard_listQuantiles_Response_200":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DashboardQuantilesRow"}}},"required":["data"],"title":"Dashboard_listQuantiles_Response_200"},"ApiDashboardQuantilesSummaryPostParametersSummaryType":{"type":"string","enum":["daily","weekly","monthly","quarterly","yearly","last_24h","all"],"default":"all","title":"ApiDashboardQuantilesSummaryPostParametersSummaryType"},"ApiDashboardQuantilesSummaryPostParametersTimeTick":{"type":"string","enum":["minute","hour","day"],"default":"hour","title":"ApiDashboardQuantilesSummaryPostParametersTimeTick"},"DashboardQuantilesSummary":{"type":"object","properties":{"latency_quantiles_p_50":{"type":["number","null"],"format":"double"},"latency_quantiles_p_90":{"type":["number","null"],"format":"double"},"latency_quantiles_p_95":{"type":["number","null"],"format":"double"},"latency_quantiles_p_99":{"type":["number","null"],"format":"double"},"ttft_quantiles_p_50":{"type":["number","null"],"format":"double"},"ttft_quantiles_p_90":{"type":["number","null"],"format":"double"},"ttft_quantiles_p_95":{"type":["number","null"],"format":"double"},"ttft_quantiles_p_99":{"type":["number","null"],"format":"double"},"tps_quantiles_p_50":{"type":["number","null"],"format":"double"},"tps_quantiles_p_90":{"type":["number","null"],"format":"double"},"tps_quantiles_p_95":{"type":["number","null"],"format":"double"},"tps_quantiles_p_99":{"type":["number","null"],"format":"double"},"prompt_tokens_quantiles_p_50":{"type":["number","null"],"format":"double"},"prompt_tokens_quantiles_p_90":{"type":["number","null"],"format":"double"},"prompt_tokens_quantiles_p_95":{"type":["number","null"],"format":"double"},"prompt_tokens_quantiles_p_99":{"type":["number","null"],"format":"double"},"completion_tokens_quantiles_p_50":{"type":["number","null"],"format":"double"},"completion_tokens_quantiles_p_90":{"type":["number","null"],"format":"double"},"completion_tokens_quantiles_p_95":{"type":["number","null"],"format":"double"},"completion_tokens_quantiles_p_99":{"type":["number","null"],"format":"double"}},"title":"DashboardQuantilesSummary"},"Dashboard_getQuantilesSummary_Response_200":{"type":"object","properties":{"summary":{"$ref":"#/components/schemas/DashboardQuantilesSummary"}},"required":["summary"],"title":"Dashboard_getQuantilesSummary_Response_200"},"ApiDashboardTimeSeriesBreakdownPostParametersSummaryType":{"type":"string","enum":["daily","weekly","monthly","quarterly","yearly","last_24h","all"],"default":"all","title":"ApiDashboardTimeSeriesBreakdownPostParametersSummaryType"},"ApiDashboardTimeSeriesBreakdownPostParametersTimeTick":{"type":"string","enum":["minute","hour","day"],"default":"hour","title":"ApiDashboardTimeSeriesBreakdownPostParametersTimeTick"},"ApiDashboardTimeSeriesBreakdownPostParametersBreakdownBy":{"type":"string","enum":["model","organization_key_id","customer_identifier","custom_identifier","prompt_id","deployment_id","deployment_name","provider_id"],"default":"model","title":"ApiDashboardTimeSeriesBreakdownPostParametersBreakdownBy"},"ApiDashboardTimeSeriesBreakdownPostParametersScope":{"type":"string","enum":["span","trace","thread"],"default":"span","title":"ApiDashboardTimeSeriesBreakdownPostParametersScope"},"ApiDashboardTimeSeriesBreakdownPostRequestBodyContentApplicationJsonSchemaMetricsToAggregateItems":{"type":"string","enum":["number_of_requests","total_cost","total_tokens","error_count","error_percentage","average_cost","average_tokens","cache_hit_percentage","average_latency","average_ttft","average_tps"],"title":"ApiDashboardTimeSeriesBreakdownPostRequestBodyContentApplicationJsonSchemaMetricsToAggregateItems"},"ApiDashboardTimeSeriesBreakdownPostResponsesContentApplicationJsonSchemaOneOf0Items":{"type":"object","properties":{"date_group":{"type":"string"}},"required":["date_group"],"title":"ApiDashboardTimeSeriesBreakdownPostResponsesContentApplicationJsonSchemaOneOf0Items"},"ApiDashboardTimeSeriesBreakdownPostResponsesContentApplicationJsonSchema0":{"type":"array","items":{"$ref":"#/components/schemas/ApiDashboardTimeSeriesBreakdownPostResponsesContentApplicationJsonSchemaOneOf0Items"},"title":"ApiDashboardTimeSeriesBreakdownPostResponsesContentApplicationJsonSchema0"},"ApiDashboardTimeSeriesBreakdownPostResponsesContentApplicationJsonSchema":{"oneOf":[{"$ref":"#/components/schemas/ApiDashboardTimeSeriesBreakdownPostResponsesContentApplicationJsonSchema0"},{"type":"object","additionalProperties":{"type":"string"}}],"title":"ApiDashboardTimeSeriesBreakdownPostResponsesContentApplicationJsonSchema"},"ListMetricsBreakdownRequestBadRequestError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"ListMetricsBreakdownRequestBadRequestError"},"ListMetricsBreakdownRequestContentTooLargeError":{"type":"object","properties":{"detail":{"type":"string"}},"title":"ListMetricsBreakdownRequestContentTooLargeError"},"ApiDashboardUsersPostParametersSummaryType":{"type":"string","enum":["daily","weekly","monthly","quarterly","yearly","last_24h","all"],"default":"all","title":"ApiDashboardUsersPostParametersSummaryType"},"ApiDashboardUsersPostParametersTimeTick":{"type":"string","enum":["minute","hour","day"],"default":"hour","title":"ApiDashboardUsersPostParametersTimeTick"},"ApiDashboardUsersPostParametersEnvironment":{"type":"string","enum":["prod","test"],"title":"ApiDashboardUsersPostParametersEnvironment"},"DashboardTimeRangeRequest":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/Filters"}},"description":"Deprecated body schema. Dashboard time range controls are URL query parameters; use `DashboardFiltersRequest` for POST bodies.","title":"DashboardTimeRangeRequest"},"DashboardUsersRow":{"type":"object","properties":{"date_group":{"type":"string","format":"date-time"},"active_users":{"type":"integer"},"total_cost":{"type":"number","format":"double"},"average_cost_per_user":{"type":"number","format":"double"}},"required":["date_group","active_users","total_cost","average_cost_per_user"],"title":"DashboardUsersRow"},"ApiDashboardUsersPostResponsesContentApplicationJsonSchemaSummary":{"type":"object","properties":{"active_users":{"type":"integer"},"average_cost_per_user":{"type":"number","format":"double"},"total_user_cost":{"type":"number","format":"double"}},"required":["active_users","average_cost_per_user","total_user_cost"],"title":"ApiDashboardUsersPostResponsesContentApplicationJsonSchemaSummary"},"Dashboard_listActiveUsers_Response_200":{"type":"object","properties":{"activity":{"type":"array","items":{"$ref":"#/components/schemas/DashboardUsersRow"}},"summary":{"$ref":"#/components/schemas/ApiDashboardUsersPostResponsesContentApplicationJsonSchemaSummary"}},"required":["activity","summary"],"title":"Dashboard_listActiveUsers_Response_200"},"ApiDashboardTotalUsersPostResponsesContentApplicationJsonSchemaDataItems":{"type":"object","properties":{"date_group":{"type":"string","format":"date-time"},"total_users":{"type":"integer"}},"required":["date_group","total_users"],"title":"ApiDashboardTotalUsersPostResponsesContentApplicationJsonSchemaDataItems"},"DashboardTotalUsersSummary":{"type":"object","properties":{"total_users":{"type":"integer","description":"Unique user count for the time range."}},"title":"DashboardTotalUsersSummary"},"Dashboard_getTotalUsers_Response_200":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ApiDashboardTotalUsersPostResponsesContentApplicationJsonSchemaDataItems"}},"summary":{"$ref":"#/components/schemas/DashboardTotalUsersSummary"}},"required":["data","summary"],"title":"Dashboard_getTotalUsers_Response_200"},"ApiDashboardCacheHitMetricsPostParametersSummaryType":{"type":"string","enum":["daily","weekly","monthly","quarterly","yearly","last_24h","all"],"default":"all","title":"ApiDashboardCacheHitMetricsPostParametersSummaryType"},"ApiDashboardCacheHitMetricsPostParametersTimeTick":{"type":"string","enum":["minute","hour","day"],"default":"hour","title":"ApiDashboardCacheHitMetricsPostParametersTimeTick"},"DashboardCacheHitRow":{"type":"object","properties":{"date_group":{"type":"string","format":"date-time"},"number_of_requests":{"type":"integer"},"total_prompt_tokens":{"type":"integer"},"total_completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"},"total_time_saved":{"type":"number","format":"double"},"total_cost":{"type":"number","format":"double"}},"title":"DashboardCacheHitRow"},"Dashboard_listCacheHitMetrics_Response_200":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DashboardCacheHitRow"}}},"required":["data"],"title":"Dashboard_listCacheHitMetrics_Response_200"},"ApiDashboardCacheHitMetricsSummaryPostParametersSummaryType":{"type":"string","enum":["daily","weekly","monthly","quarterly","yearly","last_24h","all"],"default":"all","title":"ApiDashboardCacheHitMetricsSummaryPostParametersSummaryType"},"ApiDashboardCacheHitMetricsSummaryPostParametersTimeTick":{"type":"string","enum":["minute","hour","day"],"default":"hour","title":"ApiDashboardCacheHitMetricsSummaryPostParametersTimeTick"},"DashboardCacheHitSummary":{"type":"object","properties":{"number_of_requests":{"type":"integer"},"total_prompt_tokens":{"type":"integer"},"total_completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"},"total_time_saved":{"type":"number","format":"double"},"total_cost":{"type":"number","format":"double"}},"title":"DashboardCacheHitSummary"},"Dashboard_getCacheHitMetricsSummary_Response_200":{"type":"object","properties":{"summary":{"$ref":"#/components/schemas/DashboardCacheHitSummary"}},"required":["summary"],"title":"Dashboard_getCacheHitMetricsSummary_Response_200"},"ApiDashboardCacheHitMetricsTotalSummaryPostParametersSummaryType":{"type":"string","enum":["daily","weekly","monthly","quarterly","yearly","last_24h","all"],"default":"all","title":"ApiDashboardCacheHitMetricsTotalSummaryPostParametersSummaryType"},"ApiDashboardCacheHitMetricsTotalSummaryPostParametersTimeTick":{"type":"string","enum":["minute","hour","day"],"default":"hour","title":"ApiDashboardCacheHitMetricsTotalSummaryPostParametersTimeTick"},"Dashboard_getLifetimeCacheHitTotals_Response_200":{"type":"object","properties":{"summary":{"$ref":"#/components/schemas/DashboardCacheHitSummary"}},"required":["summary"],"title":"Dashboard_getLifetimeCacheHitTotals_Response_200"},"ApiDashboardEvalResultsPostParametersSummaryType":{"type":"string","enum":["daily","weekly","monthly","quarterly","yearly","last_24h","all"],"default":"all","title":"ApiDashboardEvalResultsPostParametersSummaryType"},"ApiDashboardEvalResultsPostParametersTimeTick":{"type":"string","enum":["minute","hour","day"],"default":"hour","title":"ApiDashboardEvalResultsPostParametersTimeTick"},"DashboardDynamicSeriesBucket":{"type":"object","properties":{"date_group":{"type":"string","format":"date-time"}},"required":["date_group"],"title":"DashboardDynamicSeriesBucket"},"Dashboard_listEvalResults_Response_200":{"type":"object","properties":{"number_of_requests":{"type":"array","items":{"$ref":"#/components/schemas/DashboardDynamicSeriesBucket"}},"avg_primary_score":{"type":"array","items":{"$ref":"#/components/schemas/DashboardDynamicSeriesBucket"}},"total_cost":{"type":"array","items":{"$ref":"#/components/schemas/DashboardDynamicSeriesBucket"}}},"required":["number_of_requests","avg_primary_score","total_cost"],"title":"Dashboard_listEvalResults_Response_200"},"ApiDashboardEvalResultsSummaryPostParametersSummaryType":{"type":"string","enum":["daily","weekly","monthly","quarterly","yearly","last_24h","all"],"default":"all","title":"ApiDashboardEvalResultsSummaryPostParametersSummaryType"},"ApiDashboardEvalResultsSummaryPostParametersTimeTick":{"type":"string","enum":["minute","hour","day"],"default":"hour","title":"ApiDashboardEvalResultsSummaryPostParametersTimeTick"},"ApiDashboardEvalResultsSummaryPostResponsesContentApplicationJsonSchemaItems0":{"type":"object","properties":{"date_group":{"type":"string"},"evaluator_id":{"type":"string"},"evaluator_name":{"type":"string"},"number_of_requests":{"type":"integer"},"avg_primary_score":{"type":["number","null"],"format":"double"}},"required":["date_group","evaluator_id","evaluator_name","number_of_requests","avg_primary_score"],"title":"ApiDashboardEvalResultsSummaryPostResponsesContentApplicationJsonSchemaItems0"},"ApiDashboardEvalResultsSummaryPostResponsesContentApplicationJsonSchemaItems1":{"type":"object","properties":{"date_group":{"type":"string"},"automation_name":{"type":"string"},"number_of_requests":{"type":"integer"},"avg_primary_score":{"type":["number","null"],"format":"double"},"total_cost":{"type":["number","null"],"format":"double"}},"required":["date_group","automation_name","number_of_requests","avg_primary_score","total_cost"],"title":"ApiDashboardEvalResultsSummaryPostResponsesContentApplicationJsonSchemaItems1"},"ApiDashboardEvalResultsSummaryPostResponsesContentApplicationJsonSchemaItems":{"oneOf":[{"$ref":"#/components/schemas/ApiDashboardEvalResultsSummaryPostResponsesContentApplicationJsonSchemaItems0"},{"$ref":"#/components/schemas/ApiDashboardEvalResultsSummaryPostResponsesContentApplicationJsonSchemaItems1"}],"title":"ApiDashboardEvalResultsSummaryPostResponsesContentApplicationJsonSchemaItems"},"ApiDashboardStorageVolumeGetParametersSummaryType":{"type":"string","enum":["daily","weekly","monthly","quarterly","yearly","last_24h","all"],"default":"all","title":"ApiDashboardStorageVolumeGetParametersSummaryType"},"DashboardStorageRow":{"type":"object","properties":{"date_group":{"type":"string","format":"date-time"},"total_bytes":{"type":"integer"},"object_count":{"type":"integer"},"standard_bytes":{"type":"integer"},"glacier_ir_bytes":{"type":"integer"},"deep_archive_bytes":{"type":"integer"}},"title":"DashboardStorageRow"},"Dashboard_listStorageVolume_Response_200":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DashboardStorageRow"}}},"required":["data"],"title":"Dashboard_listStorageVolume_Response_200"},"ApiDashboardStorageVolumeSummaryGetParametersSummaryType":{"type":"string","enum":["daily","weekly","monthly","quarterly","yearly","last_24h","all"],"default":"all","title":"ApiDashboardStorageVolumeSummaryGetParametersSummaryType"},"DashboardStorageSummary":{"type":"object","properties":{"total_bytes":{"type":"integer"},"object_count":{"type":"integer"},"standard_bytes":{"type":"integer"},"glacier_ir_bytes":{"type":"integer"},"deep_archive_bytes":{"type":"integer"}},"title":"DashboardStorageSummary"},"Dashboard_getStorageVolumeSummary_Response_200":{"type":"object","properties":{"summary":{"$ref":"#/components/schemas/DashboardStorageSummary"}},"required":["summary"],"title":"Dashboard_getStorageVolumeSummary_Response_200"},"ApiPlatformStatsGetParametersBreakdownBy":{"type":"string","enum":["model","provider"],"default":"model","title":"ApiPlatformStatsGetParametersBreakdownBy"},"PlatformStatsResponseTotalTokensItems":{"type":"object","properties":{"date_group":{"type":"string","format":"date","description":"Week start (Monday)."}},"title":"PlatformStatsResponseTotalTokensItems"},"PlatformStatsResponseTotalCostItems":{"type":"object","properties":{"date_group":{"type":"string","format":"date","description":"Week start (Monday)."}},"title":"PlatformStatsResponseTotalCostItems"},"PlatformStatsResponse":{"type":"object","properties":{"total_tokens":{"type":"array","items":{"$ref":"#/components/schemas/PlatformStatsResponseTotalTokensItems"}},"total_cost":{"type":"array","items":{"$ref":"#/components/schemas/PlatformStatsResponseTotalCostItems"}}},"description":"Public platform-wide weekly token usage and cost, with top series plus an Others bucket. Covers 52 weeks and is cached for one hour.","title":"PlatformStatsResponse"},"ApiCachesPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{},"description":"Filter criteria using the standard Respan filter format.","title":"ApiCachesPostRequestBodyContentApplicationJsonSchemaFilters"},"ApiCachesPostResponsesContentApplicationJsonSchemaSummary":{"type":"object","properties":{"total_cost":{"type":"number","format":"double","description":"Estimated total cost saved by cache hits in the current organization."},"total_hit_count":{"type":"integer","description":"Total number of cache hits recorded for the current organization."},"total_tokens":{"type":"integer","description":"Estimated total tokens saved by cache hits."},"total_time":{"type":"number","format":"double","description":"Estimated total latency saved in seconds."}},"required":["total_cost","total_hit_count","total_tokens","total_time"],"title":"ApiCachesPostResponsesContentApplicationJsonSchemaSummary"},"ApiCachesPostResponsesContentApplicationJsonSchemaDataCurrentFilters":{"type":"object","properties":{},"description":"Normalized filter state returned by the paginator when filters are applied.","title":"ApiCachesPostResponsesContentApplicationJsonSchemaDataCurrentFilters"},"ApiCachesPostResponsesContentApplicationJsonSchemaDataResultsItems":{"type":"object","properties":{"id":{"type":"integer","description":"Internal numeric ID. Present only for dashboard-JWT responses."},"cache_key":{"type":"string","description":"Unique cache key for this cached response."},"prompt_content":{"type":"string","description":"Prompt text extracted from the cached request."},"response_content":{"type":"string","description":"Response text extracted from the cached response."},"hit_count":{"type":"integer","description":"Live cache hit count enriched from ClickHouse. Defaults to 0 if unavailable."},"timestamp":{"type":"string","format":"date-time","description":"When the cache entry was created."},"updated_at":{"type":"string","format":"date-time","description":"When the cache entry was last updated."},"expiry_date":{"type":["string","null"],"format":"date-time","description":"When the cache entry expires. `null` means no expiry date is set."}},"required":["cache_key","prompt_content","response_content","hit_count","timestamp","updated_at"],"title":"ApiCachesPostResponsesContentApplicationJsonSchemaDataResultsItems"},"ApiCachesPostResponsesContentApplicationJsonSchemaData":{"type":"object","properties":{"count":{"type":"integer","description":"Number of cache entries returned on this page."},"next":{"type":["string","null"],"description":"URL for the next page, if any."},"previous":{"type":["string","null"],"description":"URL for the previous page, if any."},"current_filters":{"$ref":"#/components/schemas/ApiCachesPostResponsesContentApplicationJsonSchemaDataCurrentFilters","description":"Normalized filter state returned by the paginator when filters are applied."},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiCachesPostResponsesContentApplicationJsonSchemaDataResultsItems"},"description":"Cached response entries for the current page."}},"required":["count","results"],"title":"ApiCachesPostResponsesContentApplicationJsonSchemaData"},"Caches_filterCachedResponses_Response_200":{"type":"object","properties":{"summary":{"$ref":"#/components/schemas/ApiCachesPostResponsesContentApplicationJsonSchemaSummary"},"data":{"$ref":"#/components/schemas/ApiCachesPostResponsesContentApplicationJsonSchemaData"}},"required":["summary","data"],"title":"Caches_filterCachedResponses_Response_200"},"FilterCachedResponsesRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"FilterCachedResponsesRequestBadRequestError"},"FilterCachedResponsesRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"FilterCachedResponsesRequestUnauthorizedError"},"ApiCachesSummaryPostRequestBodyContentApplicationJsonSchemaFilters":{"type":"object","properties":{},"description":"Filter criteria using the standard Respan filter format.","title":"ApiCachesSummaryPostRequestBodyContentApplicationJsonSchemaFilters"},"Caches_getFilteredCachedResponsesSummary_Response_200":{"type":"object","properties":{"total_count":{"type":"integer","description":"Total number of cached responses that match the query."}},"required":["total_count"],"title":"Caches_getFilteredCachedResponsesSummary_Response_200"},"GetFilteredCachedResponsesSummaryRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"GetFilteredCachedResponsesSummaryRequestBadRequestError"},"GetFilteredCachedResponsesSummaryRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"GetFilteredCachedResponsesSummaryRequestUnauthorizedError"},"BulkDeleteCachedResponsesRequestUnprocessableEntityError":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"],"title":"BulkDeleteCachedResponsesRequestUnprocessableEntityError"},"BulkDeleteCachedResponsesRequestTooManyRequestsError":{"type":"object","properties":{"detail":{"type":"string"},"retry_after":{"type":"integer","minimum":0,"description":"Seconds to wait before retrying."}},"required":["detail"],"title":"BulkDeleteCachedResponsesRequestTooManyRequestsError"},"ApiCachesCacheKeyGetResponsesContentApplicationJsonSchemaPromptMessagesItems":{"type":"object","properties":{},"title":"ApiCachesCacheKeyGetResponsesContentApplicationJsonSchemaPromptMessagesItems"},"ApiCachesCacheKeyGetResponsesContentApplicationJsonSchemaFullResponse":{"type":"object","properties":{},"description":"Full cached provider response object.","title":"ApiCachesCacheKeyGetResponsesContentApplicationJsonSchemaFullResponse"},"Caches_api_caches_retrieve_Response_200":{"type":"object","properties":{"id":{"type":"integer","description":"Internal numeric ID. Present only for dashboard-JWT responses."},"cache_key":{"type":"string","description":"Organization-scoped public cache key."},"prompt_content":{"type":"string","description":"Prompt text extracted from the cached request."},"response_content":{"type":"string","description":"Response text extracted from the cached response."},"request_content":{"type":"string","description":"Stored request text preview. The current backend serializer truncates this field to roughly the first 100 characters."},"prompt_messages":{"type":"array","items":{"$ref":"#/components/schemas/ApiCachesCacheKeyGetResponsesContentApplicationJsonSchemaPromptMessagesItems"},"description":"Original prompt message array stored with the cache entry."},"full_response":{"$ref":"#/components/schemas/ApiCachesCacheKeyGetResponsesContentApplicationJsonSchemaFullResponse","description":"Full cached provider response object."},"hit_count":{"type":"integer","description":"Live cache hit count enriched from ClickHouse."},"response_time":{"type":"number","format":"double","description":"Stored response time for the cached entry, in seconds."},"timestamp":{"type":"string","format":"date-time","description":"When the cache entry was created."},"updated_at":{"type":"string","format":"date-time","description":"When the cache entry was last updated."},"expiry_date":{"type":["string","null"],"format":"date-time","description":"When the cache entry expires. `null` means no expiry date is set."}},"required":["cache_key","prompt_content","response_content","hit_count","timestamp","updated_at"],"title":"Caches_api_caches_retrieve_Response_200"},"Api_caches_retrieveRequestUnauthorizedError":{"type":"object","properties":{"error":{"type":"string"}},"title":"Api_caches_retrieveRequestUnauthorizedError"},"Api_caches_retrieveRequestNotFoundError":{"type":"object","properties":{"error":{"type":"string"}},"title":"Api_caches_retrieveRequestNotFoundError"},"ApiCachesCacheKeyPatchResponsesContentApplicationJsonSchemaPromptMessagesItems":{"type":"object","properties":{},"title":"ApiCachesCacheKeyPatchResponsesContentApplicationJsonSchemaPromptMessagesItems"},"ApiCachesCacheKeyPatchResponsesContentApplicationJsonSchemaFullResponse":{"type":"object","properties":{},"description":"Full cached provider response object.","title":"ApiCachesCacheKeyPatchResponsesContentApplicationJsonSchemaFullResponse"},"Caches_api_caches_partial_update_2_Response_200":{"type":"object","properties":{"id":{"type":"integer","description":"Internal numeric ID. Present only for dashboard-JWT responses."},"cache_key":{"type":"string","description":"Organization-scoped public cache key."},"prompt_content":{"type":"string","description":"Prompt text extracted from the cached request."},"response_content":{"type":"string","description":"Response text extracted from the cached response."},"request_content":{"type":"string","description":"Stored request text preview. The current backend serializer truncates this field to roughly the first 100 characters."},"prompt_messages":{"type":"array","items":{"$ref":"#/components/schemas/ApiCachesCacheKeyPatchResponsesContentApplicationJsonSchemaPromptMessagesItems"},"description":"Original prompt message array stored with the cache entry."},"full_response":{"$ref":"#/components/schemas/ApiCachesCacheKeyPatchResponsesContentApplicationJsonSchemaFullResponse","description":"Full cached provider response object."},"hit_count":{"type":"integer","description":"Live cache hit count enriched from ClickHouse."},"response_time":{"type":"number","format":"double","description":"Stored response time for the cached entry, in seconds."},"timestamp":{"type":"string","format":"date-time","description":"When the cache entry was created."},"updated_at":{"type":"string","format":"date-time","description":"When the cache entry was last updated."},"expiry_date":{"type":["string","null"],"format":"date-time","description":"When the cache entry expires. `null` means no expiry date is set."}},"required":["cache_key","prompt_content","response_content","hit_count","timestamp","updated_at"],"title":"Caches_api_caches_partial_update_2_Response_200"},"ApiGoogleSdkTypeV1BetaModelsModelNameRenderFormatPostParametersSdkType":{"type":"string","enum":["gemini","vertexai"],"title":"ApiGoogleSdkTypeV1BetaModelsModelNameRenderFormatPostParametersSdkType"},"ApiGoogleSdkTypeV1BetaModelsModelNameRenderFormatPostParametersRenderFormat":{"type":"string","enum":["generateContent","streamGenerateContent"],"title":"ApiGoogleSdkTypeV1BetaModelsModelNameRenderFormatPostParametersRenderFormat"}},"securitySchemes":{"RespanApiKey":{"type":"http","scheme":"bearer","description":"Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field."},"DashboardJwt":{"type":"http","scheme":"bearer","description":"Use a dashboard JWT only for dashboard-authenticated endpoints. Respan API-key endpoints use the respanApiKey auth field instead."},"RespanRawAuthorization":{"type":"apiKey","in":"header","name":"Authorization","description":"Raw Respan API key for native AssemblyAI SDK compatibility. Do not prepend `Bearer` for this operation."}}}}