For the complete documentation index, see llms.txt. This page is also available as Markdown.

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/v1

  • OpenAI-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)

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:

  1. Check model compatibility with our /dedicated/support endpoint.

  2. Retrieve a list of supported hardware for that model with our /dedicated/devices endpoint. This will include multi-GPU configurations that leverage parallelism.

  3. Within that list, set selected to True for the desired configurations.

  4. Submit (POST) a deployment payload (including your selected deviceConfigs) to /dedicated/deployments.

  5. Use /dedicated/deployments endpoints 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

Parameter
Type
Required
Description

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

Parameter
Type
Required
Description

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"]:

State
Description

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):

  1. GET the current deployment (as above).

  2. Modify the returned JSON structure to include your updated parameters.

  3. 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