What stays the same
The inference API hasn’t changed. You still send requests toPOST /v1/chat/completions (and the other inference endpoints) with your endpoint name in the model field. Dedicated model inference is served at https://api-inference.together.ai:
model string. When you recreate an endpoint in v2, it gets a new endpoint string (<project_slug>/<endpoint_name>), so update your inference calls to use the new name.
What’s changed
v1 modeled a dedicated endpoint as a single model running on a hardware type. v2 splits that into a small resource model so one endpoint can host more than one model version and shift traffic between them:- Endpoint: A stable inference URL. It no longer carries the model or hardware itself.
- Deployment: Binds a model and a config to an endpoint with an autoscaling policy. A deployment is what runs replicas and serves traffic. One endpoint can host several deployments at once.
- Config: Describes how a model runs, including the hardware selectors and optimization profile. In v1 you passed a hardware ID and decoding flags. In v2 you select a published config instead.
- Traffic split: Routes requests across an endpoint’s deployments by weight. Even if it’s
READY, a deployment receives no traffic until you route traffic to it.
Feature mapping
Command mapping
In Together CLI 2.x and SDK versions before 3.0, thetg endpoints commands and client.endpoints methods call the v1 API. In v2, the same operations are available from the tg endpoints and tg models commands of Together CLI 3.0 and from the /v2 management API at https://api.together.ai. A few operations, such as editing a traffic split and listing deployments, are available from the SDK and API, not the CLI. The following table maps each v1 command to its v2 equivalent:
For the individual CLI commands and SDK methods behind these operations, see Manage deployments.
Migrate an endpoint
To move a v1 endpoint to v2, recreate it under the v2 resource model. Your v1 endpoint keeps serving while you stand up the v2 one, so you can cut over with no downtime. While both endpoints run during the cutover, you pay for the GPUs of both, so retire the v1 endpoint as soon as traffic is on v2.- Find the model and a config: Look up the model your v1 endpoint runs in the list of supported models, then list the configs published for it. Save the model ID (
ml_...) and the ID of the config you choose (cr_...). - Deploy the model: With Together CLI 3.0, run
tg endpoints deploy <model_id> --endpoint <name> --config <config_id>, adding--min-replicasand--max-replicasto match your v1 endpoint’s replica bounds. This creates the endpoint, deployment, and traffic split, and returns while the deployment provisions in the background. Save the endpoint string (your-project-slug/<name>). - Cut over: Update your application’s
modelfield to the new endpoint string and send a test request. - Retire the v1 endpoint: Once traffic is on v2, stop the v1 endpoint to end its billing.
Manage remaining v1 endpoints
The 3.0 SDKs and CLI removed the v1 methods and commands, so manage your remaining v1 endpoints with the v1 REST API athttps://api.together.ai/v1/endpoints until you migrate them.
List v1 endpoints
List your dedicated v1 endpoints to find the ID of each one:cURL
data has an id (endpoint-...), a name that v1 inference requests pass as model, and a state, which is STARTED while the endpoint is running. To stop or delete an endpoint, pass its id as <ENDPOINT_ID>.
Stop a v1 endpoint
To stop a v1 endpoint and end its billing, set itsstate to STOPPED:
cURL
Delete a v1 endpoint
Deleting a v1 endpoint is permanent. A stopped endpoint doesn’t bill, so delete one only when you no longer need its record:cURL
Migrate fine-tuned models
Uploaded models carry over, but you must re-upload them into the v2 model catalog and reference them by model ID in a deployment:- Fine-tuned models: See Upload a fine-tuned model.
- LoRA adapters: Re-upload each adapter and deploy it on its own deployment. See Upload a LoRA adapter. Serving several adapters on one deployment is available only for adapters from post-training.
Troubleshooting
Most migration errors have one cause: v1 create and restart are retired. This isn’t a permissions problem. Your models, fine-tuned checkpoints, hardware, and API key still work, so there’s nothing to enable or restore. To fix these errors, deploy the model on v2 as described in Migrate an endpoint.
To get the v2 commands, install the CLI, or upgrade it if it’s already installed:
v2 capabilities
Migrating your endpoint to v2 gives you access to several new capabilities:- Split traffic across deployments: Host several deployments behind one endpoint URL and route requests between them by weight.
- Run A/B tests: Compare a candidate deployment against a baseline on live traffic before you promote it.
- Run a shadow experiment: Test a new deployment in production without affecting live traffic.
- Run a rollout: Migrate live traffic from one deployment to another in steps, with automatic pauses when live metrics regress.
- Autoscale on a metric: Scale each deployment on the metric that fits your workload, and stop it when you don’t need it to release the hardware.
- Monitor endpoints: Track latency, throughput, and utilization in built-in dashboards, and trace lifecycle changes through the events feed.
Timeline and support
Existing v1 endpoints keep running until further notice, so you can migrate on your own schedule. Create all new endpoints and redeploy v1 endpoints that have stopped on v2.Next steps
Concepts
Learn the project, model, config, endpoint, and deployment model.
Quickstart
Recreate an endpoint end to end with the CLI or SDK.
Choose a deployment profile
Find the config that replaces your v1 hardware ID.
Manage deployments
Create, inspect, scale, stop, and delete endpoints and deployments.