> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tuneplane.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Share a run with someone

> Give a read-only link to a run or a comparison, to somebody with no account.

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
curl -X POST https://tuneplane.your-company.com/api/job/share \
  -H "Authorization: Bearer $TUNEPLANE_CLIENT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"job_id": "run-4f2a91", "expires_hours": 24}'
```

Returns a token. `https://tuneplane.your-company.com/share/<token>` opens the run with no
sign-in.

From the console, use **Share** on a [job detail](/en/console/job-detail) page or a
[review](/en/console/review). Share links exist for the conversation that happens outside the
platform: a colleague without an account, a supplier, a manager who wants to see the curve and
not learn a console.

## Share a comparison instead

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
curl -X POST https://tuneplane.your-company.com/api/compare/share \
  -H "Authorization: Bearer $TUNEPLANE_CLIENT_TOKEN" \
  -d '{"job_ids": ["run-4f2a91", "run-8b1c02"], "expires_hours": 72}'
```

Two to four runs. The link opens at `/share/compare/<token>`.

## What the recipient gets

| Shared object | They see                                                                                          |
| ------------- | ------------------------------------------------------------------------------------------------- |
| A run         | Training curves, validation samples, config, hyperparameters, hardware, environment, and the logs |
| A comparison  | The scorecard, the primary curves, and the config diff                                            |

They cannot submit anything, change anything, see other runs, or reach any dataset contents. The
share routes are a separate read-only surface, not your session with the buttons hidden.

## Expiry

`expires_hours` defaults to 24 and is capped at 90 days. The console offers presets; the API
takes any value in that range.

Pick the shortest expiry that covers the conversation. A 30-day link outlives the discussion that
needed it, and nobody remembers to revoke it.

## List and revoke

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
curl -H "Authorization: Bearer $TUNEPLANE_CLIENT_TOKEN" \
  "https://tuneplane.your-company.com/api/job/shares?job_id=run-4f2a91"

curl -X DELETE -H "Authorization: Bearer $TUNEPLANE_CLIENT_TOKEN" \
  "https://tuneplane.your-company.com/api/job/share?token=<token>"
```

The job page lists the links that exist for it, who created each and when it expires. Revoking
kills one immediately rather than waiting for its expiry.

## Check it worked

Open the link in a private window. You should see the run and no sidebar.

Creating and revoking a share link are both recorded in the [audit trail](/en/console/audit),
with the user and the object. A share link is the one feature that moves data outside the
platform's authentication, so it is the one that most needs a record.

## Next

[Comparing runs](/en/console/review) · [Job detail](/en/console/job-detail) ·
[Audit trail](/en/console/audit)
