Poolside Models API
Lists the models available on a given Poolside deployment (GET /openai/v1/models), returning id, owned_by, and created fields per model in an OpenAI-compatible page format.
Lists the models available on a given Poolside deployment (GET /openai/v1/models), returning id, owned_by, and created fields per model in an OpenAI-compatible page format.
{
"components": {
"schemas": {
"ChatCompletion": {
"additionalProperties": true,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/openai/schemas/ChatCompletion.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"choices": {
"description": "A list of chat completions from the model.",
"items": {
"$ref": "#/components/schemas/ChatCompletionChoice"
},
"minItems": 1,
"type": "array"
},
"created": {
"description": "The Unix timestamp (in seconds) when the completion was created.",
"format": "int64",
"type": "integer"
},
"model": {
"description": "The model used for the chat completion.",
"type": "string"
},
"object": {
"description": "The object type 'chat.completion' or ''chat.completion.chunk'",
"type": "string"
},
"usage": {
"$ref": "#/components/schemas/CompletionUsage",
"description": "Usage statistics for the chat completion."
}
},
"required": [
"model",
"created",
"object",
"choices"
],
"type": "object"
},
"ChatCompletionChoice": {
"additionalProperties": true,
"properties": {
"delta": {
"$ref": "#/components/schemas/ChatCompletionMessage",
"description": "The chat completion message when streaming."
},
"finish_reason": {
"description": "The reason the model stopped generating tokens. 'stop' the model hit a stop point, 'length' the maximum number of tokens was reached, 'content_filter' content was avoided due to filtering.",
"type": "string"
},
"index": {
"description": "The index of the choice in the list of choices.",
"format": "int64",
"type": "integer"
},
"message": {
"$ref": "#/components/schemas/ChatCompletionMessage",
"description": "The chat completion message when not streaming."
}
},
"required": [
"index",
"finish_reason"
],
"type": "object"
},
"ChatCompletionMessage": {
"additionalProperties": true,
"properties": {
"content": {
"description": "The text content of the message. Can be either a string or an array of content parts."
},
"role": {
"description": "The role of the author of this message.",
"enum": [
"user",
"assistant",
"system",
"tool"
],
"type": "string"
},
"tool_call_id": {
"description": "Identifies the tool call this message relates to, used for 'tool' role messages",
"type": "string"
},
"tool_calls": {
"items": {
"$ref": "#/components/schemas/ToolCall"
},
"type": "array"
}
},
"type": "object"
},
"Completion": {
"additionalProperties": true,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/openai/schemas/Completion.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"choices": {
"description": "The list of completion choices.",
"items": {
"$ref": "#/components/schemas/CompletionChoice"
},
"type": "array"
},
"created": {
"description": "The Unix timestamp (in seconds) of when the completion was created.",
"format": "int64",
"type": "integer"
},
"model": {
"description": "The model used for the completion.",
"type": "string"
},
"object": {
"description": "The object type, which is always 'text_completion'.",
"type": "string"
},
"usage": {
"$ref": "#/components/schemas/CompletionUsage",
"description": "Usage statistics for the completion request."
}
},
"required": [
"object",
"created",
"model",
"choices"
],
"type": "object"
},
"CompletionChoice": {
"additionalProperties": true,
"properties": {
"finish_reason": {
"description": "The reason the model stopped generating tokens.",
"type": "string"
},
"index": {
"description": "The index of the choice in the list of choices.",
"format": "int64",
"type": "integer"
},
"text": {
"description": "The generated text.",
"type": "string"
}
},
"required": [
"text",
"index",
"finish_reason"
],
"type": "object"
},
"CompletionUsage": {
"additionalProperties": true,
"properties": {
"completion_tokens": {
"description": "Number of tokens in the completion.",
"format": "int64",
"type": "integer"
},
"prompt_tokens": {
"description": "Number of tokens in the prompt.",
"format": "int64",
"type": "integer"
},
"total_tokens": {
"description": "Total number of tokens used in the request 'prompt + completion'.",
"format": "int64",
"type": "integer"
}
},
"required": [
"completion_tokens",
"prompt_tokens",
"total_tokens"
],
"type": "object"
},
"CreateChatCompletionBody": {
"additionalProperties": true,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/openai/schemas/CreateChatCompletionBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"model": {
"description": "The model to use for the completion.",
"type": "string"
},
"stream": {
"description": "If true, the response will be streamed as a series of events instead of a single JSON object.",
"type": "boolean"
},
"stream_options": {
"$ref": "#/components/schemas/StreamOptions",
"description": "Options for streaming response. Only set this when you set stream: true."
}
},
"required": [
"model"
],
"type": "object"
},
"CreateCompletionBody": {
"additionalProperties": true,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/openai/schemas/CreateCompletionBody.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"cache_control": {
"additionalProperties": {},
"description": "Anthropic-style prompt-cache marker, forwarded verbatim to the upstream provider.",
"type": "object"
},
"include_stop_str_in_output": {
"description": "Whether to include the stop strings in output text. Defaults to false.",
"type": "boolean"
},
"max_completion_tokens": {
"description": "The maximum number of tokens to generate in the completion.",
"format": "int64",
"type": "integer"
},
"max_tokens": {
"description": "The maximum number of tokens to generate in the completion.",
"format": "int64",
"type": "integer"
},
"min_p": {
"description": "Sets a minimum probability threshold relative to the most likely token.",
"format": "double",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"model": {
"description": "The model to use for the completion.",
"type": "string"
},
"prompt": {
"description": "The prompt to generate completions for.",
"type": "string"
},
"return_tokens_as_token_ids": {
"description": "Whether to return the generated tokens as token IDs instead of text. Defaults to false.",
"type": "boolean"
},
"seed": {
"description": "If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed.",
"format": "int64",
"type": "integer"
},
"skip_special_tokens": {
"description": "Whether to skip special tokens in the output.",
"type": "boolean"
},
"stop": {
"description": "An array of sequences where the API will stop generating further tokens.",
"items": {
"type": "string"
},
"type": "array"
},
"stream": {
"description": "If true, the response will be streamed as a series of events instead of a single JSON object.",
"type": "boolean"
},
"stream_options": {
"$ref": "#/components/schemas/StreamOptions",
"description": "Options for streaming response. Only set this when you set stream: true."
},
"temperature": {
"description": "What sampling temperature to use, between 0 and 2.",
"format": "double",
"maximum": 2,
"minimum": 0,
"type": "number"
},
"top_k": {
"description": "Limits the model to consider only the top K most likely tokens at each step.",
"format": "int64",
"type": "integer"
},
"top_p": {
"description": "An alternative to sampling with temperature, called nucleus sampling.",
"exclusiveMinimum": 0,
"format": "double",
"maximum": 1,
"type": "number"
}
},
"required": [
"prompt",
"model"
],
"type": "object"
},
"ErrorDetail": {
"additionalProperties": true,
"properties": {
"location": {
"description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
"type": "string"
},
"message": {
"description": "Error message text",
"type": "string"
},
"value": {
"description": "The value at the given location"
}
},
"type": "object"
},
"ErrorModel": {
"additionalProperties": true,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/openai/schemas/ErrorModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"$ref": "#/components/schemas/ErrorDetail"
},
"type": "array"
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
},
"FunctionCall": {
"additionalProperties": true,
"properties": {
"arguments": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"name",
"arguments"
],
"type": "object"
},
"Model": {
"additionalProperties": true,
"properties": {
"created": {
"description": "The Unix timestamp (in seconds) when the model was created.",
"format": "int64",
"type": "integer"
},
"id": {
"description": "The model identifier.",
"type": "string"
},
"object": {
"enum": [
"model"
],
"type": "string"
},
"owned_by": {
"enum": [
"system"
],
"type": "string"
}
},
"required": [
"id",
"created",
"owned_by",
"object"
],
"type": "object"
},
"PageListModel": {
"additionalProperties": true,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/openai/schemas/PageListModel.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"data": {
"items": {
"$ref": "#/components/schemas/Model"
},
"type": "array"
},
"object": {
"type": "string"
}
},
"required": [
"data",
"object"
],
"type": "object"
},
"StreamOptions": {
"additionalProperties": true,
"properties": {
"include_usage": {
"description": "Whether to include usage statistics in the stream response.",
"type": "boolean"
}
},
"type": "object"
},
"ToolCall": {
"additionalProperties": true,
"properties": {
"function": {
"$ref": "#/components/schemas/FunctionCall"
},
"id": {
"description": "The ID of the tool call.",
"type": "string"
},
"type": {
"enum": [
"function"
],
"type": "string"
}
},
"required": [
"type",
"function"
],
"type": "object"
},
"V1PromptModelError": {
"additionalProperties": true,
"properties": {
"$schema": {
"description": "A URL to the JSON Schema for this object.",
"examples": [
"https://example.com/openai/schemas/V1PromptModelError.json"
],
"format": "uri",
"readOnly": true,
"type": "string"
},
"code": {
"enum": [
"max-tokens-exceeded",
"model-not-found"
],
"type": "string"
},
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"examples": [
"Property foo is required but is missing."
],
"type": "string"
},
"errors": {
"description": "Optional list of individual error details",
"items": {
"$ref": "#/components/schemas/ErrorDetail"
},
"type": "array"
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem.",
"examples": [
"https://example.com/error-log/abc123"
],
"format": "uri",
"type": "string"
},
"status": {
"description": "HTTP status code",
"examples": [
400
],
"format": "int64",
"type": "integer"
},
"title": {
"description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
"examples": [
"Bad Request"
],
"type": "string"
},
"type": {
"default": "about:blank",
"description": "A URI reference to human-readable documentation for the error.",
"examples": [
"https://example.com/errors/example"
],
"format": "uri",
"type": "string"
}
},
"type": "object"
}
},
"securitySchemes": {
"bearerAuth": {
"scheme": "bearer",
"type": "http"
}
}
},
"info": {
"title": "OpenAI Compatible API",
"version": "1.0.0"
},
"openapi": "3.1.0",
"paths": {
"/openai/v1/chat/completions": {
"post": {
"description": "Generates a response based on a list of messages sent by the user to the model. The list of messages may include system messages, user messages, and assistant messages.<br/><br/>This endpoint allows other tools in the developer ecosystem to leverage poolside as a drop-in replacement for other models.",
"operationId": "create-chat-completion",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateChatCompletionBody"
}
},
"application/octet-stream": {
"schema": {
"contentMediaType": "application/octet-stream",
"format": "binary",
"type": "string"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChatCompletion"
}
},
"text/event-stream": {
"schema": {
"description": "Server-Sent Events stream.",
"items": {
"properties": {
"data": {
"$ref": "#/components/schemas/ChatCompletion"
}
},
"required": [
"data"
],
"type": "object"
},
"title": "Server Sent Events",
"type": "array"
}
}
},
"description": "Successful response - JSON when stream=false, SSE when stream=true"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/V1PromptModelError"
}
}
},
"description": "Bad Request"
}
},
"security": [
{
"bearerAuth": []
}
],
"summary": "Create chat completion",
"tags": [
"chat"
]
}
},
"/openai/v1/completions": {
"post": {
"deprecated": true,
"description": "Get a completion along with the probabilities of alternative tokens at each position. This endpoint is not recommended for new use cases and is maintained for legacy compatibility only.<br/><br/>Use <i>/chat/completions</i> instead for the best and newest models.",
"operationId": "create-completion",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateCompletionBody"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Completion"
}
},
"text/event-stream": {
"schema": {
"description": "Server-Sent Events stream.",
"items": {
"properties": {
"data": {
"$ref": "#/components/schemas/Completion"
}
},
"required": [
"data"
],
"type": "object"
},
"title": "Server Sent Events",
"type": "array"
}
}
},
"description": "Successful response - JSON when stream=false, SSE when stream=true"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/V1PromptModelError"
}
}
},
"description": "Bad Request"
}
},
"security": [
{
"bearerAuth": []
}
],
"summary": "Create completion",
"tags": [
"chat"
]
}
},
"/openai/v1/models": {
"get": {
"operationId": "list-models",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PageListModel"
}
}
},
"description": "OK"
},
"default": {
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ErrorModel"
}
}
},
"description": "Error"
}
},
"security": [
{
"bearerAuth": []
}
],
"summary": "List models",
"tags": [
"models"
]
}
}
}
}