---
title: "Renew a private recording link"
method: POST
path: "/api/task-creations/{id}/recording-links"
---

# Renew a private recording link

`POST /api/task-creations/{id}/recording-links`

## Request

- Base URL: `https://www.toma.com`
- URL: `https://www.toma.com/api/task-creations/{id}/recording-links`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `better-auth.session_token`

## Path parameters

- `id` string, required

## Response `200`

A private recording link with an expiring token in its fragment. Keep it private.

- TaskCreationLink
  - `recordingRequirement` object
    - `required` boolean, required
    - `status` 'exempt' | 'missing' | 'processing' | 'checking' | 'passed' | 'rejected' | 'unavailable', required
    - `reason` 'missing_video' | 'missing_narration' | 'not_screen' | 'unrelated' | 'uncertain' | 'media_unavailable' | 'provider_unavailable'
    - `fingerprint` string
  - `id` string, required
  - `recordingUrl` string, required
  - `expiresAt` string, required
  - `status` 'preparing' | 'recording' | 'processing' | 'review' | 'rendering' | 'context_preparing' | 'context' | 'generating' | 'ready' | 'publishing' | 'published' | 'discarded' | 'failed', required
  - `revision` integer
  - `costs` object
    - `listingFeeCents` integer, required
    - `summary` string, required
  - `workflow` object
    - `stage` 'record' | 'analyze' | 'review', required
    - `state` 'input_needed' | 'ready_to_analyze' | 'processing' | 'asks' | 'review' | 'failed' | 'published' | 'discarded', required
    - `reviewUrl` string, required
    - `next` object, required
      - `kind` 'tool' | 'human' | 'wait' | 'done', required
      - `reason` string, required
      - `tool` string
      - `arguments` object
      - `url` string
    - `asks` object[], required
      - `id` string, required
      - `kind` 'clarification' | 'access' | 'correction', required
      - `prompt` string, required
      - `reason` string
      - `options` string[], required
      - `answerArguments` object, required
    - `saveDraft` object
      - `tool` string, required
      - `arguments` object, required
    - `publication` object, required
      - `tool` string, required
      - `arguments` object, required
      - `requiresHumanApproval` true, required
      - `recordingMediaPublic` true, required
      - `listingFeeCents` integer, required
      - `requiredAcknowledgements` string[], required
      - `pendingComments` boolean, required

## Other responses

- `400`: Invalid input.
- `401`: Sign in or use a valid recording capability.
- `404`: Not found, expired, revoked, or owned by another member.
- `409`: The revision, take, upload sequence, or processing state changed. Fetch the current session.
- `503`: Processing or storage is unavailable. No publication was made.

---

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