> ## Documentation Index
> Fetch the complete documentation index at: https://gcore.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get list of AI tasks

> Returns a list of previously created and processed AI tasks.


The list contains brief information about the task and its execution status. Data is displayed page by page.



## OpenAPI

````yaml /api-reference/services_documented/streaming_api.yaml get /streaming/ai/tasks
openapi: 3.1.0
info:
  title: Gcore OpenAPI – Streaming API
  description: >-
    This OpenAPI is an aggregated OpenAPI specification that unifies all Gcore
    products into a single file. It covers Cloud, CDN, DNS, WAAP, DDoS
    Protection, Object Storage, Streaming, and FastEdge services.
  version: '2026-05-14T07:00:22.640261+00:00'
servers:
  - url: https://api.gcore.com
security:
  - APIKey: []
tags:
  - name: AI
    x-displayName: AI
  - name: Broadcasts
    x-displayName: Broadcasts
  - name: Directories
    x-displayName: Directories
  - name: Overlays
    x-displayName: Overlays
  - name: Players
    x-displayName: Players
  - name: Playlists
    x-displayName: Playlists
  - name: QualitySets
    x-displayName: QualitySets
  - name: Restreams
    x-displayName: Restreams
  - name: Streaming Statistics
    x-displayName: Statistics
  - name: Streams
    x-displayName: Streams
  - name: Subtitles
    x-displayName: Subtitles
  - name: Videos
    x-displayName: Videos
paths:
  /streaming/ai/tasks:
    get:
      tags:
        - AI
      summary: Get list of AI tasks
      description: >-
        Returns a list of previously created and processed AI tasks.



        The list contains brief information about the task and its execution
        status. Data is displayed page by page.
      operationId: get_ai_tasks_list
      parameters:
        - name: task_id
          in: query
          description: The task unique identifier to fiund
          required: false
          schema:
            type: string
            format: uuid
        - name: task_name
          in: query
          description: >-
            Type of the AI task. Reflects the original API method that was used
            to create the AI task.
          required: false
          schema:
            type: string
            enum:
              - transcription
              - content-moderation
        - name: status
          in: query
          description: Task status
          required: false
          schema:
            type: string
            enum:
              - FAILURE
              - PENDING
              - RECEIVED
              - RETRY
              - REVOKED
              - STARTED
              - SUCCESS
        - name: date_created
          in: query
          description: Time when task was created. Datetime in ISO 8601 format.
          required: false
          schema:
            type: string
        - name: ordering
          in: query
          description: >-
            Which field to use when ordering the results: `task_id`, status, and
            `task_name`.

            Sorting is done in ascending (ASC) order. 


            If parameter is omitted then "started_at DESC" is used for ordering
            by default.
          required: false
          schema:
            type: string
            enum:
              - task_id
              - status
              - task_name
              - started_at
        - name: search
          in: query
          description: >-
            This is an field for combined text search in the following fields:
            `task_id`, `task_name`, status, and `task_data`. 


            Both full and partial searches are possible inside specified above
            fields. For example, you can filter tasks of a certain category, or
            tasks by a specific original file.


            Example:

            - To filter tasks of Content Moderation NSFW method: ```GET
            /streaming/ai/tasks?search=nsfw```

            - To filter tasks of processing video from a specific origin: ```GET
            /streaming/ai/tasks?search=s3.eu-west-1.amazonaws.com```
          required: false
          schema:
            type: string
        - name: page
          in: query
          required: false
          schema:
            type: integer
            default: 1
          description: Page to view from task list, starting from 1
        - name: limit
          in: query
          description: Number of results to return per page.
          required: false
          schema:
            type: integer
            default: 10
      responses:
        '200':
          description: List of AI tasks
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ai_tasks_list'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/notfound'
        '422':
          description: >-
            This is advanced functionality; to enable it, contact your manager
            or the Support Team.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/upgraderequired'
      x-codeSamples:
        - lang: Python
          source: |-
            import os
            from gcore import Gcore

            client = Gcore(
                api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
            )
            page = client.streaming.ai_tasks.list()
            page = page.results[0]
            print(page.task_id)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/G-Core/gcore-go\"\n\t\"github.com/G-Core/gcore-go/option\"\n\t\"github.com/G-Core/gcore-go/streaming\"\n)\n\nfunc main() {\n\tclient := gcore.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\tpage, err := client.Streaming.AITasks.List(context.TODO(), streaming.AITaskListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", page)\n}\n"
components:
  schemas:
    ai_tasks_list:
      properties:
        count:
          type: integer
          description: Total number of tasks
          default: 0
        next:
          type: string
          description: Pointer to next page, is part of query string of the request
          default: null
        previous:
          type: string
          description: Pointer to the previous page, is part of query string of the request
          default: null
        results:
          type: array
          items:
            $ref: '#/components/schemas/ai_task_base'
      example:
        count: 127
        next: page=2
        previous: null
        results:
          - task_id: aafe70c6-0000-0000-0000-327b65f7670f
            task_name: content-moderation
            task_data: {}
            progress: 100
            status: SUCCESS
          - task_id: aafe70c6-0000-0000-0000-d3bcebebf37c
            task_name: transcription
            task_data: {}
            progress: 50
            status: STARTED
    notfound:
      allOf:
        - $ref: '#/components/schemas/badrequest'
        - example:
            status: 404
            error: >-
              Not Found. Entity you are looking for was not found, please check
              the initial parameters
    upgraderequired:
      type: object
      properties:
        error:
          type: string
          description: >-
            This is advanced functionality; to enable it, contact your manager
            or support service.
      example:
        error: Feature is disabled. Contact support to enable.
    ai_task_base:
      type: object
      properties:
        task_id:
          type: string
          format: uuid
          description: ID of the AI task
        status:
          type: string
          description: >-
            Status of processing the AI task. See GET /ai/results method for
            description.
          enum:
            - PENDING
            - STARTED
            - SUCCESS
            - FAILURE
            - REVOKED
            - RETRY
        progress:
          type: integer
          default: null
          description: >-
            Percentage of task completed. A value greater than 0 means that it
            has been taken into operation and is being processed.
        task_name:
          type: string
          description: Type of AI task
          enum:
            - content-moderation
            - transcription
        task_data:
          oneOf:
            - $ref: '#/components/schemas/ai_transcribe'
            - $ref: '#/components/schemas/ai_contentmoderation_nsfw'
            - $ref: '#/components/schemas/ai_contentmoderation_hardnudity'
            - $ref: '#/components/schemas/ai_contentmoderation_softnudity'
            - $ref: '#/components/schemas/ai_contentmoderation_sport'
          description: >-
            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.
    badrequest:
      type: object
      properties:
        status:
          type: integer
          description: Error number
        error:
          type: string
          description: Error message
      example:
        status: 400
        error: >-
          Bad Request response status code indicates that the server cannot or
          will not process the request due to something that is perceived to be
          a client error (for example, malformed request syntax, invalid request
          message framing, or deceptive request routing).
    ai_transcribe:
      type: object
      required:
        - url
        - task_name
      properties:
        task_name:
          type: string
          description: Name of the task to be performed
          enum:
            - transcription
        url:
          type: string
          description: >-
            URL to the MP4 file to analyse. File must be publicly accessible via
            HTTP/HTTPS.
        audio_language:
          type: string
          description: >-
            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
          default: null
        subtitles_language:
          type: string
          description: >-
            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).
          default: null
        client_user_id:
          type: string
          maxLength: 256
          default: null
          description: >-
            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:
          type: string
          maxLength: 4096
          default: null
          description: >-
            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.
      example:
        url: https://demo-files.gvideo.io/apidocs/spritefright-blender-cut30sec.mp4
        task_name: transcription
        audio_language: ger
    ai_contentmoderation_nsfw:
      allOf:
        - $ref: '#/components/schemas/ai_contentmoderation_general'
      required:
        - category
      properties:
        category:
          type: string
          enum:
            - nsfw
          description: AI content moderation with NSFW detection algorithm
      example:
        url: https://demo-files.gvideo.io/ai_demo_subtitles_nudity_detection.mp4
        task_name: content-moderation
        category: nsfw
    ai_contentmoderation_hardnudity:
      allOf:
        - $ref: '#/components/schemas/ai_contentmoderation_general'
      required:
        - category
      properties:
        category:
          type: string
          enum:
            - hard_nudity
          description: AI content moderation with "hard_nudity" algorithm
        stop_objects:
          type: string
          enum:
            - ANUS_EXPOSED
            - BUTTOCKS_EXPOSED
            - FEMALE_BREAST_EXPOSED
            - FEMALE_GENITALIA_EXPOSED
            - MALE_BREAST_EXPOSED
            - MALE_GENITALIA_EXPOSED
          description: >-
            Comma separated objects, and probabilities, that will cause the
            processing to stop immediatelly after finding.
      example:
        url: https://demo-files.gvideo.io/ai_demo_subtitles_nudity_detection.mp4
        task_name: content-moderation
        category: hard_nudity
        stop_objects: >-
          FEMALE_GENITALIA_EXPOSED,FEMALE_BREAST_EXPOSED:0.50,BUTTOCKS_EXPOSED:0.90
    ai_contentmoderation_softnudity:
      allOf:
        - $ref: '#/components/schemas/ai_contentmoderation_general'
      required:
        - category
      properties:
        category:
          type: string
          enum:
            - soft_nudity
          description: AI content moderation with "soft_nudity" algorithm
        stop_objects:
          type: string
          enum:
            - ANUS_COVERED
            - ANUS_EXPOSED
            - ARMPITS_COVERED
            - ARMPITS_EXPOSED
            - BELLY_COVERED
            - BELLY_EXPOSED
            - BUTTOCKS_COVERED
            - BUTTOCKS_EXPOSED
            - FACE_FEMALE
            - FACE_MALE
            - FEET_COVERED
            - FEET_EXPOSED
            - FEMALE_BREAST_COVERED
            - FEMALE_BREAST_EXPOSED
            - FEMALE_GENITALIA_COVERED
            - FEMALE_GENITALIA_EXPOSED
            - MALE_BREAST_EXPOSED
            - MALE_GENITALIA_EXPOSED
          description: >-
            Comma separated objects, and probabilities, that will cause the
            processing to stop immediatelly after finding.
      example:
        url: https://demo-files.gvideo.io/ai_demo_subtitles_nudity_detection.mp4
        task_name: content-moderation
        category: soft_nudity
        stop_objects: BELLY_COVERED:0.9,FEMALE_GENITALIA_COVERED
    ai_contentmoderation_sport:
      allOf:
        - $ref: '#/components/schemas/ai_contentmoderation_general'
      required:
        - category
      properties:
        category:
          type: string
          enum:
            - sport
          description: AI content moderation with types of sports activity detection
      example:
        url: >-
          https://demo-files.gvideo.io/ai_demo_soccer_players_passing_the_ball.mp4
        task_name: content-moderation
        category: sport
    ai_contentmoderation_general:
      type: object
      required:
        - url
        - task_name
      properties:
        task_name:
          type: string
          description: Name of the task to be performed
          enum:
            - content-moderation
        url:
          type: string
          description: >-
            URL to the MP4 file to analyse. File must be publicly accessible via
            HTTP/HTTPS.
        category:
          type: string
          description: >-
            Model for analysis (content-moderation only). Determines what
            exactly needs to be found in the video.
          enum:
            - sport
            - nsfw
            - hard_nudity
            - soft_nudity
        client_user_id:
          type: string
          maxLength: 256
          default: null
          description: >-
            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:
          type: string
          maxLength: 4096
          default: null
          description: >-
            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.
      example:
        url: https://demo-files.gvideo.io/ai_demo_subtitles_nudity_detection.mp4
        task_name: content-moderation
        category: nsfw
  securitySchemes:
    APIKey:
      description: >-
        API key for authentication. Make sure to include the word `apikey`,
        followed by a single space and then your token.

        Example: `apikey 1234$abcdef`
      type: apiKey
      in: header
      name: Authorization

````