Run Together AI chat, embeddings and images; manage fine-tunes, batches and endpoints.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Cancel a batch job that has not finished. Together: POST /batches/{id}/cancel.
The batch job id.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Cancel a batch job that has not finished. Together: POST /batches/{id}/cancel.
| Argument | Type | Description |
|---|---|---|
| batch_id* | string | The batch job id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"batch_id"
],
"properties": {
"batch_id": {
"type": "string",
"minLength": 1,
"description": "The batch job id."
}
}
}Cancel a running fine-tuning job. Cannot be resumed, but a new job can continue from its last checkpoint via from_checkpoint. Together: POST /fine-tunes/{id}/cancel.
| Argument | Type | Description |
|---|---|---|
| fine_tune_id* | string | The job id, e.g. ft-abc123. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"fine_tune_id"
],
"properties": {
"fine_tune_id": {
"type": "string",
"minLength": 1,
"description": "The job id, e.g. ft-abc123."
}
}
}Run a chat completion on a Together model (billed per token). Non-streaming. For a dedicated endpoint pass its `<project_slug>/<endpoint_slug>` as the model. Together: POST /chat/completions.
| Argument | Type | Description |
|---|---|---|
| seed | integer | Seed for reproducible sampling. |
| stop | array | Stop sequences. |
| model* | string | Model name, e.g. meta-llama/Llama-3.3-70B-Instruct-Turbo. |
| top_k | integer | |
| top_p | number | |
| messages* | array | The conversation so far. |
| max_tokens | integer | Maximum tokens to generate. |
| temperature | number | |
| reasoning_effort | string | Reasoning effort for reasoning models that support it. |
Start an asynchronous batch job over an uploaded JSONL input file (purpose batch-api), at a discount to real-time inference. Together: POST /batches.
| Argument | Type | Description |
|---|---|---|
| endpoint* | string | The API each line of the input file is sent to. |
| model_id | string | Model to process the requests with. |
| priority | integer | Processing priority. |
| input_file_id* | string | File id of the uploaded JSONL request file. |
| completion_window | string | Time window for completion, e.g. 24h. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input_file_id",
"endpoint"
],
"properties": {
"endpoint": {
"enum": [
"/v1/chat/completions",
"/v1/audio/transcriptions",
"/v1/audio/translations"
],
"type": "string",
"description": "The API each line of the input file is sent to."
},
"model_id": {
"type": "string",
"description": "Model to process the requests with."
},
"priority": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Processing priority."
},
"input_file_id": {
"type": "string",
"minLength": 1,
"description": "File id of the uploaded JSONL request file."
},
"completion_window": {
"type": "string",
"description": "Time window for completion, e.g. 24h."
}
}
}Generate vector embeddings for one or more texts (billed per token). Together: POST /embeddings.
| Argument | Type | Description |
|---|---|---|
| input* | any | A text, or a list of texts, to embed. |
| model* | string | Embedding model, e.g. BAAI/bge-large-en-v1.5. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"model",
"input"
],
"properties": {
"input": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
}
],
"description": "A text, or a list of texts, to embed."
},
"model": {
"type": "string",
"minLength": 1,
"description": "Embedding model, e.g. BAAI/bge-large-en-v1.5."
}
}
}Deploy a model on dedicated GPUs. The endpoint STARTS AUTOMATICALLY and bills per minute of uptime until stopped — set inactive_timeout to auto-stop it, and use together_list_hardware for valid hardware ids. Together: POST /endpoints.
| Argument | Type | Description |
|---|---|---|
| model* | string | The model to deploy. |
| state | string | Initial state. Pass STOPPED to create without starting (and without billing). |
| hardware* | string | Hardware id, e.g. 1x_nvidia_a100_80gb_sxm. |
| autoscaling* | object | Replica bounds for autoscaling. |
| display_name | string | Human-readable name. |
| inactive_timeout | integer | Minutes of inactivity before auto-stop; 0 disables it. |
| availability_zone | string | Availability zone, e.g. us-central-4b. |
| disable_speculative_decoding | boolean |
Start a fine-tuning job on an uploaded training file (billed per token processed). Stop it with together_cancel_fine_tune. Together: POST /fine-tunes.
| Argument | Type | Description |
|---|---|---|
| model* | string | Base model to fine-tune. |
| suffix | string | Suffix for the fine-tuned model's name (max 64 chars). |
| n_evals | integer | Evaluations on the validation set during training. |
| n_epochs | integer | Passes over the training data. |
| batch_size | any | Batch size, or 'max' (the default). |
| warmup_ratio | number | |
| learning_rate | number | |
| n_checkpoints | integer | Intermediate checkpoints to save. |
| training_file* | string | File id of an uploaded training file (purpose fine-tune). |
Generate images from a prompt (billed per image/megapixel). Returns image URLs by default rather than base64, to keep responses small. Together: POST /images/generations.
| Argument | Type | Description |
|---|---|---|
| n | integer | Number of images. |
| seed | integer | |
| model* | string | Image model, e.g. black-forest-labs/FLUX.1-schnell. |
| steps | integer | Number of generation steps. |
| width | integer | Width in pixels. |
| height | integer | Height in pixels. |
| prompt* | string | What to draw. |
| image_url | string | Input image URL, for models that support editing. |
| output_format | string | |
| guidance_scale | number |
Fetch one batch job: status (VALIDATING, IN_PROGRESS, COMPLETED, FAILED, EXPIRED, CANCELLED), progress, and the output_file_id / error_file_id once done. Together: GET /batches/{id}.
| Argument | Type | Description |
|---|---|---|
| batch_id* | string | The batch job id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"batch_id"
],
"properties": {
"batch_id": {
"type": "string",
"minLength": 1,
"description": "The batch job id."
}
}
}Fetch one dedicated endpoint: state, model, hardware, autoscaling bounds and display name. Together: GET /endpoints/{endpointId}.
| Argument | Type | Description |
|---|---|---|
| endpoint_id* | string | The endpoint id, e.g. endpoint-d23901de-.... |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"endpoint_id"
],
"properties": {
"endpoint_id": {
"type": "string",
"minLength": 1,
"description": "The endpoint id, e.g. endpoint-d23901de-...."
}
}
}Fetch one file's metadata, including its processing_status and validation_report (why a fine-tune training file was rejected). Together: GET /files/{id}.
| Argument | Type | Description |
|---|---|---|
| file_id* | string | The file id, e.g. file-abc123. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"minLength": 1,
"description": "The file id, e.g. file-abc123."
}
}
}Fetch one fine-tuning job: status, progress, hyperparameters, token counts, cost and the output model name. Together: GET /fine-tunes/{id}.
| Argument | Type | Description |
|---|---|---|
| fine_tune_id* | string | The job id, e.g. ft-abc123. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"fine_tune_id"
],
"properties": {
"fine_tune_id": {
"type": "string",
"minLength": 1,
"description": "The job id, e.g. ft-abc123."
}
}
}List batch inference jobs with status, progress, model and input/output/error file ids. Together: GET /batches.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List endpoints with model, owner and state (PENDING, STARTING, STARTED, STOPPING, STOPPED, ERROR). Use mine=true and type=dedicated to see what is running on your account and billing by the minute. Together: GET /endpoints.
| Argument | Type | Description |
|---|---|---|
| mine | boolean | Only endpoints owned by the caller. |
| type | string | Filter by endpoint type. |
| usage_type | string | Filter by usage type. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"mine": {
"type": "boolean",
"description": "Only endpoints owned by the caller."
},
"type": {
"enum": [
"dedicated",
"serverless"
],
"type": "string",
"description": "Filter by endpoint type."
},
"usage_type": {
"enum": [
"on-demand",
"reserved"
],
"type": "string",
"description": "Filter by usage type."
}
}
}List LLM-as-a-judge evaluation jobs (classify, score, compare) with status, parameters and results once completed. Together: GET /evaluation.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of jobs to return. |
| status | string | Filter by status: pending, queued, running, completed, error, user_error. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Maximum number of jobs to return."
},
"status": {
"type": "string",
"description": "Filter by status: pending, queued, running, completed, error, user_error."
}
}
}List uploaded data files (fine-tune, eval and batch-api inputs, plus job outputs) with size, type, purpose and validation status. Together: GET /files.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List the event log of one fine-tuning job (queued, started, checkpoint saved, epoch completed, errors). The first place to look when a job failed. Together: GET /fine-tunes/{id}/events.
| Argument | Type | Description |
|---|---|---|
| fine_tune_id* | string | The job id, e.g. ft-abc123. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"fine_tune_id"
],
"properties": {
"fine_tune_id": {
"type": "string",
"minLength": 1,
"description": "The job id, e.g. ft-abc123."
}
}
}List fine-tuning jobs with status, base model, output model name and training settings. Together: GET /fine-tunes.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List hardware configurations for dedicated endpoints with GPU type/count/memory and price in cents per minute. Pass a model to get only compatible configurations with live availability. Together: GET /hardware.
| Argument | Type | Description |
|---|---|---|
| model | string | Only hardware compatible with this model, with availability. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"model": {
"type": "string",
"description": "Only hardware compatible with this model, with availability."
}
}
}List Together's models with type (chat, language, code, image, embedding, moderation, rerank), context length, organization, license and per-token pricing. Together: GET /models.
| Argument | Type | Description |
|---|---|---|
| dedicated | boolean | Only return models that can run on dedicated endpoints. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"dedicated": {
"type": "boolean",
"description": "Only return models that can run on dedicated endpoints."
}
}
}Start a stopped dedicated endpoint. It bills per minute of uptime until stopped. Reversible with together_stop_endpoint. Together: PATCH /endpoints/{endpointId} with state=STARTED.
| Argument | Type | Description |
|---|---|---|
| endpoint_id* | string | The endpoint id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"endpoint_id"
],
"properties": {
"endpoint_id": {
"type": "string",
"minLength": 1,
"description": "The endpoint id."
}
}
}Stop a running dedicated endpoint, which stops its per-minute billing. Requests to it fail until it is started again. Together: PATCH /endpoints/{endpointId} with state=STOPPED.
| Argument | Type | Description |
|---|---|---|
| endpoint_id* | string | The endpoint id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"endpoint_id"
],
"properties": {
"endpoint_id": {
"type": "string",
"minLength": 1,
"description": "The endpoint id."
}
}
}Identify the API key: its organization, project and project slug. The project slug forms the `<project_slug>/<endpoint_slug>` model name for dedicated-endpoint inference. A cheap way to confirm the key works. Together: GET /whoami.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}| repetition_penalty |
| number |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"model",
"messages"
],
"properties": {
"seed": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Seed for reproducible sampling."
},
"stop": {
"type": "array",
"items": {
"type": "string"
},
"description": "Stop sequences."
},
"model": {
"type": "string",
"minLength": 1,
"description": "Model name, e.g. meta-llama/Llama-3.3-70B-Instruct-Turbo."
},
"top_k": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"top_p": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"messages": {
"type": "array",
"items": {
"type": "object",
"required": [
"role",
"content"
],
"properties": {
"role": {
"enum": [
"system",
"user",
"assistant",
"tool"
],
"type": "string"
},
"content": {
"type": "string"
}
}
},
"minItems": 1,
"description": "The conversation so far."
},
"max_tokens": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Maximum tokens to generate."
},
"temperature": {
"type": "number",
"maximum": 2,
"minimum": 0
},
"reasoning_effort": {
"enum": [
"low",
"medium",
"high"
],
"type": "string",
"description": "Reasoning effort for reasoning models that support it."
},
"repetition_penalty": {
"type": "number"
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"model",
"hardware",
"autoscaling"
],
"properties": {
"model": {
"type": "string",
"minLength": 1,
"description": "The model to deploy."
},
"state": {
"enum": [
"STARTED",
"STOPPED"
],
"type": "string",
"description": "Initial state. Pass STOPPED to create without starting (and without billing)."
},
"hardware": {
"type": "string",
"minLength": 1,
"description": "Hardware id, e.g. 1x_nvidia_a100_80gb_sxm."
},
"autoscaling": {
"type": "object",
"required": [
"min_replicas",
"max_replicas"
],
"properties": {
"max_replicas": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Maximum replicas to scale up to under load."
},
"min_replicas": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Replicas kept running even with no load."
}
},
"description": "Replica bounds for autoscaling."
},
"display_name": {
"type": "string",
"description": "Human-readable name."
},
"inactive_timeout": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Minutes of inactivity before auto-stop; 0 disables it."
},
"availability_zone": {
"type": "string",
"description": "Availability zone, e.g. us-central-4b."
},
"disable_speculative_decoding": {
"type": "boolean"
}
}
}| training_type | any | Full fine-tune or LoRA. Together defaults to LoRA when omitted. |
| max_seq_length | integer |
| from_checkpoint | string | Continue from a previous job: <job_id>, <output_model_name>, optionally with :<step>. |
| training_method | any | Supervised fine-tuning (sft, the default) or preference tuning (dpo). |
| validation_file | string | File id of an uploaded validation file. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"model",
"training_file"
],
"properties": {
"model": {
"type": "string",
"minLength": 1,
"description": "Base model to fine-tune."
},
"suffix": {
"type": "string",
"maxLength": 64,
"description": "Suffix for the fine-tuned model's name (max 64 chars)."
},
"n_evals": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Evaluations on the validation set during training."
},
"n_epochs": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Passes over the training data."
},
"batch_size": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1
},
{
"type": "string",
"const": "max"
}
],
"description": "Batch size, or 'max' (the default)."
},
"warmup_ratio": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"learning_rate": {
"type": "number",
"exclusiveMinimum": 0
},
"n_checkpoints": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Intermediate checkpoints to save."
},
"training_file": {
"type": "string",
"minLength": 1,
"description": "File id of an uploaded training file (purpose fine-tune)."
},
"training_type": {
"oneOf": [
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"const": "Full"
}
}
},
{
"type": "object",
"required": [
"type",
"lora_r",
"lora_alpha"
],
"properties": {
"type": {
"type": "string",
"const": "Lora"
},
"lora_r": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Rank of the LoRA adapter matrices."
},
"lora_alpha": {
"type": "number",
"description": "Scaling factor applied to the LoRA adapter weights."
},
"lora_dropout": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Dropout on LoRA adapter inputs."
},
"lora_trainable_modules": {
"type": "string",
"description": "Comma-separated target modules, or all-linear for the model defaults."
}
}
}
],
"description": "Full fine-tune or LoRA. Together defaults to LoRA when omitted."
},
"max_seq_length": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1
},
"from_checkpoint": {
"type": "string",
"description": "Continue from a previous job: <job_id>, <output_model_name>, optionally with :<step>."
},
"training_method": {
"oneOf": [
{
"type": "object",
"required": [
"method",
"train_on_inputs"
],
"properties": {
"method": {
"type": "string",
"const": "sft"
},
"train_on_inputs": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"const": "auto"
}
],
"description": "Whether prompt/user tokens contribute to the loss; 'auto' lets Together decide."
}
}
},
{
"type": "object",
"required": [
"method"
],
"properties": {
"method": {
"type": "string",
"const": "dpo"
},
"dpo_beta": {
"type": "number"
},
"rpo_alpha": {
"type": "number"
},
"simpo_gamma": {
"type": "number"
},
"dpo_reference_free": {
"type": "boolean"
},
"dpo_normalize_logratios_by_length": {
"type": "boolean"
}
}
}
],
"description": "Supervised fine-tuning (sft, the default) or preference tuning (dpo)."
},
"validation_file": {
"type": "string",
"description": "File id of an uploaded validation file."
}
}
}| Prompt adherence; higher is more literal. |
| negative_prompt | string | What to steer away from. |
| response_format | string | url (default here) or base64. base64 can be very large. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"model",
"prompt"
],
"properties": {
"n": {
"type": "integer",
"maximum": 4,
"minimum": 1,
"description": "Number of images."
},
"seed": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"model": {
"type": "string",
"minLength": 1,
"description": "Image model, e.g. black-forest-labs/FLUX.1-schnell."
},
"steps": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Number of generation steps."
},
"width": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 64,
"description": "Width in pixels."
},
"height": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 64,
"description": "Height in pixels."
},
"prompt": {
"type": "string",
"minLength": 1,
"description": "What to draw."
},
"image_url": {
"type": "string",
"description": "Input image URL, for models that support editing."
},
"output_format": {
"enum": [
"jpeg",
"png"
],
"type": "string"
},
"guidance_scale": {
"type": "number",
"description": "Prompt adherence; higher is more literal."
},
"negative_prompt": {
"type": "string",
"description": "What to steer away from."
},
"response_format": {
"enum": [
"url",
"base64"
],
"type": "string",
"description": "url (default here) or base64. base64 can be very large."
}
}
}