> For clean Markdown of any page, append `.md` to the page URL.
> For a complete documentation index, see https://docs.sarvam.ai/llms.txt.
> For full documentation content in one file, see https://docs.sarvam.ai/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.sarvam.ai/_mcp/server.

# Get started on SageMaker

> Prerequisites, IAM setup, AWS Marketplace subscription, and service quotas for deploying Sarvam models on Amazon SageMaker. Everything you need before your first endpoint.

Everything you need before deploying your first endpoint. You do this setup **once** per AWS account, then reuse it for every Saaras v3, Bulbul v3, and Sarvam Vision deployment.

## Prerequisites

* An **AWS account** with permission to subscribe on AWS Marketplace and create SageMaker resources.
* **Amazon SageMaker Studio** (or a local environment with the AWS CLI and `boto3`).
* **GPU instance quota** in your region for the instance types you plan to use (see [Request quota](#3-request-service-quotas)).
* The [SageMaker Python SDK](https://sagemaker.readthedocs.io/) and `boto3` if you're deploying from code.

```bash pip
pip install "sagemaker>=2.220" boto3
```

## 1. Create a SageMaker execution role (once)

Every endpoint runs under an IAM **execution role**. Create it once and reuse it. The managed policy `AmazonSageMakerFullAccess` covers most needs; add S3 access if you'll use batch or async (so SageMaker can read inputs and write outputs).

The role needs a trust policy allowing SageMaker to assume it:

```json Trust policy
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": { "Service": "sagemaker.amazonaws.com" },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

Your own user or role also needs permission to subscribe to Marketplace products and manage SageMaker:

| Managed policy                                   | Attached to                           | Why                                 |
| ------------------------------------------------ | ------------------------------------- | ----------------------------------- |
| `AWSMarketplaceManageSubscriptions`              | Your user/role                        | Subscribe to the Sarvam listing     |
| `AmazonSageMakerFullAccess`                      | Your user/role and the execution role | Create and invoke endpoints         |
| `AmazonS3FullAccess` (or a scoped bucket policy) | Execution role                        | Read/write data for batch and async |

Reuse a single execution role across all your Sarvam endpoints. You only create it once — deployments just reference its ARN.

## 2. Subscribe on AWS Marketplace

#### Open the listing

Go to the Sarvam listing for the model you want — [Speech-to-Text](https://aws.amazon.com/marketplace/pp/prodview-6a2ei6d2iimli), [Text-to-Speech](https://aws.amazon.com/marketplace/search/results?searchTerms=Sarvam+Bulbul), or [Sarvam Vision](https://aws.amazon.com/marketplace/pp/prodview-exwi6jgzqsqc2).

#### Continue to subscribe and accept the EULA

Review pricing and the end-user licence agreement, then subscribe. There's no end date — you can cancel anytime.

#### Copy the model package ARN for your region

From **Configuration**, choose the software version and your region, then copy the **model package ARN**. You'll pass this to the deploy step.

Model package ARNs are **region-specific**. Copy the ARN for the exact region you'll deploy into — a mismatch fails at model creation.

## 3. Request service quotas

GPU instances often need a quota increase before first use. In the **Service Quotas** console, search for Amazon SageMaker and request the endpoint-usage quota for the instance types you'll run.

### Recommended instances

Both models run best on the **`ml.g6e`** family (NVIDIA L40S). Start with the recommended instance and scale up for more throughput or concurrency.

| Model                   | Recommended instance | Modes                                  |
| ----------------------- | -------------------- | -------------------------------------- |
| **Saaras v3** (STT)     | `ml.g6e.xlarge`      | real-time, streaming                   |
| **Bulbul v3** (TTS)     | `ml.g6e.xlarge`      | real-time, streaming (SSE + WebSocket) |
| **Sarvam Vision** (OCR) | `ml.g6e.xlarge`      | real-time (sync), async, batch         |

For **Sarvam Vision**, the concurrent documents an instance handles scales with its size:

| `ml.g6e` instance                         | GPUs | Concurrent documents |
| ----------------------------------------- | :--: | -------------------- |
| `ml.g6e.xlarge`                           |   1  | 2                    |
| `ml.g6e.2xlarge`                          |   1  | 4                    |
| `ml.g6e.4xlarge` / `8xlarge` / `16xlarge` |   1  | 6                    |
| `ml.g6e.12xlarge`                         |   4  | 24                   |
| `ml.g6e.48xlarge`                         |   8  | \~48                 |

These are the recommended `ml.g6e` (L40S) instances. See the AWS Marketplace listing for the full instance and pricing matrix, and [Operations](/api/self-hosted/sagemaker/operations) for sizing and autoscaling.

**Read the endpoint's API reference carefully before you integrate.** Each model's request/response contract, accepted content types, limits, and error behaviour are enforced by the container — the [Speech-to-Text](/api/self-hosted/sagemaker/api-saaras), [Text-to-Speech](/api/self-hosted/sagemaker/api-bulbul), and [Sarvam Vision](/api/self-hosted/sagemaker/api-vision) references are the source of truth. Start with [Error handling on SageMaker](/api/self-hosted/sagemaker/errors) for the shared error contract.

## You're set

#### [Deploy Speech-to-Text](/api/self-hosted/sagemaker/deploy-saaras)

Stand up a Saaras v3 endpoint — real-time or streaming.

#### [Deploy Text-to-Speech](/api/self-hosted/sagemaker/deploy-bulbul)

Stand up a Bulbul v3 endpoint — real-time, SSE, or bidirectional.

#### [Deploy Sarvam Vision](/api/self-hosted/sagemaker/deploy-vision)

Stand up a document-intelligence endpoint.