---
title: "Get AI task result"
method: GET
path: "/streaming/ai/tasks/{task_id}"
tags: ["AI"]
---

# Get AI task result

`GET /streaming/ai/tasks/{task_id}`

This is the single method to check the execution status of an AI task, and obtain the result of any type of AI task.


Based on the results of processing, the “result” field will contain an answer corresponding to the type of the initially created task:
- ASR: Transcribe video
- ASR: Translate subtitles
- CM: Sports detection
- CM: Not Safe For Work (NSFW) content detection
- CM: Soft nudity detection
- CM: Hard nudity detection
- CM: Objects recognition (soon)
- etc... (see other methods from /ai/ domain)

  


A queue is used to process videos. The waiting time depends on the total number of requests in the system, so sometimes you will have to wait.

Statuses:
- PENDING – the task is received and it is pending for available resources
- STARTED – processing has started
- SUCCESS – processing has completed successfully
- FAILURE – processing failed
- REVOKED – processing was cancelled by the user (or the system)
- RETRY – the task execution failed due to internal reasons, the task is queued for re-execution (up to 3 times)

Each task is processed in sub-stages, for example, original language is first determined in a video, and then transcription is performed. In such cases, the video processing status may change from "STARTED" to "PENDING", and back. This is due to waiting for resources for a specific processing sub-stage. In this case, the overall percentage "progress" of video processing will reflect the full picture.

  


The result data is stored for 1 month, after which it is deleted.

  


For billing conditions see the corresponding methods in /ai/ domain. The task is billed only after successful completion of the task and transition to "SUCCESS" status.

## Path parameters

- `task_id` string, required

## Response `200`

Result of AI task execution

- AiResults
  - `task_id` string, uuid — ID of the AI task
  - `status` 'PENDING' | 'STARTED' | 'SUCCESS' | 'FAILURE' | 'REVOKED' | 'RETRY' — Status of processing the AI task. See GET /ai/results method for description.
  - `progress` integer — Percentage of task completed. A value greater than 0 means that it has been taken into operation and is being processed.
  - `task_name` 'content-moderation' | 'transcription' — Type of AI task
  - `task_data` union — The object will correspond to the task type that was specified in the original request. There will be one object for transcription, another for searching for nudity, and so on.
    - AiTranscribe
      - `task_name` 'transcription', required — Name of the task to be performed
      - `url` string, required — URL to the MP4 file to analyse. File must be publicly accessible via HTTP/HTTPS.
      - `audio_language` string — Language in original audio (transcription only). This value is used to determine the language from which to transcribe. If this is not set, the system will run auto language identification and the subtitles will be in the detected language. The method also works based on AI analysis. It's fairly accurate, but if it's wrong, then set the language explicitly. Additionally, when this is not set, we also support recognition of alternate languages in the video (language code-switching). Language is set by 3-letter language code according to ISO-639-2 (bibliographic code). We can process languages: - 'afr': Afrikaans - 'alb': Albanian - 'amh': Amharic - 'ara': Arabic - 'arm': Armenian - 'asm': Assamese - 'aze': Azerbaijani - 'bak': Bashkir - 'baq': Basque - 'bel': Belarusian - 'ben': Bengali - 'bos': Bosnian - 'bre': Breton - 'bul': Bulgarian - 'bur': Myanmar - 'cat': Catalan - 'chi': Chinese - 'cze': Czech - 'dan': Danish - 'dut': Nynorsk - 'eng': English - 'est': Estonian - 'fao': Faroese - 'fin': Finnish - 'fre': French - 'geo': Georgian - 'ger': German - 'glg': Galician - 'gre': Greek - 'guj': Gujarati - 'hat': Haitian creole - 'hau': Hausa - 'haw': Hawaiian - 'heb': Hebrew - 'hin': Hindi - 'hrv': Croatian - 'hun': Hungarian - 'ice': Icelandic - 'ind': Indonesian - 'ita': Italian - 'jav': Javanese - 'jpn': Japanese - 'kan': Kannada - 'kaz': Kazakh - 'khm': Khmer - 'kor': Korean - 'lao': Lao - 'lat': Latin - 'lav': Latvian - 'lin': Lingala - 'lit': Lithuanian - 'ltz': Luxembourgish - 'mac': Macedonian - 'mal': Malayalam - 'mao': Maori - 'mar': Marathi - 'may': Malay - 'mlg': Malagasy - 'mlt': Maltese - 'mon': Mongolian - 'nep': Nepali - 'dut': Dutch - 'nor': Norwegian - 'oci': Occitan - 'pan': Punjabi - 'per': Persian - 'pol': Polish - 'por': Portuguese - 'pus': Pashto - 'rum': Romanian - 'rus': Russian - 'san': Sanskrit - 'sin': Sinhala - 'slo': Slovak - 'slv': Slovenian - 'sna': Shona - 'snd': Sindhi - 'som': Somali - 'spa': Spanish - 'srp': Serbian - 'sun': Sundanese - 'swa': Swahili - 'swe': Swedish - 'tam': Tamil - 'tat': Tatar - 'tel': Telugu - 'tgk': Tajik - 'tgl': Tagalog - 'tha': Thai - 'tib': Tibetan - 'tuk': Turkmen - 'tur': Turkish - 'ukr': Ukrainian - 'urd': Urdu - 'uzb': Uzbek - 'vie': Vietnamese - 'wel': Welsh - 'yid': Yiddish - 'yor': Yoruba
      - `subtitles_language` string — Indicates which language it is clearly necessary to translate into. If this is not set, the original language will be used from attribute "audio_language". Please note that: - transcription into the original language is a free procedure, - and translation from the original language into any other languages is a "translation" procedure and is paid. More details in [POST /streaming/ai/tasks#transcribe](/docs/api-reference/streaming/ai/create-ai-asr-task). Language is set by 3-letter language code according to ISO-639-2 (bibliographic code).
      - `client_user_id` string — Meta parameter, designed to store your own identifier. Can be used by you to tag requests from different end-users. It is not used in any way in video processing.
      - `client_entity_data` string — Meta parameter, designed to store your own extra information about a video entity: video source, video id, etc. It is not used in any way in video processing. For example, if an AI-task was created automatically when you uploaded a video with the AI auto-processing option (transcribing, translationing), then the ID of the associated video for which the task was performed will be explicitly indicated here.
    - AiContentmoderationNsfw
      - `task_name` 'content-moderation', required — Name of the task to be performed
      - `url` string, required — URL to the MP4 file to analyse. File must be publicly accessible via HTTP/HTTPS.
      - `category` 'sport' | 'nsfw' | 'hard_nudity' | 'soft_nudity' — Model for analysis (content-moderation only). Determines what exactly needs to be found in the video.
      - `client_user_id` string — Meta parameter, designed to store your own identifier. Can be used by you to tag requests from different end-users. It is not used in any way in video processing.
      - `client_entity_data` string — Meta parameter, designed to store your own extra information about a video entity: video source, video id, etc. It is not used in any way in video processing. For example, if an AI-task was created automatically when you uploaded a video with the AI auto-processing option (nudity detection, etc), then the ID of the associated video for which the task was performed will be explicitly indicated here.
    - AiContentmoderationHardnudity
      - `task_name` 'content-moderation', required — Name of the task to be performed
      - `url` string, required — URL to the MP4 file to analyse. File must be publicly accessible via HTTP/HTTPS.
      - `category` 'sport' | 'nsfw' | 'hard_nudity' | 'soft_nudity' — Model for analysis (content-moderation only). Determines what exactly needs to be found in the video.
      - `client_user_id` string — Meta parameter, designed to store your own identifier. Can be used by you to tag requests from different end-users. It is not used in any way in video processing.
      - `client_entity_data` string — Meta parameter, designed to store your own extra information about a video entity: video source, video id, etc. It is not used in any way in video processing. For example, if an AI-task was created automatically when you uploaded a video with the AI auto-processing option (nudity detection, etc), then the ID of the associated video for which the task was performed will be explicitly indicated here.
    - AiContentmoderationSoftnudity
      - `task_name` 'content-moderation', required — Name of the task to be performed
      - `url` string, required — URL to the MP4 file to analyse. File must be publicly accessible via HTTP/HTTPS.
      - `category` 'sport' | 'nsfw' | 'hard_nudity' | 'soft_nudity' — Model for analysis (content-moderation only). Determines what exactly needs to be found in the video.
      - `client_user_id` string — Meta parameter, designed to store your own identifier. Can be used by you to tag requests from different end-users. It is not used in any way in video processing.
      - `client_entity_data` string — Meta parameter, designed to store your own extra information about a video entity: video source, video id, etc. It is not used in any way in video processing. For example, if an AI-task was created automatically when you uploaded a video with the AI auto-processing option (nudity detection, etc), then the ID of the associated video for which the task was performed will be explicitly indicated here.
    - AiContentmoderationSport
      - `task_name` 'content-moderation', required — Name of the task to be performed
      - `url` string, required — URL to the MP4 file to analyse. File must be publicly accessible via HTTP/HTTPS.
      - `category` 'sport' | 'nsfw' | 'hard_nudity' | 'soft_nudity' — Model for analysis (content-moderation only). Determines what exactly needs to be found in the video.
      - `client_user_id` string — Meta parameter, designed to store your own identifier. Can be used by you to tag requests from different end-users. It is not used in any way in video processing.
      - `client_entity_data` string — Meta parameter, designed to store your own extra information about a video entity: video source, video id, etc. It is not used in any way in video processing. For example, if an AI-task was created automatically when you uploaded a video with the AI auto-processing option (nudity detection, etc), then the ID of the associated video for which the task was performed will be explicitly indicated here.

## Other responses

- `404` — Not found
- `422` — This is advanced functionality; to enable it, contact your manager or the Support Team.

---

[API](https://skmtc.dev/g-core/apis/gcore-openapi.md) · [All operations](https://skmtc.dev/g-core/apis/gcore-openapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/g-core/gcore-openapi/revisions/09e652815095/schema)
