Together.ai
Learn how to use Together.ai's models with the AI SDK.
The Together.ai provider contains support for 200+ open-source models through the Together.ai API.
Setup
The Together.ai provider is available via the @ai-sdk/togetherai module. You can
install it with
$ pnpm add @ai-sdk/togetherai
$ npm install @ai-sdk/togetherai
$ yarn add @ai-sdk/togetherai
$ bun add @ai-sdk/togetherai
Provider Instance
You can import the default provider instance togetherai from @ai-sdk/togetherai:
If you need a customized setup, you can import createTogetherAI from @ai-sdk/togetherai
and create a provider instance with your settings:
You can use the following optional settings to customize the Together.ai provider instance:
-
baseURL string
Use a different URL prefix for API calls, e.g. to use proxy servers. The default prefix is
https://api.together.xyz/v1. -
apiKey string
API key that is being sent using the
Authorizationheader. It defaults to theTOGETHER_API_KEYenvironment variable. -
headers Record<string,string>
Custom headers to include in the requests.
-
fetch (input: RequestInfo, init?: RequestInit) => Promise<Response>
Custom fetch implementation. Defaults to the global
fetchfunction. You can use it as a middleware to intercept requests, or to provide a custom fetch implementation for e.g. testing.
Language Models
You can create Together.ai models using a provider instance. The first argument is the model id, e.g. google/gemma-2-9b-it.
Reasoning Models
Together.ai exposes the thinking of deepseek-ai/DeepSeek-R1 in the generated text using the <think> tag.
You can use the extractReasoningMiddleware to extract this reasoning and expose it as a reasoning property on the result:
You can then use that enhanced model in functions like generateText and streamText.
Example
You can use Together.ai language models to generate text with the generateText function:
Together.ai language models can also be used in the streamText function
(see AI SDK Core).
The Together.ai provider also supports completion models via (following the above example code) togetherai.completionModel() and embedding models via togetherai.embeddingModel().
Model Capabilities
| Model | Image Input | Object Generation | Tool Usage | Tool Streaming |
|---|---|---|---|---|
moonshotai/Kimi-K2.5 | ||||
Qwen/Qwen3.5-397B-A17B | ||||
MiniMaxAI/MiniMax-M2.5 | ||||
zai-org/GLM-5 | ||||
deepseek-ai/DeepSeek-V3.1 | ||||
openai/gpt-oss-120b | ||||
openai/gpt-oss-20b | ||||
meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8 |
The table above lists popular models. Please see the Together.ai docs for a full list of available models. You can also pass any available provider model ID as a string if needed.
Image Models
You can create Together.ai image models using the .image() factory method.
For more on image generation with the AI SDK see generateImage().
You can pass optional provider-specific request parameters using the providerOptions argument.
The following provider options are available:
-
steps number
Number of generation steps. Higher values can improve quality.
-
guidance number
Guidance scale for image generation.
-
negative_prompt string
Negative prompt to guide what to avoid.
-
disable_safety_checker boolean
Disable the safety checker for image generation. When true, the API will not reject images flagged as potentially NSFW. Not available for Flux Schnell Free and Flux Pro models.
Image Editing
Together AI supports image editing through FLUX Kontext models. Pass input images via prompt.images to transform or edit existing images.
Together AI does not support mask-based inpainting. Instead, use descriptive prompts to specify what you want to change in the image.
Basic Image Editing
Transform an existing image using text prompts:
Editing with URL Reference
You can also pass image URLs directly:
Input images can be provided as Buffer, ArrayBuffer, Uint8Array,
base64-encoded strings, or URLs. Together AI only supports a single input
image per request.
Supported Image Editing Models
| Model | Description |
|---|---|
black-forest-labs/FLUX.1-kontext-pro | Production quality, balanced speed |
black-forest-labs/FLUX.1-kontext-max | Maximum image fidelity |
black-forest-labs/FLUX.1-kontext-dev | Development and experimentation |
black-forest-labs/FLUX.2-pro | High fidelity single-image editing |
black-forest-labs/FLUX.2-flex | Single-image editing with adjustable steps and guidance |
supportsFileInputs reports true for these models and supportsMaskInputs
reports false. The provider sends the first standardized image input as
image_url. FLUX.2 Dev and google/gemini-3-pro-image require reference_images,
which this mapping does not send, so their standardized file-input capability is
false. Unrecognized model IDs report undefined (unknown), including IDs under
a known provider namespace.
Model Capabilities
Together.ai image models support various image dimensions that vary by model. Common sizes include 512x512, 768x768, and 1024x1024, with some models supporting up to 1792x1792. The default size is 1024x1024.
| Available Models |
|---|
stabilityai/stable-diffusion-xl-base-1.0 |
black-forest-labs/FLUX.1-dev |
black-forest-labs/FLUX.1-dev-lora |
black-forest-labs/FLUX.1-schnell |
black-forest-labs/FLUX.1-canny |
black-forest-labs/FLUX.1-depth |
black-forest-labs/FLUX.1-redux |
black-forest-labs/FLUX.1.1-pro |
black-forest-labs/FLUX.1-pro |
black-forest-labs/FLUX.1-schnell-Free |
black-forest-labs/FLUX.1-kontext-pro |
black-forest-labs/FLUX.1-kontext-max |
black-forest-labs/FLUX.1-kontext-dev |
Please see the Together.ai models page for a full list of available image models and their capabilities.
Embedding Models
You can create Together.ai embedding models using the .embeddingModel() factory method.
For more on embedding models with the AI SDK see embed().
Model Capabilities
| Model | Dimensions | Max Tokens |
|---|---|---|
BAAI/bge-large-en-v1.5 | 1024 | 512 |
Alibaba-NLP/gte-modernbert-base | 768 | 8192 |
intfloat/multilingual-e5-large-instruct | 1024 | 514 |
For a complete list of available embedding models, see the Together.ai models page.
Reranking Models
You can create Together.ai reranking models using the .reranking() factory method.
For more on reranking with the AI SDK see rerank().
Together.ai reranking models support additional provider options for object documents. You can specify which fields to use for ranking:
The following provider options are available:
-
rankFields string[]
Array of field names to use for ranking when documents are JSON objects. If not specified, all fields are used.
Model Capabilities
| Model |
|---|
mixedbread-ai/Mxbai-Rerank-Large-V2 |