---
title: "Get Audio Details"
method: GET
path: "/v2/audios/{audio_id}"
tags: ["Audio Emotion API"]
---

# Get Audio Details

`GET /v2/audios/{audio_id}`

Retrieve all details for a specific audio directly from the database.

Returns a complete standardized response with all possible fields.
Fields that don't exist in the database are returned as null.

**Access Control:**
- Authenticated users can access their own audios
- Admins can access all audios
- Sample audios and shared audios are publicly accessible

## Path parameters

- `audio_id` string, required — The unique ID of the audio.

## Response `200`

Successful Response

- AudioDetailResponseV2 — Complete V2 response model for audio details with all possible fields. Returns null for fields that don't exist in the database, except diarization/text_emotion/transcription, which default to true when absent (enabled-by-default speech stages, matching the upload contract). Fields are ordered alphabetically.
  - `audio_duration` number, nullable — Audio duration in seconds
  - `audio_model_id` string, nullable — Model used for audio processing
  - `average_audio_emotions` object, nullable — Average audio emotions
  - `bulk_upload_id` string, nullable — Bulk upload batch ID
  - `created_at` string, nullable — Creation timestamp
  - `csv_analysis_url` string, nullable — CSV analysis file URL
  - `description` string, nullable — Audio description
  - `emotions` object, nullable — Overall audio emotions
  - `id` string, nullable — Unique audio identifier
  - `media_source` string, nullable — Source type: youtube, dropbox, public_url, file_upload
  - `media_source_url` string, nullable — Original URL as provided
  - `parent_id` string, nullable — Parent video ID if extracted from video
  - `predefined_qa` object[], nullable — Predefined Q&A analysis
  - `process_status` union — Processing progress
    - number
    - object
  - `project_id` string, nullable — Associated project ID. Empty/absent for library audio.
  - `project_type` string, nullable — Type of the associated project (sales_deal/...). Null for library audio.
  - `psychologist_review` string, nullable — Psychologist review content
  - `psychologist_review_status` string, nullable — Psychologist review status
  - `segment_audio_emotions` object[], nullable — Segment-level audio emotions
  - `segment_text_emotions` object[], nullable — Segment-level text emotions
  - `share_status` boolean, nullable — Whether audio is shared
  - `diarization` boolean, nullable — Whether diarization is enabled (defaults to true if absent from the stored document)
  - `has_transcript` boolean, nullable — Whether a transcript exists (or is being produced): our ASR ran, OR one was supplied and applied. Drive the transcript UI off THIS, not `transcription` — an imported call has transcription=false and a real transcript, so that flag hides one that is right there.
  - `text_speaker_id_overall_emotions` object[], nullable — Speaker-level aggregated emotions
  - `speakers` object[], nullable — Identified speakers
  - `speech_status` union — Speech transcription status
    - string
    - boolean
  - `status` string, nullable — Processing status
  - `summary` union — Audio summary or summary object
    - string
    - object
  - `system_name` string, nullable — System name that processed the audio
  - `tags_map` object, nullable — Tags map for categorization
  - `text_emotion` boolean, nullable — Whether text emotion analysis was enabled at upload time (defaults to true if absent from the stored document)
  - `text_overall_emotions` object, nullable — Overall text emotions from transcript
  - `text_id` string, nullable — Associated text analysis ID
  - `text_model_id` string, nullable — Model used for text processing
  - `title` string, nullable — Audio title
  - `transcript_segments` object[], nullable — Transcript segments with emotions
  - `transcription` boolean, nullable — Whether transcription/ASR was enabled at upload time (defaults to true if absent from the stored document)
  - `ui_request` boolean, nullable — Whether request came from UI
  - `url` string, nullable — Original audio URL
  - `user_id` string, nullable — Owner user ID
  - `video_id` string, nullable — Associated video ID if extracted from video
  - `text_word_count` integer, nullable — Word count of transcript
  - `youtube_url` string, nullable — YouTube URL if applicable

## Other responses

- `401` — Missing, malformed or rejected credentials — no `X-API-Key` / `Authorization: Bearer <jwt>`, an expired token, or a caller that lacks the role the route requires. Note that this API answers *authorization* failures with 401 as well as 403 (see the 403 entry where a route declares both).
- `404` — No such resource, or it is not visible to this caller. Ownership failures are reported as 404 rather than 403 so the API does not confirm the existence of another account's records.
- `422` — Validation Error

---

[API](https://skmtc.net/imentiv/apis/welcome-to-imentiv-ai.md) · [All operations](https://skmtc.net/imentiv/apis/welcome-to-imentiv-ai/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/imentiv/welcome-to-imentiv-ai/revisions/350e9cbcb623/schema)
