Skip to content

Revoke this run's public share links

DELETE
/api/solutions/runs/{run_id}/share/
curl --request DELETE \
--url http://localhost:8000/api/solutions/runs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/share/ \
--header 'Authorization: Bearer <token>'

Withdraws every active public link to the run’s report. The rows are kept, stamped revoked_at, so what was shared stays auditable — and the public report and its link-preview unfurl then answer 404, not 410: an expired link died on schedule, a revoked one was taken away, and a viewer holding a forwarded URL should not learn which.

Idempotent — nothing left to revoke is still 204. Re-sharing afterwards mints a FRESH token; a revoked link never comes back. Archiving a run leaves its links working; this is the call that stops them. Added in #2754: before it, a shared report stayed readable for its whole window.

run_id
required
string format: uuid

No response body

Media typeapplication/json
object
detail
required

Human-readable message, or a stable machine code for the cases a client branches on. The standard envelope for 400 (validation — a field-keyed object may appear instead), 401 (missing / invalid credentials), 403 (authenticated but not permitted), and 404 (absent — cross-team records are collapsed to 404 so the API never leaks the existence of another team’s data).

string

Example generated

{
"detail": "example"
}
Media typeapplication/json
object
detail
required

Human-readable message, or a stable machine code for the cases a client branches on. The standard envelope for 400 (validation — a field-keyed object may appear instead), 401 (missing / invalid credentials), 403 (authenticated but not permitted), and 404 (absent — cross-team records are collapsed to 404 so the API never leaks the existence of another team’s data).

string

Example generated

{
"detail": "example"
}