---
title: "Get Recordings By Task Id"
method: GET
path: "/recordings/tasks/{task_id}"
tags: ["recordings"]
---

# Get Recordings By Task Id

`GET /recordings/tasks/{task_id}`

Get recordings and their transcriptions by task_id.
This endpoint is useful for finding all recordings associated with a specific task.

Caching strategy:
- Cache recordings by task_id with 30 second TTL
- Cache is invalidated when recording status changes (via Celery tasks)

## Path parameters

- `task_id` string, required

## Response `200`

Successful Response

- RecordingWithTranscription[]
  - `recording` Recording, required
    - `s3_bucket` string, required — S3 bucket name
    - `s3_object_key` string, required — S3 object key
    - `latitude` number, nullable — GPS latitude
    - `longitude` number, nullable — GPS longitude
    - `location_address` string, nullable — Human-readable address
    - `location_accuracy` number, nullable — GPS accuracy in meters
    - `start_time` string, date-time, nullable — Start time of the recording
    - `end_time` string, date-time, nullable — End time of the recording
    - `user_id` string, uuid, required — User ID who created the recording
    - `organization_id` string, nullable — Organization ID (optional)
    - `waveform_data` number[], nullable — Waveform data for audio visualization
    - `status` string, nullable — Recording status (e.g., uploading, transcribing, completed, failed)
    - `id` string, uuid
    - `created_at` string, date-time
    - `updated_at` string, date-time, nullable
  - `transcription` RecordingTranscription
    - `recording_id` string, uuid, required — Reference to the recording
    - `transcription_text` string, nullable — The transcribed text content
    - `status` string — Transcription status
    - `role_assigned_transcript` string, nullable — AI-processed transcript with speaker role assignments
    - `formatted_content` FormattedContentItem[], nullable — Structured transcription content for display
      - `type` string, required — Content type: 'speaker' or 'text'
      - `label` string, nullable — Speaker label if present
      - `content` string, required — Text content
      - `is_empty_line` boolean — Whether this represents a blank line
    - `id` string, uuid
    - `created_at` string, date-time
    - `updated_at` string, date-time, nullable

## Other responses

- `404` — Not found
- `422` — Validation Error

---

[API](https://skmtc.dev/noso/apis/crucible-backend-api.md) · [All operations](https://skmtc.dev/noso/apis/crucible-backend-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/noso/crucible-backend-api/revisions/d96feef8e2ef/schema)
