> 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. # Update status PUT https://apps.sarvam.ai/api/app-authoring/v1/orgs/{org_id}/workspaces/{workspace_id}/deployments/{deployment_id}/status Content-Type: application/json Pause or resume a deployment. | Action | Effect | |---|---| | `pause` | Stop accepting inbound calls | | `resume` | Start accepting inbound calls again | Reference: https://docs.sarvam.ai/conversations/api/deployments/update-status ## Request ### Path parameters - `org_id` (string, required) - `workspace_id` (string, required) - `deployment_id` (string, required) ### Body (application/json) This endpoint expects an UpdateDeploymentStatus. - `action` (enum, required) — Action to perform: `pause` or `resume` - Allowed values: `pause`, `resume` ## Response ### 200 Successful Response - `deployment_id` (string, required) — Unique identifier for the deployment - `app_id` (string, required) — ID of the agent - `app_version` (integer, required) — Version of the agent - `connection_configs` (list of ConnectionConfig, required) — Telephony connection configurations - `channel_direction` (enum, required) — Direction of calls (inbound, outbound, or both) - Allowed values: `inbound`, `outbound`, `inbound_outbound` - `created_by` (string, required) — User who created this deployment - `created_at` (datetime, required) — Timestamp when created (ISO 8601) - `updated_at` (datetime, required) — Timestamp when last updated (ISO 8601) - `name` (string, optional, nullable) — Name of the deployment - `status` (enum, optional, nullable) — Current status of the deployment - Allowed values: `active`, `paused` - `description` (string, optional, nullable) — Optional description - `inbound_config` (InboundConfig, optional, nullable) — Inbound call schedule configuration - `updated_by` (string, optional, nullable) — User who last updated this deployment - `webhook_config` (WebhookConfig, optional, nullable) — Webhook configuration for call completion events ## Errors ### 422 Unprocessable Entity Error Validation Error - `error` (ErrorBody, required) — Details of the error that occurred. ## Types ### ConnectionConfig - `connection_id` (string, required) - `agent_phone_number` (string, required) ### InboundConfig Inbound call configuration including schedule, connection, and call handling settings. - `start_time` (string, required) — Start time in HH:MM 24-hour format - `end_time` (string, required) — End time in HH:MM 24-hour format - `allowed_days` (list of enum, required) — Days of the week when inbound calls are accepted - Allowed values: `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, `Sunday` - `timezone` (string, optional, default: Asia/Kolkata) — IANA timezone, e.g. 'Asia/Kolkata', 'UTC', 'America/New_York' ### WebhookConfig - `url` (string, required) - `metadata` (map from string to any, optional, nullable) ### ErrorBody Details of the error that occurred. - `code` (string, required) — A service-specific error code. - `message` (string, required) — A human-readable description of the error. ## Examples **Request** ```json { "action": "pause" } ``` **Response** ```json { "deployment_id": "dep-a1b2c3d4", "app_id": "my-support-agent", "app_version": 3, "connection_configs": [ { "connection_id": "conn-exotel-001", "phone_numbers": [ "+918047168000" ] } ], "channel_direction": "inbound", "created_by": "user@company.com", "created_at": "2026-03-01T10:00:00Z", "updated_at": "2026-03-15T14:30:00Z", "name": "Customer Support Line", "status": "active", "description": "Main support deployment for EN and HI", "inbound_config": { "start_time": "09:00", "end_time": "18:00", "allowed_days": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "timezone": "Asia/Kolkata" }, "updated_by": "user@company.com", "webhook_config": { "url": "https://your-server.com/webhook", "metadata": { "ref": "batch-42" } } } ``` **SDK Code** ```python import requests url = "https://apps.sarvam.ai/api/app-authoring/v1/orgs/org_id/workspaces/workspace_id/deployments/deployment_id/status" payload = { "action": "pause" } headers = {"Content-Type": "application/json"} response = requests.put(url, json=payload, headers=headers) print(response.json()) ``` ```javascript const url = 'https://apps.sarvam.ai/api/app-authoring/v1/orgs/org_id/workspaces/workspace_id/deployments/deployment_id/status'; const options = { method: 'PUT', headers: {'Content-Type': 'application/json'}, body: '{"action":"pause"}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://apps.sarvam.ai/api/app-authoring/v1/orgs/org_id/workspaces/workspace_id/deployments/deployment_id/status" payload := strings.NewReader("{\n \"action\": \"pause\"\n}") req, _ := http.NewRequest("PUT", url, payload) req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://apps.sarvam.ai/api/app-authoring/v1/orgs/org_id/workspaces/workspace_id/deployments/deployment_id/status") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Put.new(url) request["Content-Type"] = 'application/json' request.body = "{\n \"action\": \"pause\"\n}" response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.put("https://apps.sarvam.ai/api/app-authoring/v1/orgs/org_id/workspaces/workspace_id/deployments/deployment_id/status") .header("Content-Type", "application/json") .body("{\n \"action\": \"pause\"\n}") .asString(); ``` ```php request('PUT', 'https://apps.sarvam.ai/api/app-authoring/v1/orgs/org_id/workspaces/workspace_id/deployments/deployment_id/status', [ 'body' => '{ "action": "pause" }', 'headers' => [ 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://apps.sarvam.ai/api/app-authoring/v1/orgs/org_id/workspaces/workspace_id/deployments/deployment_id/status"); var request = new RestRequest(Method.PUT); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"action\": \"pause\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = ["Content-Type": "application/json"] let parameters = ["action": "pause"] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://apps.sarvam.ai/api/app-authoring/v1/orgs/org_id/workspaces/workspace_id/deployments/deployment_id/status")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "PUT" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```