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

# Templatesessie maken

POST https://api.elevenlabs.io/v1/flows/templates/{template_id}/runs
Content-Type: application/json

Start een uitvoering van een flows-sjabloon. Geef `version_id` door om een snapshot vast te zetten, of laat het weg / geef `latest` door om de meest recente gepubliceerde versie uit te voeren. Stel invoerwaarden in onder `inputs`, met de id van de invoerpoort als sleutel. De response is de uitvoering in de beginstatus, waarbij elke uitvoer al onder de poort-id in `outputs` staat vermeld. Voeg `webhook` toe om een `flows_template_run`-event te ontvangen met de voltooide uitvoering zodra de `status` `completed` of `failed` is; dit is de aanbevolen manier om te wachten. Zonder webhook haal je `GET /v1/flows/templates/{template_id}/runs/{run_id}` met een bescheiden interval op totdat de `status` definitief is.

Reference: https://elevenlabs.io/docs/api-reference/flows/templates/runs/create

## 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

- `template_id` (string, required) — De ID van de template, zoals weergegeven in de ElevenLabs-app of door `GET /v1/flows/templates`.

### Body (application/json)

This endpoint expects a TemplateRunCreateRequest.

- `inputs` (map from string to TemplateRunInput, required) — Invoerwaarden, ingedeeld op inputpoort-id. Voor elke inputpoort van de uitgevoerde versie moet een waarde worden opgegeven; een ontbrekende of onbekende id wordt afgewezen. Geef `{}` door voor een template zonder invoer.
- `version_id` (string, optional, nullable) — De templatesnapshot die moet worden uitgevoerd. Geef een specifieke versie-ID op om die snapshot vast te zetten, of `latest` (de standaardwaarde wanneer deze wordt weggelaten) om de meest recent gepubliceerde versie van de template uit te voeren. Alleen gepubliceerde versies kunnen worden vastgezet, behalve door de eigenaar van de template, die ook een niet-gepubliceerde opgeslagen snapshot kan vastzetten om deze vóór publicatie uit te proberen. Het liveconcept wordt nooit via deze API uitgevoerd.
- `webhook` (WebhookTarget, optional, nullable) — Voeg dit toe om het resultaat van de run naar de geconfigureerde flows-webhooks van de workspace te sturen zodra de `status` van de run `completed` of `failed` bereikt. Eén event voor de hele run: de `data` van het event `flows_template_run` komt overeen met het eindantwoord van `GET /v1/flows/templates/{template_id}/runs/{run_id}`.

## Response

### 200

Geslaagde response

- `id` (string, required) — De unieke identificatiecode van de run.
- `template_id` (string, required) — De template die deze uitvoering heeft uitgevoerd, zodat een webhookconsumer die meerdere templates uitvoert de uitvoeringen kan onderscheiden zonder een koppeling tussen uitvoeringen en templates bij te houden.
- `version_id` (string, required) — De templateversie die deze run heeft uitgevoerd. Deze wordt bepaald wanneer de run wordt gemaakt, zodat een run die met `latest` is gestart, de concrete versie vastlegt die is uitgevoerd.
- `status` (enum, required) — De status van de run, samengevoegd uit de uitvoer: `pending` totdat een uitvoer start, `generating` zolang een uitvoer niet is voltooid, `completed` zodra alle uitvoer is voltooid en `failed` zodra alle uitvoer is voltooid en ten minste één is mislukt. `completed` en `failed` zijn eindstatussen: de webhook `flows_template_run` wordt geactiveerd zodra de run een van beide bereikt.
  - Allowed values: `pending`, `generating`, `completed`, `failed`
- `outputs` (map from string to TemplateOutput, required) — De uitvoer van de run, ingedeeld op uitvoerpoort-id. Elk item is een `TemplateOutput`, onderscheiden op `type`, het `type` van de `content_schema` van de poort.

## Errors

### 422 Unprocessable Entity Error

Validatiefout

- `detail` (list of ValidationError, optional)

## Types

### TemplateRunInput

Eén waarde gekoppeld aan een template-inputpoort, in de vorm die de `content_schema` vereist. Een `string`-poort neemt de tekst zelf; `number`-, `integer`- en `boolean`-poorten nemen een JSON-waarde van dat type. Alles wat elders is opgeslagen, is een referentie gediscrimineerd op `type`: een eerdere `generation`, een geüploade `asset`, een `voice` of media die via `inline_base64` is doorgegeven. Een `array`-poort neemt een JSON-array met één waarde per element, toegestaan voor de `items` van het schema. `object`-poorten kunnen nog niet via deze API worden gekoppeld. Hier gelden geen andere beperkingen dan de vorm van de gegevensoverdracht: wat een poort accepteert (een `enum`, een lengte) staat in de `content_schema`, en het uitvoeringspad valideert aan de hand van datzelfde schema.

### WebhookTarget

- `type`: `all` (WebhookTargetAll)
- `type`: `ids` (WebhookTargetIds)
  - `ids` (list of string, required) — De ID's van de workspace flows-webhooks waarnaar het resultaat moet worden verzonden. Elke webhook moet een van de geconfigureerde flows-webhooks van de workspace zijn.

### TemplateOutput

Eén output van een template-uitvoering, gediscrimineerd op `type`: het `type` van de `content_schema` van de poort. Controleer `status` om te zien waar deze zich in de levenscyclus bevindt.

- `type`: `array` (TemplateArrayOutput)
  - `has_more` (boolean, required) — Of de lijst elementen buiten `content` bevat.
  - `id` (string, required) — De id van de generatie achter deze output. Geef deze door als een `generation`-referentie om de output elders als invoer te gebruiken.
  - `status` (enum, required) — De levenscyclusstatus van de uitvoer. Deze eindigt op `completed`, wanneer de inhoudsvelden van de uitvoer zijn ingesteld, of op `failed`, wanneer `failure_reason` en `error_message` zijn ingesteld.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (list of TemplateOutput, optional, nullable) — De eerste elementen van de lijst, op volgorde, elk volgens de vorm van de `items` van het schema. Alleen aanwezig wanneer `status` `completed` is. Wanneer `has_more` true is, is dit niet de volledige lijst. Gereserveerd: nog geen template produceert dit type output; dit is gepubliceerd zodat templates die dat wel doen met dezelfde client kunnen worden uitgevoerd.
  - `error_message` (string, optional, nullable) — Een leesbare beschrijving van de fout. Alleen aanwezig wanneer `status` `failed` is. Voor mislukte generaties worden geen kosten in rekening gebracht.
  - `failure_reason` (enum, optional, nullable) — De categorie van de fout. Alleen aanwezig wanneer `status` `failed` is.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
  - `next_cursor` (string, optional, nullable) — Geef door als `cursor` aan een later endpoint om de elementen na `content` op te halen. `null` wanneer `content` de volledige lijst bevat, of voordat de uitvoer is voltooid. Gereserveerd: nog geen template produceert dit soort uitvoer; het is gepubliceerd zodat templates die dat wel doen met dezelfde client kunnen worden uitgevoerd.
- `type`: `audio` (TemplateAudioOutput)
  - `id` (string, required) — De id van de generatie achter deze output. Geef deze door als een `generation`-referentie om de output elders als invoer te gebruiken.
  - `status` (enum, required) — De levenscyclusstatus van de uitvoer. Deze eindigt op `completed`, wanneer de inhoudsvelden van de uitvoer zijn ingesteld, of op `failed`, wanneer `failure_reason` en `error_message` zijn ingesteld.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content_mime_type` (string, optional, nullable) — Het MIME-type van de gegenereerde media. Alleen aanwezig wanneer `status` `completed` is.
  - `content_url` (string, optional, nullable) — Een ondertekende URL om de gegenereerde media te downloaden. Alleen aanwezig wanneer `status` `completed` is. Deze verloopt ongeveer een uur nadat dit antwoord is geretourneerd; haal de run opnieuw op voor een nieuwe URL.
  - `error_message` (string, optional, nullable) — Een leesbare beschrijving van de fout. Alleen aanwezig wanneer `status` `failed` is. Voor mislukte generaties worden geen kosten in rekening gebracht.
  - `failure_reason` (enum, optional, nullable) — De categorie van de fout. Alleen aanwezig wanneer `status` `failed` is.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `boolean` (TemplateBooleanOutput)
  - `id` (string, required) — De id van de generatie achter deze output. Geef deze door als een `generation`-referentie om de output elders als invoer te gebruiken.
  - `status` (enum, required) — De levenscyclusstatus van de uitvoer. Deze eindigt op `completed`, wanneer de inhoudsvelden van de uitvoer zijn ingesteld, of op `failed`, wanneer `failure_reason` en `error_message` zijn ingesteld.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (boolean, optional, nullable) — De gegenereerde boolean. Alleen aanwezig wanneer `status` `completed` is. Gereserveerd: nog geen template produceert dit type output; dit is gepubliceerd zodat templates die dat wel doen met dezelfde client kunnen worden uitgevoerd.
  - `error_message` (string, optional, nullable) — Een leesbare beschrijving van de fout. Alleen aanwezig wanneer `status` `failed` is. Voor mislukte generaties worden geen kosten in rekening gebracht.
  - `failure_reason` (enum, optional, nullable) — De categorie van de fout. Alleen aanwezig wanneer `status` `failed` is.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `image` (TemplateImageOutput)
  - `id` (string, required) — De id van de generatie achter deze output. Geef deze door als een `generation`-referentie om de output elders als invoer te gebruiken.
  - `status` (enum, required) — De levenscyclusstatus van de uitvoer. Deze eindigt op `completed`, wanneer de inhoudsvelden van de uitvoer zijn ingesteld, of op `failed`, wanneer `failure_reason` en `error_message` zijn ingesteld.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content_mime_type` (string, optional, nullable) — Het MIME-type van de gegenereerde media. Alleen aanwezig wanneer `status` `completed` is.
  - `content_url` (string, optional, nullable) — Een ondertekende URL om de gegenereerde media te downloaden. Alleen aanwezig wanneer `status` `completed` is. Deze verloopt ongeveer een uur nadat dit antwoord is geretourneerd; haal de run opnieuw op voor een nieuwe URL.
  - `error_message` (string, optional, nullable) — Een leesbare beschrijving van de fout. Alleen aanwezig wanneer `status` `failed` is. Voor mislukte generaties worden geen kosten in rekening gebracht.
  - `failure_reason` (enum, optional, nullable) — De categorie van de fout. Alleen aanwezig wanneer `status` `failed` is.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `integer` (TemplateIntegerOutput)
  - `id` (string, required) — De id van de generatie achter deze output. Geef deze door als een `generation`-referentie om de output elders als invoer te gebruiken.
  - `status` (enum, required) — De levenscyclusstatus van de uitvoer. Deze eindigt op `completed`, wanneer de inhoudsvelden van de uitvoer zijn ingesteld, of op `failed`, wanneer `failure_reason` en `error_message` zijn ingesteld.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (integer, optional, nullable) — Het gegenereerde gehele getal. Alleen aanwezig wanneer `status` `completed` is. Gereserveerd: nog geen template produceert dit type output; dit is gepubliceerd zodat templates die dat wel doen met dezelfde client kunnen worden uitgevoerd.
  - `error_message` (string, optional, nullable) — Een leesbare beschrijving van de fout. Alleen aanwezig wanneer `status` `failed` is. Voor mislukte generaties worden geen kosten in rekening gebracht.
  - `failure_reason` (enum, optional, nullable) — De categorie van de fout. Alleen aanwezig wanneer `status` `failed` is.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `number` (TemplateNumberOutput)
  - `id` (string, required) — De id van de generatie achter deze output. Geef deze door als een `generation`-referentie om de output elders als invoer te gebruiken.
  - `status` (enum, required) — De levenscyclusstatus van de uitvoer. Deze eindigt op `completed`, wanneer de inhoudsvelden van de uitvoer zijn ingesteld, of op `failed`, wanneer `failure_reason` en `error_message` zijn ingesteld.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (double, optional, nullable) — Het gegenereerde getal. Alleen aanwezig wanneer `status` `completed` is. Gereserveerd: nog geen template produceert dit type output; dit is gepubliceerd zodat templates die dat wel doen met dezelfde client kunnen worden uitgevoerd.
  - `error_message` (string, optional, nullable) — Een leesbare beschrijving van de fout. Alleen aanwezig wanneer `status` `failed` is. Voor mislukte generaties worden geen kosten in rekening gebracht.
  - `failure_reason` (enum, optional, nullable) — De categorie van de fout. Alleen aanwezig wanneer `status` `failed` is.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `object` (TemplateObjectOutput)
  - `id` (string, required) — De id van de generatie achter deze output. Geef deze door als een `generation`-referentie om de output elders als invoer te gebruiken.
  - `status` (enum, required) — De levenscyclusstatus van de uitvoer. Deze eindigt op `completed`, wanneer de inhoudsvelden van de uitvoer zijn ingesteld, of op `failed`, wanneer `failure_reason` en `error_message` zijn ingesteld.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (map from string to TemplateOutput, optional, nullable) — Eén output per veld, met de veldnaam als sleutel en volgens de vorm van het schema van dat veld. Alleen aanwezig wanneer `status` `completed` is. Gereserveerd: nog geen template produceert dit type output; het is gepubliceerd zodat templates die dit wel doen met dezelfde client kunnen worden uitgevoerd.
  - `error_message` (string, optional, nullable) — Een leesbare beschrijving van de fout. Alleen aanwezig wanneer `status` `failed` is. Voor mislukte generaties worden geen kosten in rekening gebracht.
  - `failure_reason` (enum, optional, nullable) — De categorie van de fout. Alleen aanwezig wanneer `status` `failed` is.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `string` (TemplateStringOutput)
  - `id` (string, required) — De id van de generatie achter deze output. Geef deze door als een `generation`-referentie om de output elders als invoer te gebruiken.
  - `status` (enum, required) — De levenscyclusstatus van de uitvoer. Deze eindigt op `completed`, wanneer de inhoudsvelden van de uitvoer zijn ingesteld, of op `failed`, wanneer `failure_reason` en `error_message` zijn ingesteld.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content` (string, optional, nullable) — De gegenereerde tekst. Alleen aanwezig wanneer `status` `completed` is.
  - `error_message` (string, optional, nullable) — Een leesbare beschrijving van de fout. Alleen aanwezig wanneer `status` `failed` is. Voor mislukte generaties worden geen kosten in rekening gebracht.
  - `failure_reason` (enum, optional, nullable) — De categorie van de fout. Alleen aanwezig wanneer `status` `failed` is.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`
- `type`: `video` (TemplateVideoOutput)
  - `id` (string, required) — De id van de generatie achter deze output. Geef deze door als een `generation`-referentie om de output elders als invoer te gebruiken.
  - `status` (enum, required) — De levenscyclusstatus van de uitvoer. Deze eindigt op `completed`, wanneer de inhoudsvelden van de uitvoer zijn ingesteld, of op `failed`, wanneer `failure_reason` en `error_message` zijn ingesteld.
    - Allowed values: `pending`, `generating`, `completed`, `failed`
  - `content_mime_type` (string, optional, nullable) — Het MIME-type van de gegenereerde media. Alleen aanwezig wanneer `status` `completed` is.
  - `content_url` (string, optional, nullable) — Een ondertekende URL om de gegenereerde media te downloaden. Alleen aanwezig wanneer `status` `completed` is. Deze verloopt ongeveer een uur nadat dit antwoord is geretourneerd; haal de run opnieuw op voor een nieuwe URL.
  - `error_message` (string, optional, nullable) — Een leesbare beschrijving van de fout. Alleen aanwezig wanneer `status` `failed` is. Voor mislukte generaties worden geen kosten in rekening gebracht.
  - `failure_reason` (enum, optional, nullable) — De categorie van de fout. Alleen aanwezig wanneer `status` `failed` is.
    - Allowed values: `timeout`, `model_error`, `moderated`, `invalid_parameters`, `dependency_failed`, `charging_failed`, `internal_error`

### ValidationError

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

### ValidationErrorLocItems

## Examples

**Request**

```json
{
  "inputs": {
    "prompt": "a corgi on a surfboard",
    "reference": {
      "asset_id": "5xM2KqOnZyce22SPZ9d4",
      "type": "asset"
    }
  },
  "version_id": "latest",
  "webhook": {
    "type": "all"
  }
}
```

**Response**

```json
{
  "id": "sess_JWr5N6X9ZTqf8jD2LmQb",
  "template_id": "tmpl_abc123",
  "version_id": "ver_01hxyz",
  "status": "generating",
  "outputs": {
    "marketing_title": {
      "type": "string",
      "id": "Kx2mP7Y4WVrg9kE3NnRc",
      "status": "completed",
      "content": "Ride the wave."
    },
    "product_demo": {
      "type": "video",
      "id": "QWr5N6X9ZTqf8jD2La3B",
      "status": "generating"
    },
    "product_still": {
      "type": "image",
      "id": "JWr5N6X9ZTqf8jD2LmQb",
      "status": "completed",
      "content_mime_type": "image/png",
      "content_url": "https://storage.googleapis.com/generations/JWr5N6X9ZTqf8jD2LmQb"
    }
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/flows/templates/template_id/runs"

payload = {
    "inputs": {
        "prompt": "a corgi on a surfboard",
        "reference": {
            "asset_id": "5xM2KqOnZyce22SPZ9d4",
            "type": "asset"
        }
    },
    "version_id": "latest",
    "webhook": { "type": "all" }
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/flows/templates/template_id/runs';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: '{"inputs":{"prompt":"a corgi on a surfboard","reference":{"asset_id":"5xM2KqOnZyce22SPZ9d4","type":"asset"}},"version_id":"latest","webhook":{"type":"all"}}'
};

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://api.elevenlabs.io/v1/flows/templates/template_id/runs"

	payload := strings.NewReader("{\n  \"inputs\": {\n    \"prompt\": \"a corgi on a surfboard\",\n    \"reference\": {\n      \"asset_id\": \"5xM2KqOnZyce22SPZ9d4\",\n      \"type\": \"asset\"\n    }\n  },\n  \"version_id\": \"latest\",\n  \"webhook\": {\n    \"type\": \"all\"\n  }\n}")

	req, _ := http.NewRequest("POST", 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://api.elevenlabs.io/v1/flows/templates/template_id/runs")

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

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n  \"inputs\": {\n    \"prompt\": \"a corgi on a surfboard\",\n    \"reference\": {\n      \"asset_id\": \"5xM2KqOnZyce22SPZ9d4\",\n      \"type\": \"asset\"\n    }\n  },\n  \"version_id\": \"latest\",\n  \"webhook\": {\n    \"type\": \"all\"\n  }\n}"

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.post("https://api.elevenlabs.io/v1/flows/templates/template_id/runs")
  .header("Content-Type", "application/json")
  .body("{\n  \"inputs\": {\n    \"prompt\": \"a corgi on a surfboard\",\n    \"reference\": {\n      \"asset_id\": \"5xM2KqOnZyce22SPZ9d4\",\n      \"type\": \"asset\"\n    }\n  },\n  \"version_id\": \"latest\",\n  \"webhook\": {\n    \"type\": \"all\"\n  }\n}")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.elevenlabs.io/v1/flows/templates/template_id/runs', [
  'body' => '{
  "inputs": {
    "prompt": "a corgi on a surfboard",
    "reference": {
      "asset_id": "5xM2KqOnZyce22SPZ9d4",
      "type": "asset"
    }
  },
  "version_id": "latest",
  "webhook": {
    "type": "all"
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

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

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/flows/templates/template_id/runs");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"inputs\": {\n    \"prompt\": \"a corgi on a surfboard\",\n    \"reference\": {\n      \"asset_id\": \"5xM2KqOnZyce22SPZ9d4\",\n      \"type\": \"asset\"\n    }\n  },\n  \"version_id\": \"latest\",\n  \"webhook\": {\n    \"type\": \"all\"\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = [
  "inputs": [
    "prompt": "a corgi on a surfboard",
    "reference": [
      "asset_id": "5xM2KqOnZyce22SPZ9d4",
      "type": "asset"
    ]
  ],
  "version_id": "latest",
  "webhook": ["type": "all"]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/flows/templates/template_id/runs")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
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()
```