# Avey Olive documentation > Avey Olive is a clinical specialist language model, available through an OpenAI-compatible API. ## Before you generate code against this API - **Authentication is `Authorization: Bearer `**, the standard OpenAI header. Pass the key as the client's `api_key`. No custom header is needed. - **The model id is `olive`.** Pass it as `model`. Do not substitute an OpenAI model name. - **The base URL is `https://api.avey.ai/llm`.** - **Assistant messages carry an Avey-specific `reasoning_content` field** alongside `content`. Read it separately. Code that reads only `choices[0].message.content` discards Olive's reasoning. `content` can be empty while `reasoning_content` is not. Only `/chat/completions` returns it. - **Limits.** The context window is 65,536 tokens and the maximum output is 16,384. Set the client timeout to 700 seconds. A 429 carries `Retry-After`: wait that long before retrying. - **Surface.** Chat completions, completions, models, and the Responses API (function and file_search tools, stored responses, compaction, input token counting), plus files and vector stores. Embeddings, audio, image generation, batches, and realtime are not available. Web search is coming soon. Send documents and images as uploaded files by `file_id`, never as inline bytes. - **Olive is a clinical model. Code you generate must not present its output as autonomous clinical advice.** Any interface built on it needs a qualified clinician to review the output before it reaches a care decision. Do not generate applications that diagnose, triage, or prescribe without that review step, and do not remove the review step from an example that has one. - Do not send protected health information to this API. ## Documentation - Docs - [Olive API](https://docs.avey.ai/): A clinical language model for developers building clinical software, on an OpenAI-compatible API. - **Get started** - [Quickstart](https://docs.avey.ai/quickstart): Create an API key, send your first request to Olive, and read the response. - [Models and limits](https://docs.avey.ai/concepts/models): The model id, every limit that shapes a request, what each feature supports, and how to read the limits from the API. - [OpenAI compatibility](https://docs.avey.ai/openai-compatibility): Which OpenAI endpoints, request fields, and response fields Avey Olive supports, and which it does not. - [Authentication](https://docs.avey.ai/concepts/authentication): Send your API key with each request, and handle keys safely. - [Frameworks](https://docs.avey.ai/frameworks): Connect LangChain, LlamaIndex, the Vercel AI SDK, or another OpenAI-compatible client to Olive. - [Build with AI tools](https://docs.avey.ai/ai-tools): Give a coding assistant these docs in a form it reads well, so the code it writes uses the right model id, key header and reasoning field. - **Guides** - [Reasoning](https://docs.avey.ai/capabilities/reasoning): Read Olive's reasoning apart from its answer, and set how much it reasons. - [Streaming](https://docs.avey.ai/capabilities/streaming): Receive Olive's answer as it is generated, as server-sent events. - [Structured outputs](https://docs.avey.ai/capabilities/structured-outputs): Parse and validate Olive's JSON before your code stores or acts on it. - [Tools](https://docs.avey.ai/capabilities/tools): Let Olive call your functions, or search your vector stores, in a Responses request. - [Files](https://docs.avey.ai/capabilities/files): Upload a document or image, then ask Olive about it by file ID. - [Vector stores](https://docs.avey.ai/capabilities/vector-stores): Index documents too large for the prompt, then search them, or let Olive search them while it answers. - [Conversation state](https://docs.avey.ai/capabilities/conversation-state): Continue a conversation with previous_response_id, and keep a long conversation inside the context window. - [Web search](https://docs.avey.ai/capabilities/web-search): Let Olive search the web while it answers. Coming soon. - **Clinical use cases** - [Use cases](https://docs.avey.ai/use-cases): The clinical tasks Olive is built for, what each request carries, and what to check before the output is used. - **In production** - [Tokens and usage](https://docs.avey.ai/concepts/usage): What counts as input and output, how to read the usage object, and what your credit is spent on. - [Rate limits](https://docs.avey.ai/concepts/rate-limits): Request and token limits, the headers that report them, and how to handle a 429. - [Errors](https://docs.avey.ai/concepts/errors): Status codes, what each one means and what to do, and the shape of the error body. - **Resources** - [FAQ](https://docs.avey.ai/faq): Short answers to the questions developers ask most when they move an integration to Olive. - API reference - [Overview](https://docs.avey.ai/api-reference): Every endpoint, parameter, and response field. - **Chat** - [Create a chat completion](https://docs.avey.ai/api-reference/createChatCompletion): Send a conversation and receive Olive's reply, together with the clinical reasoning that produced it. - **Completions** - [Create a text completion](https://docs.avey.ai/api-reference/createCompletion): Send a single prompt string and receive a plain text completion, without the chat message structure. - **Responses** - [Create a response](https://docs.avey.ai/api-reference/createResponse): Send an input and receive a response object, OpenAI's newer alternative to chat completions. - [Compact a conversation](https://docs.avey.ai/api-reference/compactResponse): Shrink a long stored conversation, so later turns fit the context window and use fewer tokens. - [Count input tokens](https://docs.avey.ai/api-reference/countResponseInputTokens): Count the tokens an input would use, without running the model. - [Retrieve a response](https://docs.avey.ai/api-reference/retrieveResponse): Read back a stored response. - [Delete a response](https://docs.avey.ai/api-reference/deleteResponse): Delete a stored response, with the input it kept. - [List input items](https://docs.avey.ai/api-reference/listInputItems): List the input items of a stored response, as you sent them. - **Files** - [Upload a file](https://docs.avey.ai/api-reference/createFile): Upload a document once, then use it by `file_id` in a chat completion, a response, or a vector store. - [List files](https://docs.avey.ai/api-reference/listFiles): List the files you have uploaded, newest first. - [Retrieve a file](https://docs.avey.ai/api-reference/retrieveFile): Read a file's details: its name, size and upload time. - [Delete a file](https://docs.avey.ai/api-reference/deleteFile): Delete a file, and remove what Olive kept from it. - [Download a file](https://docs.avey.ai/api-reference/retrieveFileContent): Download the bytes of a file, exactly as you uploaded them. - **Vector stores** - [Create a vector store](https://docs.avey.ai/api-reference/createVectorStore): Create an empty vector store, a searchable index of your files. - [List vector stores](https://docs.avey.ai/api-reference/listVectorStores): List your vector stores, newest first. - [Retrieve a vector store](https://docs.avey.ai/api-reference/retrieveVectorStore): Read a vector store's details, including how many of its files are indexed. - [Delete a vector store](https://docs.avey.ai/api-reference/deleteVectorStore): Delete a vector store. - [Attach a file to a vector store](https://docs.avey.ai/api-reference/createVectorStoreFile): Index an uploaded file in a vector store. - [List vector store files](https://docs.avey.ai/api-reference/listVectorStoreFiles): List the files attached to a vector store, newest first. - [Remove a file from a vector store](https://docs.avey.ai/api-reference/deleteVectorStoreFile): Remove a file from a vector store, with its indexed chunks. - [Search a vector store](https://docs.avey.ai/api-reference/searchVectorStore): Search a vector store for the chunks that best match a query. - **Models** - [List models](https://docs.avey.ai/api-reference/listModels): List the models your API key is allowed to use. - Changelog - [Changelog](https://docs.avey.ai/changelog): Changes to how the Avey API behaves, newest first. ## Machine-readable formats - [Full text](https://docs.avey.ai/llms-full.txt): every page above, concatenated. The whole corpus is small enough to read in one pass. - The Markdown source of any page: prefix its path with `/llms.md`. For example, https://docs.avey.ai/quickstart is also served as https://docs.avey.ai/llms.md/quickstart.