# Get an asset

After creating an asset - either through the Panjaya Dubbing Studio API or by uploading it via the
Panjaya Dubbing Studio web interface - you can easily fetch detailed information about the asset by specifying its asset ID.
This endpoint allows you to access key metadata, including the asset's current status, associated dubbings, and
available versions.
### Asset processing failures
In case of an error while processing the asset, the asset status will be `Failed`, and the `error` field in this endpoint's response will contain helpful information for identifying the issue.
It contains an error code and a detailed error message to help you understand and resolve the issue. Here is a list of common error codes for assets:
- `invalid_input`: The input provided is invalid. Ensure all provided fields match the asset's properties.
- `unsupported_media`: We didnt find a valid video stream in the media file.
- `empty_transcript`: No spoken content was identified in the uploaded video.
- `missing_audio_track`: No audio tracks were found in the source video.
- `video_duration_limit_reached`: The video duration limit for your account has been reached.
- `video_size_limit_reached`: The file size of the requested video has exceeded the allowed size limit.
- `time_out_of_range`: The provided start_time or end_time is out of video range. Ensure that the timestamps are within the video duration.
- `voice_over_library_required`: Voice-over is enabled but no voice_library_id was provided. Set voice_library_id to the library voice that should narrate the asset (list available voices with the GET /voices endpoint).
- `voice_over_with_lips_not_allowed`: Voice-over cannot be combined with lip correction. Set auto_generate to no_lips (or off) when voice_over is enabled.

Endpoint: GET /v1/assets/{asset_id}
Security: api_key

## Description:

  - `Asset processing failures` ()
    In case of an error while processing the asset, the asset status will be Failed, and the error field in this endpoint's response will contain helpful information for identifying the issue. It contains an error code and a detailed error message to help you understand and resolve the issue. Here is a list of common error codes for assets: invalid_input: The input provided is invalid. Ensure all provided fields match the asset's properties.unsupported_media: We didnt find a valid video stream in the media file.empty_transcript: No spoken content was identified in the uploaded video.missing_audio_track: No audio tracks were found in the source video.video_duration_limit_reached: The video duration limit for your account has been reached.video_size_limit_reached: The file size of the requested video has exceeded the allowed size limit.time_out_of_range: The provided start_time or end_time is out of video range. Ensure that the timestamps are within the video duration.voice_over_library_required: Voice-over is enabled but no voice_library_id was provided. Set voice_library_id to the library voice that should narrate the asset (list available voices with the GET /voices endpoint).voice_over_with_lips_not_allowed: Voice-over cannot be combined with lip correction. Set auto_generate to no_lips (or off) when voice_over is enabled.

## Security:

  - `api_key` (unknown)
    http bearer

## Path parameters:

  - `asset_id` (string, required)

## Response 200:

  - `200` (unknown)
    Asset found successfully

## Response 200 fields (application/json):

  - `asset_id` (string, required)

  - `name` (string, required)

  - `locale` (string, required)
    A locale code of [a supported locale](#section/Languages-support). If the locale is not supported, an error response of status 400 will be returned.

  - `created_at` (string, required)

  - `status` (string, required)
    Enum: "Dubbing", "PendingReview", "Ready", "Failed"

  - `duration` (any, required)
    Duration of the source video in seconds. The field may be `null` while the asset is processing.

  - `error` (any)

  - `error.error_code` (any, required)
    If the asset's status is `Failed`, this field will contain additional error information.
Common error codes for assets are:
- `invalid_input`: The input provided is invalid. Ensure all provided fields match the asset's properties.
- `unsupported_media`: We didnt find a valid video stream in the media file.
- `empty_transcript`: No spoken content was identified in the uploaded video.
- `missing_audio_track`: No audio tracks were found in the source video.
- `video_duration_limit_reached`: The video duration limit for your account has been reached.
- `video_size_limit_reached`: The file size of the requested video has exceeded the allowed size limit.
- `time_out_of_range`: The provided start_time or end_time is out of video range. Ensure that the timestamps are within the video duration.
- `voice_over_library_required`: Voice-over is enabled but no voice_library_id was provided. Set voice_library_id to the library voice that should narrate the asset (list available voices with the GET /voices endpoint).
- `voice_over_with_lips_not_allowed`: Voice-over cannot be combined with lip correction. Set auto_generate to no_lips (or off) when voice_over is enabled.

  - `error.detail` (string, required)

  - `source_video_url` (any)

  - `thumbnail_url` (any)

  - `languages` (array, required)

  - `languages.dubbing_id` (any, required)

  - `languages.locale` (string, required)
    A locale code of [a supported locale](#section/Languages-support). If the locale is not supported, an error response of status 400 will be returned.

  - `languages.versions` (array, required)

  - `languages.versions.version_id` (string, required)

  - `languages.versions.voice_over` (boolean)
    Whether this version was created with voice-over enabled.

## Response 401:

  - `401` (unknown)
    The API key could not be validated

## Response 401 fields (application/json):

  - `detail` (string, required)
    A full description of the error.

## Response 404:

  - `404` (unknown)
    The requested resource was not found

## Response 404 fields (application/json):

  - `detail` (string, required)
    A full description of the error.

## Response 500:

  - `500` (unknown)
    An internal server error occurred

## Response 500 fields (application/json):

  - `detail` (string, required)
    A full description of the error.

