---
title: "Mint a remote control link for one page."
method: POST
path: "/api/devtools/targets/{target_id}/link"
tags: ["devtools"]
---

# Mint a remote control link for one page.

`POST /api/devtools/targets/{target_id}/link`

## Request

- The document declares no server URL.
- Auth: none declared

The caller authenticates as they would for any other endpoint; what comes
back is a path anyone can open, so it is handed to a person, not published.

Naming Chromium's target directly does not get around the block's Remote
Control switch: the target has to be the page of an HTML source with the
switch on, the same page [`create_block_link`] would hand out for it. The
two endpoints are different ways of naming the same page, so they cannot be
allowed to disagree about whether it may be opened.

## Path parameters

- `target_id` string, required

## Response `200`

A remote control link for this HTML source

- DevToolsLink: A minted remote control link. The path is the whole credential: it names no target, carries no API token and spells out no address or port, so handing it over hands over exactly what it says and nothing more. It dies on its own if it goes unused.
  - `expires_in_seconds` integer, required: How long the link survives without being used. Each use starts it over.
  - `id` string, required: A name for this link that is not the credential. Safe to show, store and log. It is what `DELETE /api/devtools/links/{id}` takes, so a link can be revoked without anyone having to keep the key.
  - `path` string, required: Path to open in a browser, relative to this Strom instance. This one *is* the credential — everything under it is reachable by whoever holds it, so it is handed to a person, never logged or stored.
  - `warning` string, required: What the holder of this link can actually reach, in Strom's words: one of [`SCREENCAST_CONTROL_WARNING`] (with [`SHARED_CONTEXT_WARNING`] appended when sources share a browser context) or [`REMOTE_CONTROL_WARNING`]. A client shows it to the operator before handing the link on.

## Other responses

- `400`: Malformed target id
- `401`: Authentication required
- `403`: No HTML source with remote control on is rendering this page
- `404`: Remote control is disabled, or no such page

## Changes

- **2026-10-02** `0f79258b5369`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/eyevinn/apis/strom-api/changes/api/devtools/targets/:target_id/link/post.md)

---

[API](https://skmtc.dev/eyevinn/apis/strom-api.md) - [All operations](https://skmtc.dev/eyevinn/apis/strom-api/llms.txt) - [OpenAPI document](https://skmtc.dev/eyevinn/apis/strom-api/revisions/8cd4dbc44175?raw)
