Baseten Model APIs vs. Dedicated Inference: Which Path Should You Choose?
Updated
Use Model APIs when a supported hosted model already fits your application and you want to start with a single API call. Choose dedicated inference when you need to run an open-source model, a private checkpoint, or a custom model on GPUs you control. The deciding factors are how much customization you need and how much of the serving stack you want Baseten to manage for you.
The two paths at a glance
| Dimension | Model APIs | Dedicated inference |
|---|---|---|
| What you run | A curated set of hosted models | Open-source, fine-tuned, or custom models |
| Who manages the model, engine, hardware, and scaling | Baseten | You define the model; Baseten manages the infrastructure |
| API compatibility | OpenAI Chat Completions API, Anthropic Messages API (beta) | Your own serving behavior |
| How you define the model | Nothing to define — call the endpoint | A config.yaml, a Python model class, or a custom Docker server |
| Control over hardware and autoscaling | Not your concern | You set hardware, autoscaling, and release lifecycle |
| Environment stability | Managed for you | Stable environments for development, staging, and production |
When Model APIs are the right fit
Model APIs expose hosted endpoints for a curated set of models. Because they support the OpenAI Chat Completions API (and the Anthropic Messages API in beta), you can point familiar client SDKs at them without writing serving code.
Pick this path when:
- A supported model already meets your application's needs.
- You want to start with an API call rather than a deployment.
- You don't want to think about model containers, GPU capacity, scaling, or observability — Baseten handles all of that.
The quickstart is exactly this: call a hosted model through Model APIs with an API key and the OpenAI SDK.
When dedicated inference is the right fit
Dedicated inference deploys an open-source model, a private checkpoint, or a custom model on dedicated infrastructure. You define the model in one of three ways, then deploy it with the Baseten CLI:
config.yaml— for supported architectures, define the model, hardware, and inference engine without writing custom serving code.- A Python model class — use this when you need custom preprocessing, postprocessing, dependencies, or server behavior.
- A custom Docker server — for full control over the serving environment.
Choose this path when you need control over the model itself, the hardware, autoscaling settings, and the release lifecycle — or when you need stable environments for development, staging, and production.
How to decide
Ask yourself these questions in order:
- Does a supported hosted model already fit? If yes, start with Model APIs.
- Do you need custom preprocessing, postprocessing, dependencies, or server behavior? If yes, you need dedicated inference — a Python model class or a custom Docker server.
- Do you need to control hardware, autoscaling, or the release lifecycle? If yes, dedicated inference gives you that control.
- Do you need separate development, staging, and production environments? Dedicated deployments support stable environments for each.
If you answered "no" to all of these, Model APIs will get you to a working call fastest.
What both paths share
Either way, you're running on production GPU infrastructure that Baseten manages across clouds and regions, including model containers, scaling, and observability. Inference engines optimize supported model architectures for production traffic. The difference is where the boundary of your responsibility sits: at the API call, or at the model definition.
For current pricing and usage details, see the Pricing and limits and Billing and usage pages.