---
title: "Renew Connect Link"
method: POST
path: "/connect/{app_slug}/renew"
tags: ["app connect"]
---

# Renew Connect Link

`POST /connect/{app_slug}/renew`

Hand a stale-but-authentic connect link a fresh window, if it should have one.

Owner, 2026-09-17: "pls amek the CONNECTO BUTTON durable and even tho the
connection get expeired in 30min it must be reneweing using our LLM backend
a bit fo latency is OKEY."

WHAT IS MECHANICAL HERE AND WHAT IS JUDGED, on purpose:

  * The SIGNATURE is mechanical and absolute. `open_connect_grant` raises on
    anything it did not mint, so nothing below ever sees a forged link and
    this route can never be talked into one by a model.
  * The WINDOW is judged. Thirty minutes was a constant standing in for a
    question a constant cannot answer — is the person holding this still the
    person it was for — so the question is now asked as one, with the facts
    that bear on it, exactly as this codebase asks every other question it
    cannot answer with a rule.
  * BEYOND A WEEK there is nothing to judge and no model is called. A link
    that old is an artifact, not somebody finishing a job.

Every decision is LOGGED with the app, the team and how overdue the link
was. It is not written to `agent_actions`: that table is a ledger of TURN
effects and its shape says so (`run_id`, `tool_name` and `idempotency_key`
are all NOT NULL), and a renewal has no run behind it. The connection's own
receipts are filed when it completes, which is where the effect actually is.

## Path parameters

- `app_slug` string, required

## Query parameters

- `t` string, required

## Response `200`

Successful Response

- object

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/stormy/apis/stormy-control-plane.md) · [All operations](https://skmtc.dev/stormy/apis/stormy-control-plane/llms.txt) · [OpenAPI document](https://skmtc.dev/stormy/apis/stormy-control-plane/revisions/b09e3c4ee2af?raw)
