Messages (Anthropic)
POST /v1/messagesAccepts requests in the Anthropic Messages API format. Requests are translated to the internal OpenAI-compatible format, processed, and the response is translated back to the Anthropic format before returning.
This lets you use the Anthropic SDK with ai& without changing your code.
from anthropic import Anthropic
client = Anthropic( api_key="sk-your-api-key", base_url="https://api.aiand.com/v1",)
message = client.messages.create( model="openai/gpt-oss-120b", max_tokens=1024, messages=[{"role": "user", "content": "Hello!"}],)
print(message.content[0].text)import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ apiKey: "sk-your-api-key", baseURL: "https://api.aiand.com/v1",});
const message = await client.messages.create({ model: "openai/gpt-oss-120b", max_tokens: 1024, messages: [{ role: "user", content: "Hello!" }],});
console.log(message.content[0].text);How it works
Section titled “How it works”- Your request arrives in Anthropic Messages format
- ai& translates it to OpenAI format and runs inference
- The response is translated back to Anthropic format
Streaming is supported. Authentication uses the same Authorization: Bearer header as all other endpoints.
Supported parameters
Section titled “Supported parameters”Standard Anthropic Messages API parameters are accepted. Parameters with no equivalent in the underlying model are silently ignored.
Image input
Section titled “Image input”Image content blocks are supported on vision-capable models. All three Anthropic source types work — base64, url, and file (referencing a file_id from POST /v1/files). See Anthropic’s content blocks docs for the wire format. Requests against models without the vision capability are rejected with 400 invalid_request_error before inference.