compute
POST /v1/panels/connections/{connectionId}/login-link
One-click login — a one-time administrative session on the panel.
Authentication
Send an API key as a bearer token. This endpoint does not state a specific permission in the specification, so give your key the least it needs and check the response rather than assuming.
This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.
Try it
Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.
curl -X POST https://api.zinndigital.com/v1/panels/connections/{connectionId}/login-link \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ }'Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console
Details
⚖️ The owner's ask of 2026-08-28, verbatim: *"one click login to the plesk panels"*. ⛔⛔ **The returned `url` is a LIVE CREDENTIAL.** It is an authenticated administrative session on the customer's panel. It is never logged, never persisted and never emailed — it is returned to one authenticated caller and belongs straight in their browser. Plesk's links are single-use and die on first redemption, which is a stronger guarantee than any expiry clock; `expiresAt` is therefore absent rather than guessed. ⛔ Gated on `sites.panel_access` — **not** `sites.view`. That key means *direct server-level access to a customer's hosting*: it is held by `owner`, `dev` and staff `ops`, and deliberately not by `support` or any read-only role. A read-only role must never be able to mint an administrative session. ⛔ Answers `422` when this connection has not proved it can create login links, and refuses BEFORE calling the panel. A button that reaches a panel which will refuse it fails on a third-party domain, where neither we nor the customer can see why. Every mint is written to the audit trail with the actor and the panel — never the URL.
Parameters
| Name | Type | Required | What it is |
|---|---|---|---|
connectionId (path) | Uuid | Yes | The connected panel's id, as `listPanelConnections` reports it. |
Request body
| Name | Type | Required | What it is |
|---|---|---|---|
username | string | No | A panel user to sign in as. Omit for the panel's administrator. |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
url | string | Yes | The one-time login URL. Treat it as a secret. |
username | string | Yes | Which panel user the session belongs to. Empty means the administrator. |
single_use | boolean | Yes | Whether the link dies on first use. ⛔ `null` is unknown, and a client must not promise single-use on the strength of it. Plesk's are single-use, which is a stronger guarantee th… |
Errors this endpoint can return
401 · 403 · 404 · 422 · 429 · 503