---
title: "ICE servers for a WebRTC viewer of this device: the TURN of the device's host with a temporary credential (read key is enough)"
method: GET
path: "/devices/{name}/ice"
tags: ["Devices"]
---

# ICE servers for a WebRTC viewer of this device: the TURN of the device's host with a temporary credential (read key is enough)

`GET /devices/{name}/ice`

## Request

- Base URL: `https://api.clousd.com/v1`
- URL: `https://api.clousd.com/v1/devices/{name}/ice`
- Auth: HTTP bearer

Pass them as RTCPeerConnection({iceServers}) before POST …/stream. Needed behind VPNs that block non-proxied UDP and strict NATs; empty when the host has no TURN. The credential lives ttl seconds - ask again before it expires.

## Query parameters

- `viewer` string

## Response `200`

ICE servers

- object
  - `ok` boolean
  - `ttl` integer: Credential lifetime in seconds (0 = no TURN)
  - `ice_servers` object[]
    - `urls` string[]
    - `username` string
    - `credential` string

---

[API](https://skmtc.dev/clousd/apis/clousd-api.md) · [All operations](https://skmtc.dev/clousd/apis/clousd-api/llms.txt) · [OpenAPI document](https://skmtc.dev/clousd/apis/clousd-api/revisions/0291ffd26ae3?raw)
