> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# MCP टूल कॉन्फ़िगरेशन ओवरराइड हटाएं

DELETE https://api.elevenlabs.io/v1/convai/mcp-servers/{mcp_server_id}/tool-configs/{tool_name}

किसी विशेष MCP टूल के कॉन्फ़िगरेशन ओवरराइड हटाएं।

Reference: https://elevenlabs.io/docs/api-reference/mcp/tool-configuration/delete

## Servers

- `https://api.elevenlabs.io` (Production, default)
- `https://api.us.elevenlabs.io` (Production US)
- `https://api.eu.residency.elevenlabs.io` (Production EU)
- `https://api.in.residency.elevenlabs.io` (Production India)
- `https://api.sg.residency.elevenlabs.io` (Production Singapore)

## Request

### Path parameters

- `mcp_server_id` (string, required) — MCP सर्वर की ID।
- `tool_name` (string, required) — वह MCP टूल जिसका कॉन्फ़िगरेशन ओवरराइड हटाना है।

## Response

### 200

सफल रिस्पॉन्स

- `id` (string, required)
- `config` (MCPServerConfig-Output, required)
- `metadata` (MCPServerMetadataResponseModel, required) — MCP सर्वर का मेटाडेटा
- `access_info` (ResourceAccessInfo, optional, nullable) — MCP सर्वर की एक्सेस जानकारी
- `dependent_agents` (list of McpServerResponseModelDependentAgentsItems, optional) — इस MCP Server पर निर्भर एजेंट की सूची।

## Errors

### 422 Unprocessable Entity Error

वैलिडेशन एरर

- `detail` (list of ValidationError, optional)

## Types

### MCPServerConfig-Output

- `url` (McpServerConfigOutputUrl, required) — MCP सर्वर का URL। अगर इसमें कोई सीक्रेट है, तो इसे वर्कस्पेस सीक्रेट के रूप में स्टोर करें, अन्यथा प्लेन स्ट्रिंग के रूप में स्टोर करें। https का इस्तेमाल करना ज़रूरी है।
- `name` (string, required)
- `approval_policy` (enum, optional, default: require_approval_all) — टूल एक्ज़ीक्यूशन के लिए MCP सर्वर-लेवल अप्रूवल पॉलिसी तय करता है।
  - Allowed values: `auto_approve_all`, `require_approval_all`, `require_approval_per_tool`
- `tool_approval_hashes` (list of MCPToolApprovalHash, optional) — जब approval_policy REQUIRE_APPROVAL_PER_TOOL हो, तब प्रति-टूल अनुमोदन के लिए टूल अप्रूवल हैश की सूची
- `transport` (enum, optional, default: SSE) — MCP सर्वर से कनेक्ट करने के लिए इस्तेमाल किया गया ट्रांसपोर्ट टाइप
  - Allowed values: `SSE`, `STREAMABLE_HTTP`
- `secret_token` (McpServerConfigOutputSecretToken, optional, nullable) — वर्कस्पेस सीक्रेट या इन-प्लेस सीक्रेट के रूप में स्टोर किया गया सीक्रेट टोकन (Authorization हेडर)
- `request_headers` (map from string to McpServerConfigOutputRequestHeaders, optional) — रिक्वेस्ट में शामिल हेडर
- `request_meta` (map from string to McpServerConfigOutputRequestMeta, optional) — tools/call अनुरोधों के MCP `_meta` फ़ील्ड में भेजी गई एंट्री। वैल्यू JSON scalar हो सकती हैं या workspace secret, dynamic variable या हर कॉल पर resolve होने वाले environment variable के रेफ़रेंस हो सकती हैं।
- `auth_connection` (McpServerConfigOutputAuthConnection, optional, nullable) — इस MCP server के साथ authentication के लिए इस्तेमाल होने वाला वैकल्पिक auth connection
- `description` (string, optional, default: )
- `pre_tool_speech` (enum, optional, default: auto) — यह नियंत्रित करता है कि इस टूल को कॉल करने से पहले एजेंट बोले या नहीं। 'auto' (डिफ़ॉल्ट) हाल की टूल लेटेंसी के आधार पर तय करता है, 'force' हमेशा एजेंट को बोलने के लिए कहता है और 'off' लेटेंसी की परवाह किए बिना इसे पूरी तरह बंद कर देता है। प्रति टूल ओवरराइड न किए जाने पर यह इस MCP सर्वर के हर टूल पर लागू होता है।
  - Allowed values: `auto`, `force`, `off`
- `interruption_mode` (enum, optional, default: allow) — यह नियंत्रित करता है कि यूज़र इस टूल कॉल के दौरान एजेंट को बाधित कर सकता है या नहीं। 'allow' (डिफ़ॉल्ट) यूज़र को किसी भी समय बाधित करने देता है, 'disable_during_tool' केवल टूल के चलने के दौरान बाधा को रोकता है और 'disable_during_tool_and_turn' टूल के चलने के दौरान और उसके बाद आने वाले एजेंट रिस्पॉन्स के लिए बाधा को रोकता है। प्रति टूल ओवरराइड न किए जाने पर यह इस MCP सर्वर के हर टूल पर लागू होता है।
  - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
- `tool_call_sound` (enum, optional, nullable) — इस MCP server के सभी tools के लिए tool execution के दौरान चलाने वाला पूर्वनिर्धारित tool call sound type
  - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
- `tool_call_sound_behavior` (enum, optional, default: auto) — यह तय करता है कि इस MCP सर्वर के सभी टूल के लिए टूल कॉल की ध्वनि कब बजे।
  - Allowed values: `auto`, `always`
- `execution_mode` (enum, optional, default: immediate) — यह तय करता है कि इस MCP सर्वर के सभी टूल कब और कैसे चलें: 'immediate', LLM के अनुरोध पर टूल को तुरंत चलाता है; 'post_tool_speech', एजेंट के बोलना पूरा करने तक इंतज़ार करता है; 'async', बिना ब्लॉक किए टूल को बैकग्राउंड में चलाता है — लंबे समय तक चलने वाले ऑपरेशंस के लिए सबसे अच्छा।
  - Allowed values: `immediate`, `post_tool_speech`, `async`
- `response_timeout_secs` (integer, optional, default: 30) — हर MCP टूल कॉल के पूरा होने की प्रतीक्षा का अधिकतम समय, सेकंड में। यह 5 से 300 सेकंड (दोनों सहित) के बीच होना चाहिए।
- `tool_config_overrides` (list of MCPToolConfigOverride-Output, optional) — हर टूल के कॉन्फ़िगरेशन ओवरराइड की सूची, जो खास टूल के लिए सर्वर-स्तरीय डिफ़ॉल्ट को ओवरराइड करते हैं
- `disable_compression` (boolean, optional, default: false) — क्या इस MCP सर्वर के लिए HTTP कंप्रेशन अक्षम करना है। अगर सर्वर कंप्रेस्ड रिस्पॉन्स सपोर्ट नहीं करता है, तो इसे सक्षम करें।
- `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — डीप्रिकेटेड: इसके बजाय `pre_tool_speech` इस्तेमाल करें। true होने पर, इस MCP सर्वर के सभी टूल के लिए टूल एक्ज़ीक्यूशन से पहले स्पीच आवश्यक होगी।
- `disable_interruptions` (boolean, optional, default: false, deprecated) — डीप्रिकेटेड: इसके बजाय `interruption_mode` इस्तेमाल करें। true होने पर, इस MCP सर्वर का कोई भी टूल चलने के दौरान यूज़र एजेंट को बाधित नहीं कर पाएगा।

### MCPServerMetadataResponseModel

- `created_at` (integer, required)
- `owner_user_id` (string, optional, nullable)

### ResourceAccessInfo

- `is_creator` (boolean, required) — क्या अनुरोध करने वाला यूज़र एजेंट का निर्माता है
- `creator_name` (string, required) — एजेंट के निर्माता का नाम
- `creator_email` (string, required) — एजेंट के निर्माता का ईमेल
- `role` (enum, required) — रिक्वेस्ट करने वाले यूज़र की भूमिका
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `anonymous_access_level_override` (enum, optional, nullable) — अनाम यूज़र्स के लिए एक्सेस लेवल। यदि None है, तो रिसोर्स सार्वजनिक रूप से शेयर नहीं किया गया है।
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `access_source` (enum, optional, nullable) — रिक्वेस्ट करने वाले यूज़र के पास इस रिसोर्स का एक्सेस क्यों है। 'creator' = कॉलर मालिक है। 'explicit' = कॉलर (या उसके किसी वर्कस्पेस ग्रुप) को वर्कस्पेस-व्यापी everyone ग्रुप के अलावा role_to_group_ids में सूचीबद्ध किया गया है। 'workspace_default' = वर्कस्पेस-व्यापी everyone ग्रुप role_to_group_ids में सूचीबद्ध है (एडमिन समेत हर गैर-अनाम वर्कस्पेस सदस्य इस रिसोर्स को देखता है)। 'workspace_admin' = कॉलर वर्कस्पेस एडमिन है और एडमिन सीट ही एक्सेस का *एकमात्र* रास्ता है; यह उन दस्तावेज़ों के लिए आरक्षित है जिन्हें कोई और नहीं देख सकता। इससे UI बता पाता है कि एडमिन-बायपास व्यूअर को वह दस्तावेज़ क्यों दिख रहा है जो उसके साथ स्पष्ट रूप से शेयर नहीं किया गया था।
  - Allowed values: `creator`, `explicit`, `workspace_admin`, `workspace_default`

### McpServerResponseModelDependentAgentsItems

- `type`: `available` (DependentAvailableAgentIdentifier)
  - `access_level` (enum, required)
    - Allowed values: `admin`, `editor`, `commenter`, `viewer`
  - `created_at_unix_secs` (integer, required)
  - `id` (string, required)
  - `name` (string, required)
  - `referenced_resource_ids` (list of string, optional) — अगर एजेंट एक ट्रांज़िटिव डिपेंडेंट है, तो इसमें उन संसाधनों के IDs होते हैं जिन पर एजेंट सीधे निर्भर करता है।
- `type`: `unknown` (DependentUnknownAgentIdentifier)
  - `id` (string, required)
  - `referenced_resource_ids` (list of string, optional) — अगर एजेंट एक ट्रांज़िटिव डिपेंडेंट है, तो इसमें उन संसाधनों के IDs होते हैं जिन पर एजेंट सीधे निर्भर करता है।

### ValidationError

- `loc` (list of ValidationErrorLocItems, required)
- `msg` (string, required)
- `type` (string, required)

### McpServerConfigOutputUrl

MCP सर्वर का URL। अगर इसमें कोई सीक्रेट है, तो इसे वर्कस्पेस सीक्रेट के रूप में स्टोर करें, अन्यथा प्लेन स्ट्रिंग के रूप में स्टोर करें। https का इस्तेमाल करना ज़रूरी है।

### MCPToolApprovalHash

हर टूल के लिए अप्रूवल हेतु टूल अप्रूवल हैश स्टोर करने वाला मॉडल।

- `tool_name` (string, required) — MCP टूल का नाम
- `tool_hash` (string, required) — tool के parameters और description का SHA256 hash
- `approval_policy` (enum, optional, default: requires_approval) — इस टूल के लिए अप्रूवल पॉलिसी
  - Allowed values: `auto_approved`, `requires_approval`

### McpServerConfigOutputSecretToken

वर्कस्पेस सीक्रेट या इन-प्लेस सीक्रेट के रूप में स्टोर किया गया सीक्रेट टोकन (Authorization हेडर)

### McpServerConfigOutputRequestHeaders

### McpServerConfigOutputRequestMeta

### McpServerConfigOutputAuthConnection

इस MCP server के साथ authentication के लिए इस्तेमाल होने वाला वैकल्पिक auth connection

### MCPToolConfigOverride-Output

- `tool_name` (string, required) — MCP टूल का नाम
- `pre_tool_speech` (enum, optional, nullable, default: auto) — सेट होने पर, इस टूल के लिए सर्वर की pre_tool_speech सेटिंग को ओवरराइड करता है।
  - Allowed values: `auto`, `force`, `off`
- `interruption_mode` (enum, optional, nullable, default: allow) — सेट होने पर, इस टूल के लिए सर्वर की interruption_mode सेटिंग को ओवरराइड करता है।
  - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
- `tool_call_sound` (McpToolConfigOverrideOutputToolCallSound, optional, nullable) — इस tool के लिए server की tool_call_sound setting को override करता है। sound name उस sound को चलाता है; 'off' का मतलब कोई sound नहीं (silence); null का मतलब override न करें (server default अपनाएं)।
- `tool_call_sound_behavior` (enum, optional, nullable, default: auto) — सेट होने पर, इस टूल के लिए सर्वर की tool_call_sound_behavior सेटिंग को ओवरराइड करता है
  - Allowed values: `auto`, `always`
- `execution_mode` (enum, optional, nullable, default: immediate) — सेट होने पर, इस टूल के लिए सर्वर की execution_mode सेटिंग को ओवरराइड करता है
  - Allowed values: `immediate`, `post_tool_speech`, `async`
- `response_timeout_secs` (integer, optional, nullable) — सेट होने पर, इस MCP टूल के लिए सर्वर के रिस्पॉन्स टाइमआउट (सेकंड में) को ओवरराइड करता है।
- `assignments` (list of DynamicVariableAssignment, optional) — इस MCP टूल के लिए डायनामिक वेरिएबल असाइनमेंट
- `input_overrides` (map from string to McpToolConfigOverrideOutputInputOverrides, optional, nullable) — json पाथ और इनपुट ओवरराइड कॉन्फ़िगरेशन की मैपिंग
- `response_mocks` (list of ToolResponseMockConfig-Output, optional, nullable) — वैकल्पिक पैरामीटर शर्तों वाले मॉक जवाब। ऊपर से नीचे तक मूल्यांकन होता है; पहला मैच चुना जाता है।
- `force_pre_tool_speech` (boolean, optional, nullable, deprecated) — डीप्रिकेटेड: इसके बजाय `pre_tool_speech` इस्तेमाल करें। सेट होने पर यह इस टूल के लिए सर्वर की force_pre_tool_speech सेटिंग को ओवरराइड करता है।
- `disable_interruptions` (boolean, optional, nullable, deprecated) — डीप्रिकेटेड: इसके बजाय `interruption_mode` इस्तेमाल करें। सेट होने पर यह इस टूल के लिए सर्वर की disable_interruptions सेटिंग को ओवरराइड करता है।

### ValidationErrorLocItems

### ConvAISecretLocator

एजेंट के secret store में मौजूद secret को रेफ़र करने के लिए इस्तेमाल होता है।

- `secret_id` (string, required)

### ConvAIUserSecretDBModel

यूज़र-विशिष्ट secret मॉडल, जो वर्कस्पेस के दूसरे यूज़र्स के साथ शेयर नहीं किए जाते।

- `name` (string, required)
- `encrypted_value` (string, required)
- `nonce` (string, required)
- `id` (string, required)

### ConvAIDynamicVariable

डायनामिक वेरिएबल को रेफ़र करने के लिए इस्तेमाल होता है।

- `variable_name` (string, required)

### ConvAIEnvVarLocator

लेबल से environment variable को रेफ़र करने के लिए इस्तेमाल होता है।

- `env_var_label` (string, required)

### AuthConnectionLocator

वर्कस्पेस के auth कनेक्शन store से auth कनेक्शन को रेफ़र करने के लिए इस्तेमाल होता है।

- `auth_connection_id` (string, required)

### EnvironmentAuthConnectionLocator

लेबल के ज़रिए 'auth_connection' टाइप के environment variable को रेफ़र करता है। रनटाइम पर, मौजूदा environment के लिए auth connection निर्धारित करता है, और न मिलने पर default environment इस्तेमाल करता है।

- `env_var_label` (string, required)

### McpToolConfigOverrideOutputToolCallSound

इस tool के लिए server की tool_call_sound setting को override करता है। sound name उस sound को चलाता है; 'off' का मतलब कोई sound नहीं (silence); null का मतलब override न करें (server default अपनाएं)।

### DynamicVariableAssignment

टूल रिस्पॉन्स से वैल्यू निकालने और उन्हें डायनामिक वेरिएबल को असाइन करने के लिए कॉन्फ़िगरेशन।

- `dynamic_variable` (string, required) — निकाली गई वैल्यू असाइन करने के लिए dynamic variable का नाम
- `value_path` (string, required) — सोर्स से मान निकालने के लिए डॉट नोटेशन पाथ (जैसे, 'user.name' या 'data.0.id')
- `source` ("response", optional, default: response) — वह स्रोत जिससे वैल्यू निकाली जाएगी। फ़िलहाल केवल 'response' समर्थित है।
- `sanitize` (boolean, optional, default: false) — अगर true है, तो इस असाइनमेंट का मान LLM और ट्रांसक्रिप्ट को भेजने से पहले टूल रिस्पॉन्स से हटा दिया जाएगा, लेकिन वेरिएबल असाइनमेंट के लिए फिर भी प्रोसेस किया जाएगा।
- `preserve_native_type` (boolean, optional, default: false) — अगर true है, तो टूल रिस्पॉन्स से निकाले गए नॉन-स्केलर मानों (सूचियों, ऑब्जेक्ट्स) को JSON स्ट्रिंग में बदलने के बजाय उनके मूल प्रकार में स्टोर किया जाता है। निकाले गए arrays को सीधे सूची dynamic variables के रूप में इस्तेमाल करने के लिए इसे सक्षम करें।

### McpToolConfigOverrideOutputInputOverrides

- `source`: `constant` (ConstantSchemaOverride)
  - `constant_value` (WorkflowToolLocatorSchemaOverridesDiscriminatorMappingConstantConstantValue, required, nullable) — इस्तेमाल किया जाने वाला कॉन्स्टेंट मान
- `source`: `dynamic_variable` (DynamicVariableSchemaOverride)
  - `dynamic_variable` (string, required) — इस्तेमाल किए जाने वाले dynamic variable का नाम
- `source`: `llm` (LLMSchemaOverride)
  - `prompt` (string, optional, nullable) — LLM के लिए प्रॉम्प्ट ओवरराइड। न देने पर, मूल schema विवरण इस्तेमाल किया जाता है।
- `source`: `omit` (OmitSchemaOverride)

### ToolResponseMockConfig-Output

- `mock_result` (string, required) — इस मॉक के सक्रिय होने पर LLM को दिखने वाली रिटर्न वैल्यू।
- `parameter_conditions` (list of UnitTestToolCallParameter, optional) — अगर सूची खाली है, तो mock हमेशा सक्रिय होगा।
- `is_error` (boolean, optional, default: false) — अगर true है, तो mock परिणाम को सफल परिणाम के बजाय टूल त्रुटि के रूप में LLM को दिखाया जाता है।

### WorkflowToolLocatorSchemaOverridesDiscriminatorMappingConstantConstantValue

इस्तेमाल किया जाने वाला कॉन्स्टेंट मान

### UnitTestToolCallParameter

- `eval` (UnitTestToolCallParameterEval, required)
- `path` (string, required)

### UnitTestToolCallParameterEval

- `type`: `anything` (MatchAnythingParameterEvaluationStrategy)
- `type`: `exact` (ExactParameterEvaluationStrategy)
  - `expected_value` (string, required) — वह सटीक स्ट्रिंग मान जिससे पैरामीटर का मिलना ज़रूरी है।
- `type`: `llm` (LLMParameterEvaluationStrategy)
  - `description` (string, required) — टेस्ट के लिए इस्तेमाल की जाने वाली मूल्यांकन रणनीति का विवरण।
- `type`: `regex` (RegexParameterEvaluationStrategy)
  - `pattern` (string, required) — एजेंट के जवाब से मिलान करने के लिए एक regex पैटर्न।

## Examples

**Response**

```json
{
  "id": "string",
  "config": {
    "url": "string",
    "name": "string",
    "approval_policy": "require_approval_all",
    "tool_approval_hashes": [
      {
        "tool_name": "string",
        "tool_hash": "string",
        "approval_policy": "requires_approval"
      }
    ],
    "transport": "SSE",
    "secret_token": {
      "secret_id": "string"
    },
    "request_headers": {},
    "request_meta": {},
    "auth_connection": {
      "auth_connection_id": "string"
    },
    "description": "",
    "pre_tool_speech": "auto",
    "interruption_mode": "allow",
    "tool_call_sound": "typing",
    "tool_call_sound_behavior": "auto",
    "execution_mode": "immediate",
    "response_timeout_secs": 30,
    "tool_config_overrides": [
      {
        "tool_name": "string",
        "pre_tool_speech": "auto",
        "interruption_mode": "allow",
        "tool_call_sound": "typing",
        "tool_call_sound_behavior": "auto",
        "execution_mode": "immediate",
        "response_timeout_secs": 1,
        "assignments": [
          {
            "dynamic_variable": "string",
            "value_path": "string",
            "source": "response",
            "sanitize": false,
            "preserve_native_type": false
          }
        ],
        "input_overrides": {},
        "response_mocks": [
          {
            "mock_result": "string",
            "parameter_conditions": [
              {
                "eval": {
                  "description": "string",
                  "type": "string"
                },
                "path": "string"
              }
            ],
            "is_error": false
          }
        ],
        "force_pre_tool_speech": true,
        "disable_interruptions": true
      }
    ],
    "disable_compression": false,
    "force_pre_tool_speech": false,
    "disable_interruptions": false
  },
  "metadata": {
    "created_at": 1,
    "owner_user_id": "string"
  },
  "access_info": {
    "is_creator": true,
    "creator_name": "John Doe",
    "creator_email": "john.doe@example.com",
    "role": "admin",
    "access_source": "creator"
  },
  "dependent_agents": [
    {
      "type": "available",
      "access_level": "admin",
      "created_at_unix_secs": 1,
      "id": "string",
      "name": "string",
      "referenced_resource_ids": [
        "string"
      ]
    }
  ]
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/convai/mcp-servers/mcp_server_id/tool-configs/tool_name"

response = requests.delete(url)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/convai/mcp-servers/mcp_server_id/tool-configs/tool_name';
const options = {method: 'DELETE'};

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"
	"net/http"
	"io"
)

func main() {

	url := "https://api.elevenlabs.io/v1/convai/mcp-servers/mcp_server_id/tool-configs/tool_name"

	req, _ := http.NewRequest("DELETE", url, nil)

	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://api.elevenlabs.io/v1/convai/mcp-servers/mcp_server_id/tool-configs/tool_name")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.delete("https://api.elevenlabs.io/v1/convai/mcp-servers/mcp_server_id/tool-configs/tool_name")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('DELETE', 'https://api.elevenlabs.io/v1/convai/mcp-servers/mcp_server_id/tool-configs/tool_name');

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/convai/mcp-servers/mcp_server_id/tool-configs/tool_name");
var request = new RestRequest(Method.DELETE);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/convai/mcp-servers/mcp_server_id/tool-configs/tool_name")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "DELETE"

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()
```