Management API
Deploy, pause, resume, scale, and monitor dedicated endpoints programmatically with the Parasail REST API.
The Dedicated Endpoint Management API lets you create and manage Dedicated Instance deployments programmatically. You can use it to check model support, select compatible hardware, create deployments, poll status, update replica counts, pause, resume, and delete deployments.
For first-time model and hardware selection, start in the Parasail UI when possible. The UI surfaces compatibility and hardware recommendations that are easier to validate visually before automating the same flow through the API.
If you did not create the dedicated endpoint with the API, you can find the deployment_id from the Parasail SaaS platform URL. For example, if your deployment status page is https://www.saas.parasail.io/dedicated/33665, then the deployment_id is 33665. You can then use this ID for the API commands below.
Base URLs
Control API (for managing deployments):
https://api.parasail.io/api/v1OpenAI-compatible inference API (for inference requests):
https://api.parasail.io/v1
Authentication
All requests to the Control API must include a Bearer token in the header. For example:
import httpx
api_key = "<YOUR_PARASAIL_API_KEY>"
control_base_url = "https://api.parasail.io/api/v1"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
client = httpx.Client(base_url=control_base_url, headers=headers)Recommended Dedicated Model API Flow
Given the large set of combinations of model types and hardware instances, the recommended process for using the Dedicated API follows the UI flow and leverages our performance/memory models and hardware compatibility checkers to ensure smooth operation. The recommended flow is:
Check model compatibility with our
/dedicated/supportendpoint.Retrieve a list of supported hardware for that model with our
/dedicated/devicesendpoint. This will include multi-GPU configurations that leverage parallelism.Within that list, set
selectedtoTruefor the desired configurations.Submit (
POST) a deployment payload (including your selecteddeviceConfigs) to/dedicated/deployments.Use
/dedicated/deploymentsendpoints to monitor, update, pause, resume, and delete deployments.
1. Checking Model Compatibility
The /dedicated/support endpoint can be used to query whether a model is supported. The modelName parameter can either be a Hugging Face ID like Qwen/Qwen2.5-72B-Instruct or a Hugging Face URL like https://huggingface.co/Qwen/Qwen2.5-72B-Instruct. Use the engine query parameter (for example VLLM) when needed.
This step is optional, but is a useful sanity check for API-based flows to ensure the IDs are entered correctly.
2. Retrieving Supported Hardware
The first step to creating a new dedicated deployment is to select a supported hardware configuration. The /dedicated/devices endpoint returns valid hardware configurations and their availability. These configurations can be either single GPUs or multiple GPUs with parallelism enabled (tensor, expert, or sequence). The selected flag is set to false when returned from /dedicated/devices. The recommended flow is to flip selected to true for your desired configurations, then pass that array to the create deployment endpoint (see next section).
The entire structure does not need to be passed to the create dedicated instance endpoint. The required flag shows the parameters that are needed, though it is recommended to ensure compatibility by first calling /dedicated/devices and flipping selected to true.
/dedicated/devices returns an array of structures with the following parameters:
DeviceConfigs structure
device
string
Yes
Device ID.
count
integer
Yes
Number of GPUs in the configuration. Parasail chooses the parallelism strategy for multi-GPU configurations. Use multiple replicas for data parallelism.
displayName
string
No
Human-readable hardware name shown in the UI.
cost
float
No
Estimated hourly cost for the full hardware configuration.
estimatedSingleUserTps
float
No
Estimated output tokens per second for a single user. This estimate may be out of date; do not rely on it for capacity planning.
estimatedSystemTps
float
No
Estimated total output tokens per second for the configuration. This estimate may be out of date; do not rely on it for capacity planning.
recommended
boolean
No
Whether Parasail recommends this configuration for the model.
limitedContext
boolean
No
Whether the full model context may exceed available memory. If true, reduce context length with contextLengthOverride.
available
boolean
No
Whether the hardware is currently available for the account and requested count. This field reflects a single replica.
selected
boolean
Yes
Set to true on the configuration you want the scheduler to consider when creating the deployment.
Here is example code to retrieve supported hardware, look for a desired configuration, and flip the selected flag to true when it is found:
3. Creating a Deployment
deploymentName
string
Yes
Unique deployment name. Use lowercase letters, numbers, and dashes.
modelName
string
Yes
Hugging Face model ID, such as Qwen/Qwen2.5-72B-Instruct.
deviceConfigs
array
Yes
Device configuration array from /dedicated/devices, with one or more entries marked selected: true.
replicas
integer
Yes
Number of replicas to run.
scaleDownPolicy
string
No
Autoscaling policy, such as NONE or TIMER.
scaleDownThreshold
integer
No
Idle threshold in milliseconds before scale-down when using a timer policy.
draftModelName
string
No
Advanced draft model setting.
engine
string
No
Inference engine. Defaults to VLLM.
engineTask
string
No
Engine task mode. Defaults to AUTO.
contextLengthOverride
integer
No
Advanced override for context window length.
modelAccessKey
string
No
Hugging Face token for private models.
Use the POST /dedicated/deployments endpoint to create a new model deployment. The response includes an id for future operations (status checks, updates, etc.). After the model is created, poll the status to monitor the transition from STARTING to ONLINE before the endpoint accepts requests. This model also appears on your dedicated status page in the platform UI.
This uses the devices struct from the previous example:
Response Body Example:
id: Unique numeric identifier for the deployment.
status.status: Current state of the deployment (for example,
STARTING,ONLINE).externalAlias: The string used to reference your model via OpenAI-compatible calls.
4. Getting Deployment Status
Use the GET /dedicated/deployments/{deployment_id} endpoint to retrieve the details of your deployment, including its status.
Key fields in the response:
status["status"]: The overall state of the deployment.externalAlias: The string you use in OpenAI Chat/Completion requests (model=).
Below are the possible values for status["status"]:
ONLINE
Deployment is active and ready to serve requests.
STARTING
Deployment is in the process of starting up.
STOPPING
Deployment is in the process of shutting down.
OFFLINE
Deployment is not running and must be resumed to accept requests.
ERROR
Deployment entered an error state and needs investigation.
UNKNOWN
Deployment state is unknown (for example, stale or missing data).
5. Updating a Deployment
To change the configuration of an existing deployment (for example, number of replicas):
GET the current deployment (as above).
Modify the returned JSON structure to include your updated parameters.
PUT the entire updated JSON back to the same endpoint (
/dedicated/deployments/{deployment_id}).
Example: Scaling up the replicas
6. Pausing and Resuming a Deployment
You may want to pause a deployment to reduce costs. Pausing puts the deployment into an OFFLINE state and stops billing. When ready, you can resume it to bring it back ONLINE. When the resume command is sent, you will need to poll the status to monitor for the transition from STARTING to ONLINE before the endpoint will accept requests.
7. Using the Deployed Model via OpenAI-Compatible API
Once your deployment is ONLINE, you can send inference requests using the Chat API at https://api.parasail.io/v1. Use the externalAlias as the model parameter in your OpenAI calls.
Example using the OpenAI Python client:
Note: The model_identifier is the externalAlias from the deployment status.
8. Deleting a Deployment
To permanently delete an endpoint, send the DELETE request.
Example Python Code
Next steps
Last updated