---
title: "Add an answer or completed uploads"
method: POST
path: "/api/task-creations/{id}/evidence"
---

# Add an answer or completed uploads

`POST /api/task-creations/{id}/evidence`

## Request

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

Files must be completed uploads owned by the member. For external screen recordings, transfer the complete original with upload_my_file and complete_my_file first, then set files[].recordingMode to screen here. recordingMode accepts screen or camera, defaulting to camera. Toma validates processed content independently of the declaration. The five-minute clip and 100 MiB file limits remain. Prepared explicit task recordings become public only after approval; original uploads and answers remain private. unavailable requires an explanation and reassessment rather than automatically waiving a consequential gap. New sessions begin assessment only after analyze. A fresh handoff is unnecessary when existing Context is sufficient.

## Path parameters

- `id` string, required

## Request body

- object
  - `revision` integer, required
  - `files` object[]
    - `fileId` string, required
    - `visibility` 'public' | 'private', required
    - `recordingMode` 'screen' | 'camera'
  - `answer` string
  - `requestId` string
  - `unavailable` boolean

## Response `200`

The private task, including revision, source tracks, processing state, and preview. Owner reads also include structured analysis, stable draftId, commentsVersion, and pending draftComments. Capture capabilities do not grant these owner-only details. Answer evidence retains requestId and question wording after reassessment.

- TaskCreation
  - `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
  - `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
  - `workflowVersion` integer
  - `companion` boolean
  - `mode` 'screen' | 'camera' | 'audio'
  - `id` string, required
  - `title` string, required
  - `instruction` string, nullable, required
  - `titleSuggestions` string[], required
  - `status` 'preparing' | 'recording' | 'processing' | 'review' | 'rendering' | 'context_preparing' | 'context' | 'generating' | 'ready' | 'publishing' | 'published' | 'discarded' | 'failed', required
  - `revision` integer, required
  - `approvedRevision` integer, nullable, required
  - `analysisRequested` boolean
  - `analysis` object, nullable
    - `version` 1, required
    - `model` string, required
    - `classificationModel` string, required
    - `pipelineVersion` string
    - `intent` string, required
    - `outcome` string, required
    - `constraints` object[]
      - `description` string, required
      - `evidenceRefs` object[], required
        - `sourceId` string, required
        - `trackId` string
        - `startMs` number
        - `endMs` number
        - `quote` string
    - `examples` object[]
      - `description` string, required
      - `evidenceRefs` object[], required
        - `sourceId` string, required
        - `trackId` string
        - `startMs` number
        - `endMs` number
        - `quote` string
    - `referencedSystems` object[]
      - `description` string, required
      - `evidenceRefs` object[], required
        - `sourceId` string, required
        - `trackId` string
        - `startMs` number
        - `endMs` number
        - `quote` string
    - `deadline` object
      - `status` 'unspecified' | 'none' | 'specified' | 'unresolved', required
      - `value` string
      - `evidenceRefs` object[], required
        - `sourceId` string, required
        - `trackId` string
        - `startMs` number
        - `endMs` number
        - `quote` string
    - `context` object, required
      - `required` string[], required
      - `provided` object[], required
        - `summary` string, required
        - `sourceIds` string[], required
      - `missing` string[], required
    - `gaps` object[], required
      - `description` string, required
      - `evidenceRefs` object[], required
        - `sourceId` string, required
        - `trackId` string
        - `startMs` number
        - `endMs` number
        - `quote` string
      - `id` string, required
    - `tone` object[], required
      - `description` string, required
      - `evidenceRefs` object[], required
        - `sourceId` string, required
        - `trackId` string
        - `startMs` number
        - `endMs` number
        - `quote` string
    - `emphasis` object[], required
      - `description` string, required
      - `evidenceRefs` object[], required
        - `sourceId` string, required
        - `trackId` string
        - `startMs` number
        - `endMs` number
        - `quote` string
      - `id` string, required
      - `importance` 'essential' | 'important' | 'supporting', required
    - `priorities` object[], required
      - `description` string, required
      - `evidenceRefs` object[], required
        - `sourceId` string, required
        - `trackId` string
        - `startMs` number
        - `endMs` number
        - `quote` string
      - `id` string, required
      - `importance` 'essential' | 'important' | 'supporting', required
    - `acceptanceCriteria` object[], required
      - `description` string, required
      - `evidenceRefs` object[], required
        - `sourceId` string, required
        - `trackId` string
        - `startMs` number
        - `endMs` number
        - `quote` string
  - `draftId` string, nullable
  - `draftComments` object[]
    - `id` string, required
    - `field` 'title' | 'description' | 'deadline' | 'resources' | 'deliverables', required
    - `itemIndex` integer
    - `start` integer, required
    - `end` integer, required
    - `quote` string, required
    - `text` string, required
  - `commentsVersion` integer
  - `quality` 'positive' | 'negative', nullable
  - `taskId` string, nullable, required
  - `error` string, nullable, required
  - `createdAt` string, required
  - `updatedAt` string, required
  - `creation` object, nullable, required
    - `title` string, required
    - `category` 'consulting' | 'data' | 'design' | 'engineering' | 'legal' | 'marketing' | 'operations' | 'physical' | 'research' | 'writing' | 'other', required
    - `constraints` string, required
    - `deadline` integer, nullable
    - `resources` string[]
    - `deliverables` string[]
    - `contentFormat` union
      - 1
      - 2
  - `context` object, nullable, required
    - `analysis` object
      - `version` 1, required
      - `model` string, required
      - `classificationModel` string, required
      - `pipelineVersion` string
      - `intent` string, required
      - `outcome` string, required
      - `constraints` object[]
        - `description` string, required
        - `evidenceRefs` object[], required
          - `sourceId` string, required
          - `trackId` string
          - `startMs` number
          - `endMs` number
          - `quote` string
      - `examples` object[]
        - `description` string, required
        - `evidenceRefs` object[], required
          - `sourceId` string, required
          - `trackId` string
          - `startMs` number
          - `endMs` number
          - `quote` string
      - `referencedSystems` object[]
        - `description` string, required
        - `evidenceRefs` object[], required
          - `sourceId` string, required
          - `trackId` string
          - `startMs` number
          - `endMs` number
          - `quote` string
      - `deadline` object
        - `status` 'unspecified' | 'none' | 'specified' | 'unresolved', required
        - `value` string
        - `evidenceRefs` object[], required
          - `sourceId` string, required
          - `trackId` string
          - `startMs` number
          - `endMs` number
          - `quote` string
      - `context` object, required
        - `required` string[], required
        - `provided` object[], required
          - `summary` string, required
          - `sourceIds` string[], required
        - `missing` string[], required
      - `gaps` object[], required
        - `description` string, required
        - `evidenceRefs` object[], required
          - `sourceId` string, required
          - `trackId` string
          - `startMs` number
          - `endMs` number
          - `quote` string
        - `id` string, required
      - `tone` object[], required
        - `description` string, required
        - `evidenceRefs` object[], required
          - `sourceId` string, required
          - `trackId` string
          - `startMs` number
          - `endMs` number
          - `quote` string
      - `emphasis` object[], required
        - `description` string, required
        - `evidenceRefs` object[], required
          - `sourceId` string, required
          - `trackId` string
          - `startMs` number
          - `endMs` number
          - `quote` string
        - `id` string, required
        - `importance` 'essential' | 'important' | 'supporting', required
      - `priorities` object[], required
        - `description` string, required
        - `evidenceRefs` object[], required
          - `sourceId` string, required
          - `trackId` string
          - `startMs` number
          - `endMs` number
          - `quote` string
        - `id` string, required
        - `importance` 'essential' | 'important' | 'supporting', required
      - `acceptanceCriteria` object[], required
        - `description` string, required
        - `evidenceRefs` object[], required
          - `sourceId` string, required
          - `trackId` string
          - `startMs` number
          - `endMs` number
          - `quote` string
    - `summary` string, required
    - `requests` string[], required
    - `questions` object[]
      - `id` string, required
      - `prompt` string, required
      - `reason` string
      - `kind` 'answer' | 'file' | 'clarification' | 'access' | 'correction', required
      - `essential` boolean, required
      - `options` string[], required
      - `evidenceRefs` object[]
        - `sourceId` string, required
        - `trackId` string
        - `startMs` number
        - `endMs` number
        - `quote` string
    - `deadlineResolved` boolean
    - `prompt` string, required
    - `response` string, nullable, required
    - `files` object[], required
      - `fileId` string, required
      - `visibility` 'public' | 'private', required
  - `chapters` object[], required
    - `id` string, required
    - `title` string, required
    - `startMs` number, required
    - `thumbnails` object[], required
      - `trackId` string, required
      - `kind` 'screen' | 'camera', required
      - `url` string, required
  - `costs` object, required
    - `listingFeeCents` integer, required
    - `summary` string, required
  - `selectedTake` object, nullable, required
    - `id` string, required
    - `device` 'desktop' | 'mobile', required
    - `durationMs` number, required
    - `tracks` object[], required
      - `kind` 'screen' | 'camera' | 'microphone' | 'shared_audio', required
      - `facing` 'user' | 'environment'
      - `mimeType` 'video/webm' | 'video/mp4' | 'audio/webm' | 'audio/mp4' | 'audio/wav' | 'audio/pcm' | 'audio/x-pcm-f32le', required
      - `offsetMs` number
      - `sampleRate` integer
      - `channels` integer
      - `id` string, required
      - `durationMs` number, required
      - `nextSequence` integer, required
      - `bytes` integer, required
    - `transcript` object[], required
      - `id` string, required
      - `trackId` string, required
      - `text` string, required
      - `startMs` number, required
      - `endMs` number, required
      - `final` boolean, required
      - `filler` boolean
    - `findings` object[], required
      - `id` string, required
      - `kind` 'secret' | 'personal' | 'proprietary' | 'customer' | 'other', required
      - `trackId` string
      - `startMs` number, required
      - `endMs` number, required
      - `wordIds` string[], required
      - `reason` string, required
      - `visual` boolean, required
    - `edits` object[], required
      - `id` string, required
      - `kind` 'cut' | 'silence' | 'bleep', required
      - `startMs` number, required
      - `endMs` number, required
      - `trackId` string
    - `clearedFindingIds` string[], required
    - `videoUrl` string, nullable, required
    - `audioUrl` string, nullable
    - `mediaKind` 'video' | 'audio'
    - `captionsUrl` string, nullable, required
    - `review` object, nullable, required
      - `durationMs` number, required
      - `transcript` object[], required
        - `id` string, required
        - `trackId` string, required
        - `text` string, required
        - `startMs` number, required
        - `endMs` number, required
        - `final` boolean, required
        - `filler` boolean
      - `cleanup` object, required
        - `fillerWordsRemoved` integer, required
        - `sensitiveSectionsBleeped` integer, required
      - `waveform` object
        - `bucketMs` 100, required
        - `peaks` number[], required
  - `evidence` TaskCreationEvidence[]
    - `id` string, required
    - `kind` 'recording' | 'file' | 'answer' | 'agent', required
    - `title` string, required
    - `sessionId` string
    - `fileId` string
    - `text` string
    - `requestId` string
    - `question` string
    - `unavailable` boolean
    - `session` TaskCreation (recursive)
  - `mediaSections` TaskCreationSection[]
    - `id` string, required
    - `contributionId` string, required
    - `title` string, required
    - `kind` 'video' | 'audio' | 'image' | 'file', required
    - `selected` boolean, required
    - `position` integer, required
    - `startMs` number
    - `endMs` number
    - `url` string, nullable, required
    - `captionsUrl` string, nullable
    - `durationMs` number
    - `transcript` object[]
      - `id` string, required
      - `trackId` string, required
      - `text` string, required
      - `startMs` number, required
      - `endMs` number, required
      - `final` boolean, required
      - `filler` boolean
    - `waveform` object
      - `bucketMs` 100, required
      - `peaks` number[], required
    - `thumbnails` object[], required
      - `trackId` string, required
      - `kind` 'screen' | 'camera', required
      - `url` string, required
  - `phoneLinks` TaskCreationPhoneLink[]
    - `id` string, required
    - `url` string
    - `expiresAt` string, required
    - `status` 'waiting' | 'connected' | 'received' | 'expired' | 'revoked', 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)
