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

# Retrieve a task



## OpenAPI

````yaml GET /task/{taskId}
openapi: 3.1.0
info:
  title: Livepeer API Reference
  description: |
    Welcome to the Livepeer API reference docs. Here you will find all the
    endpoints exposed on the standard Livepeer API, learn how to use them and
    what they return.
  version: 1.0.0
servers:
  - url: https://livepeer.studio/api
security:
  - apiKey: []
tags:
  - name: stream
    description: Operations related to livestream api
  - name: asset
    description: Operations related to asset/vod api
  - name: webhook
    description: Operations related to webhook api
  - name: multistream
    description: Operations related to multistream api
  - name: session
    description: Operations related to session api
  - name: room
    description: Operations related to rooms api
  - name: transcode
    description: Operations related to transcode api
  - name: metrics
    description: Operations related to metrics api
  - name: playback
    description: Operations related to playback api
  - name: accessControl
    description: Operations related to access control/signing keys api
  - name: task
    description: Operations related to tasks api
  - name: generate
    description: Operations related to AI generate api
paths:
  /task/{taskId}:
    get:
      tags:
        - task
      summary: Retrieve a Task
      operationId: getTask
      parameters:
        - in: path
          name: taskId
          schema:
            type: string
          description: ID of the task
          required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/task'
                x-speakeasy-name-override: data
        default:
          description: Error
      x-codeSamples:
        - lang: typescript
          label: getTask
          source: |-
            import { Livepeer } from "livepeer";

            const livepeer = new Livepeer({
              apiKey: "<YOUR_BEARER_TOKEN_HERE>",
            });

            async function run() {
              const result = await livepeer.task.get("<id>");

              // Handle the result
              console.log(result);
            }

            run();
        - lang: go
          label: getTask
          source: "package main\n\nimport(\n\tlivepeergo \"github.com/livepeer/livepeer-go\"\n\t\"context\"\n\t\"log\"\n)\n\nfunc main() {\n    s := livepeergo.New(\n        livepeergo.WithSecurity(\"<YOUR_BEARER_TOKEN_HERE>\"),\n    )\n\n    ctx := context.Background()\n    res, err := s.Task.Get(ctx, \"<value>\")\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.Task != nil {\n        // handle response\n    }\n}"
        - lang: python
          label: getTask
          source: |-
            from livepeer import Livepeer

            s = Livepeer(
                api_key="<YOUR_BEARER_TOKEN_HERE>",
            )

            res = s.task.get(task_id="<value>")

            if res.task is not None:
                # handle response
                pass
components:
  schemas:
    task:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
          description: Task ID
          readOnly: true
          example: 09F8B46C-61A0-4254-9875-F71F4C605BC7
        type:
          type: string
          description: Type of the task
          enum:
            - upload
            - export
            - export-data
            - transcode-file
            - clip
          example: upload
        createdAt:
          readOnly: true
          type: number
          description: Timestamp (in milliseconds) at which task was created
          example: 1587667174725
        scheduledAt:
          readOnly: true
          type: number
          description: |
            Timestamp (in milliseconds) at which the task was scheduled for
            execution (e.g. after file upload finished).
          example: 1587667174725
        inputAssetId:
          type: string
          description: ID of the input asset
          example: 09F8B46C-61A0-4254-9875-F71F4C605BC7
        outputAssetId:
          type: string
          description: ID of the output asset
          example: 09F8B46C-61A0-4254-9875-F71F4C605BC7
        projectId:
          type: string
          description: ID of the project
          example: 09F8B46C-61A0-4254-9875-F71F4C605BC7
        requesterId:
          type: string
          description: ID of the requester hash(IP + SALT + PlaybackId)
          example: 09F8B46C-61A0-4254-9875-F71F4C605BC7
        params:
          type: object
          additionalProperties: false
          description: Parameters of the task
          properties:
            upload:
              type: object
              additionalProperties: false
              description: Parameters for the upload task
              properties:
                url:
                  type: string
                  description: URL of the asset to "upload"
                  example: https://cdn.livepeer.com/ABC123/filename.mp4
                encryption: cc6bae30-42ae-4c8e-a72b-4dee2e2d012d
                c2pa:
                  type: boolean
                  description: Decides if the output video should include C2PA signature
                  example: true
                profiles:
                  type: array
                  items:
                    $ref: '#/components/schemas/transcode-profile'
                targetSegmentSizeSecs:
                  type: number
                  description: >-
                    How many seconds the duration of each output segment should
                    be
                  example: 6
            export:
              $ref: '#/components/schemas/export-task-params'
            exportData:
              type: object
              additionalProperties: false
              description: Parameters for the export-data task
              required:
                - content
              properties:
                content:
                  type: object
                  description: File content to store into IPFS
                  example:
                    data: Hello, World!
                ipfs:
                  $ref: '#/components/schemas/ipfs-export-params'
                type:
                  type: string
                  description: Optional type of content
                  example: text/plain
                id:
                  type: string
                  description: Optional ID of the content
                  example: 09F8B46C-61A0-4254-9875-F71F4C605BC7
            transcode-file:
              type: object
              additionalProperties: false
              description: Parameters for the transcode-file task
              properties:
                input:
                  type: object
                  additionalProperties: false
                  description: Input video file to transcode
                  properties:
                    url:
                      type: string
                      description: |
                        URL of a video to transcode, accepts object-store format
                        "s3+https"
                      example: https://cdn.livepeer.com/ABC123/filename.mp4
                storage:
                  type: object
                  additionalProperties: false
                  description: Storage for the output files
                  properties:
                    url:
                      type: string
                      description: |
                        URL of the output storage, accepts object-store format
                        "s3+https"
                      example: s3+https://accessKeyId:secretAccessKey@s3Endpoint/bucket
                outputs:
                  type: object
                  additionalProperties: false
                  description: Output formats
                  properties:
                    hls:
                      type: object
                      additionalProperties: false
                      description: HLS output format
                      properties:
                        path:
                          type: string
                          description: Path for the HLS output
                          example: /samplevideo/hls
                    mp4:
                      type: object
                      additionalProperties: false
                      description: MP4 output format
                      properties:
                        path:
                          type: string
                          description: Path for the MP4 output
                          example: /samplevideo/mp4
                profiles:
                  type: array
                  items:
                    $ref: '#/components/schemas/transcode-profile'
                targetSegmentSizeSecs:
                  type: number
                  description: |
                    How many seconds the duration of each output segment should
                    be
                  example: 10
                creatorId:
                  $ref: '#/components/schemas/input-creator-id'
                c2pa:
                  type: boolean
                  description: Decides if the output video should include C2PA signature
                  example: false
            clip:
              properties:
                url:
                  type: string
                  description: URL of the asset to "clip"
                  example: >-
                    https://asset-cdn.lp-playback.monster/hls/1bde4o2i6xycudoy/static360p0.mp4
                clipStrategy:
                  type: object
                  description: >-
                    Strategy to use for clipping the asset. If not specified,
                    the default strategy that Catalyst is configured for will be
                    used. This field only available for admin users, and is only
                    used for E2E testing.
                  additionalProperties: false
                  properties:
                    startTime: 54417b5a-d707-49a9-a81a-2a5206ccca21
                    endTime: 3a1da03f-12e9-4cff-9368-7d332f45777c
                    playbackId: 745c9cc5-4fd8-4994-b6d0-e99eb0d26196
                catalystPipelineStrategy:
                  type: string
                  description: >-
                    Force to use a specific strategy in the Catalyst pipeline.
                    If not specified, the default strategy that Catalyst is
                    configured for will be used. This field only available for
                    admin users, and is only used for E2E testing.
                  enum:
                    - catalyst
                    - catalyst_ffmpeg
                    - background_external
                    - background_mist
                    - fallback_external
                    - external
                  example: catalyst_ffmpeg
                sessionId:
                  type: string
                  description: ID of the session
                  example: d32ae9e6-c459-4931-9898-e86e2f5e7e16
                inputId:
                  type: string
                  description: ID of the input asset or stream
                  example: 09F8B46C-61A0-4254-9875-F71F4C605BC7
        status:
          readOnly: true
          type: object
          additionalProperties: false
          description: Status of the task
          required:
            - phase
            - updatedAt
          properties:
            phase:
              type: string
              description: Phase of the task
              enum:
                - pending
                - waiting
                - running
                - failed
                - completed
                - cancelled
              example: pending
            updatedAt:
              type: number
              description: Timestamp (in milliseconds) at which task was updated
              example: 1587667174725
            progress:
              type: number
              description: Current progress of the task in a 0-1 ratio
              example: 0.5
            errorMessage:
              type: string
              description: Error message if the task failed
              example: Failed to upload file
            retries:
              type: number
              description: Number of retries done on the task
              example: 3
            step:
              type: string
              writeOnly: true
              description: Step of the task processing
              example: upload
        output:
          type: object
          additionalProperties: false
          description: Output of the task
          properties:
            upload:
              type: object
              additionalProperties: true
              description: Output of the upload task
              properties:
                videoFilePath:
                  type: string
                  writeOnly: true
                  example: https://s3.amazonaws.com/my-bucket/path/filename.mp4
                metadataFilePath:
                  type: string
                  writeOnly: true
                  example: https://s3.amazonaws.com/my-bucket/path/filename.json
                assetSpec:
                  $ref: '#/components/schemas/asset'
            export:
              type: object
              additionalProperties: false
              description: Output of the export task
              properties:
                ipfs:
                  type: object
                  additionalProperties: false
                  required:
                    - videoFileCid
                  properties:
                    videoFileCid:
                      type: string
                      description: IPFS CID of the exported video file
                      example: Qmabc123xyz341
                    videoFileUrl:
                      type: string
                      readOnly: true
                      description: URL for the file with the IPFS protocol
                      example: ipfs://Qmabc123xyz341
                    videoFileGatewayUrl:
                      readOnly: true
                      type: string
                      description: URL to access file via HTTP through an IPFS gateway
                      example: https://gateway.ipfs.io/ipfs/Qmabc123xyz341
                    nftMetadataCid:
                      type: string
                      description: IPFS CID of the default metadata exported for the video
                      example: Qmabc123xyz341
                    nftMetadataUrl:
                      readOnly: true
                      type: string
                      description: URL for the metadata file with the IPFS protocol
                      example: ipfs://Qmabc123xyz341
                    nftMetadataGatewayUrl:
                      readOnly: true
                      type: string
                      description: |
                        URL to access metadata file via HTTP through an IPFS
                        gateway
                      example: https://gateway.ipfs.io/ipfs/Qmabc123xyz341
            exportData:
              type: object
              additionalProperties: false
              description: Output of the export data task
              properties:
                ipfs:
                  type: object
                  additionalProperties: false
                  required:
                    - cid
                  properties:
                    cid:
                      type: string
                      description: IPFS CID of the exported data
                      example: Qmabc123xyz341
    transcode-profile:
      type: object
      description: Transcode API profile
      additionalProperties: false
      required:
        - bitrate
      properties:
        width:
          type: integer
          minimum: 128
          example: 1280
        name:
          type: string
          minLength: 1
          maxLength: 500
          example: 720p
        height:
          type: integer
          minimum: 128
          example: 720
        bitrate:
          type: integer
          minimum: 400
          example: 3000000
        quality:
          type: integer
          description: >
            Restricts the size of the output video using the constant quality
            feature. Increasing this value will result in a lower quality video.
            Note that this parameter might not work if the transcoder lacks
            support for it.
          minimum: 0
          maximum: 44
          example: 23
        fps:
          type: integer
          minimum: 0
          example: 30
        fpsDen:
          type: integer
          minimum: 1
          example: 1
        gop:
          type: string
          example: 2
        profile:
          type: string
          enum:
            - H264Baseline
            - H264Main
            - H264High
            - H264ConstrainedHigh
          example: H264Baseline
        encoder:
          type: string
          enum:
            - H.264
            - HEVC
            - VP8
            - VP9
          example: H.264
    export-task-params:
      description: Parameters for the export task
      oneOf:
        - type: object
          additionalProperties: false
          required:
            - custom
          properties:
            custom:
              type: object
              description: custom URL parameters for the export task
              additionalProperties: false
              required:
                - url
              properties:
                url:
                  type: string
                  format: uri
                  pattern: ^http(s)?://
                  description: URL where to export the asset
                  example: >-
                    https://s3.amazonaws.com/my-bucket/path/filename.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=LLMMB
                method:
                  type: string
                  description: Method to use on the export request
                  default: PUT
                  example: POST
                headers:
                  type: object
                  description: Headers to add to the export request
                  additionalProperties:
                    type: string
        - type: object
          additionalProperties: false
          required:
            - ipfs
          properties:
            ipfs:
              $ref: '#/components/schemas/ipfs-export-params'
    ipfs-export-params:
      type: object
      additionalProperties: false
      properties:
        $ref: 97853d35-d256-4c83-9f8c-f28f3f675808
        pinata:
          description: |
            Custom credentials for the Piñata service. Must have either
            a JWT or an API key and an API secret.
          oneOf:
            - type: object
              additionalProperties: false
              required:
                - jwt
              properties:
                jwt:
                  type: string
                  writeOnly: true
                  description: |
                    Will be added to the Authorization header as a
                    Bearer token.
                  example: >-
                    eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
            - type: object
              additionalProperties: false
              required:
                - apiKey
                - apiSecret
              properties:
                apiKey:
                  type: string
                  description: Will be added to the pinata_api_key header.
                  example: '1234567890'
                apiSecret:
                  type: string
                  writeOnly: true
                  description: Will be added to the pinata_secret_api_key header.
                  example: 1234567890abcdef
    input-creator-id:
      oneOf:
        - type: object
          additionalProperties: false
          required:
            - type
            - value
          properties:
            type:
              type: string
              enum:
                - unverified
            value:
              type: string
        - type: string
          description: >-
            Helper syntax to specify an unverified creator ID, fully managed by
            the developer.
    asset:
      type: object
      additionalProperties: false
      required:
        - id
        - name
        - source
      properties:
        id:
          type: string
          readOnly: true
          example: 09F8B46C-61A0-4254-9875-F71F4C605BC7
        type:
          type: string
          enum:
            - video
            - audio
          description: Type of the asset.
          example: video
        playbackId:
          type: string
          example: eaw4nk06ts2d0mzb
          description: >-
            The playback ID to use with the Playback Info endpoint to retrieve
            playback URLs.
        userId:
          type: string
          readOnly: true
          example: 66E2161C-7670-4D05-B71D-DA2D6979556F
          deprecated: true
        staticMp4:
          type: boolean
          writeOnly: true
          description: Whether to generate MP4s for the asset.
        playbackUrl:
          readOnly: true
          type: string
          example: >-
            https://livepeercdn.com/asset/ea03f37e-f861-4cdd-b495-0e60b6d753ad/index.m3u8
          description: >-
            URL for HLS playback. **It is recommended to not use this URL**, and
            instead use playback IDs with the Playback Info endpoint to retrieve
            the playback URLs - this URL format is subject to change (e.g.
            https://livepeercdn.com/asset/ea03f37e-f861-4cdd-b495-0e60b6d753ad/index.m3u8).
        downloadUrl:
          readOnly: true
          type: string
          example: https://livepeercdn.com/asset/eaw4nk06ts2d0mzb/video/download.mp4
          description: >-
            The URL to directly download the asset, e.g.
            `https://livepeercdn.com/asset/eawrrk06ts2d0mzb/video`. It is not
            recommended to use this for playback.
        playbackPolicy:
          $ref: '#/components/schemas/playback-policy'
        source:
          oneOf:
            - additionalProperties: false
              required:
                - type
                - url
              properties:
                type:
                  type: string
                  enum:
                    - url
                url:
                  type: string
                  description: URL from which the asset was uploaded.
                gatewayUrl:
                  type: string
                  description: >-
                    Gateway URL from asset if parsed from provided URL on
                    upload.
                encryption: 1d4747a6-cf78-4155-af04-c1ece32db398
            - additionalProperties: false
              required:
                - type
                - sessionId
              properties:
                type:
                  type: string
                  enum:
                    - recording
                sessionId:
                  type: string
                  description: ID of the session from which this asset was created
            - additionalProperties: false
              required:
                - type
              properties:
                type:
                  type: string
                  enum:
                    - directUpload
                    - clip
                encryption: e4d49a75-d68d-4c99-ba13-7e1863ef9185
                sourceId:
                  type: string
                  description: ID of the asset or stream from which this asset was created.
                sessionId:
                  type: string
                  description: ID of the session from which this asset was created.
                playbackId:
                  type: string
                  description: >-
                    Playback ID of the asset or stream from which this asset was
                    created.
                requesterId:
                  type: string
                  description: ID of the requester from which this asset was created.
                assetId:
                  type: string
                  description: ID of the asset from which this asset was created.
        creatorId:
          $ref: '#/components/schemas/creator-id'
        profiles:
          type: array
          description: |
            Requested profiles for the asset to be transcoded into. Configured
            on the upload APIs payload or through the `stream.recordingSpec`
            field for recordings. If not specified, default profiles are derived
            based on the source input. If this is a recording, the source will
            not be present in this list but will be available for playback.
          items:
            $ref: '#/components/schemas/transcode-profile'
        storage:
          type: object
          additionalProperties: false
          properties:
            ipfs:
              type: object
              additionalProperties: false
              properties:
                $ref: 4cb959fd-1494-4914-8ce7-8f3ff81ba4f9
                spec:
                  type: object
                  additionalProperties: false
                  default: {}
                  properties:
                    nftMetadataTemplate:
                      type: string
                      enum:
                        - file
                        - player
                      default: file
                      description: |
                        Name of the NFT metadata template to export. 'player'
                        will embed the Livepeer Player on the NFT while 'file'
                        will reference only the immutable MP4 files.
                    nftMetadata:
                      type: object
                      description: |
                        Additional data to add to the NFT metadata exported to
                        IPFS. Will be deep merged with the default metadata
                        exported.
                nftMetadata:
                  $ref: '#/components/schemas/ipfs-file-info'
                updatedAt:
                  readOnly: true
                  type: number
                  description: |
                    Timestamp (in milliseconds) at which IPFS export task was
                    updated
                  example: 1587667174725
            status:
              $ref: '#/components/schemas/storage-status'
        status:
          readOnly: true
          type: object
          additionalProperties: false
          required:
            - phase
            - updatedAt
          description: Status of the asset
          properties:
            phase:
              type: string
              description: Phase of the asset
              enum:
                - uploading
                - waiting
                - processing
                - ready
                - failed
                - deleting
                - deleted
            updatedAt:
              type: number
              description: Timestamp (in milliseconds) at which the asset was last updated
              example: 1587667174725
            progress:
              type: number
              description: Current progress of the task creating this asset.
            errorMessage:
              type: string
              description: Error message if the asset creation failed.
        name:
          type: string
          description: >
            The name of the asset. This is not necessarily the filename - it can
            be a custom name or title.
          example: filename.mp4
        projectId:
          type: string
          description: The ID of the project
          example: aac12556-4d65-4d34-9fb6-d1f0985eb0a9
        createdAt:
          readOnly: true
          type: number
          description: Timestamp (in milliseconds) at which asset was created
          example: 1587667174725
        createdByTokenName:
          type: string
          readOnly: true
          description: Name of the token used to create this object
        size:
          readOnly: true
          type: number
          description: Size of the asset in bytes
          example: 84934509
        hash:
          type:
            - array
            - 'null'
          description: Hash of the asset
          items:
            type: object
            additionalProperties: false
            properties:
              hash:
                type: string
                description: Hash of the asset
                example: >-
                  9b560b28b85378a5004117539196ab24e21bbd75b0e9eb1a8bc7c5fd80dc5b57
              algorithm:
                type: string
                description: Hash algorithm used to compute the hash
                example: sha256
        videoSpec:
          readOnly: true
          type: object
          additionalProperties: false
          description: Video metadata
          properties:
            format:
              type: string
              description: Format of the asset
              example: mp4
            duration:
              type: number
              description: Duration of the asset in seconds (float)
              example: 23.8328
            bitrate:
              type: number
              description: Bitrate of the video in bits per second
              example: 1000000
            tracks:
              type: array
              description: |
                List of tracks associated with the asset when the format
                contemplates them (e.g. mp4)
              items:
                type: object
                additionalProperties: false
                required:
                  - type
                  - codec
                properties:
                  type:
                    type: string
                    description: type of track
                    enum:
                      - video
                      - audio
                    example: video
                  codec:
                    type: string
                    description: Codec of the track
                    example: aac
                  startTime:
                    type: number
                    description: Start time of the track in seconds
                    example: 23.8238
                  duration:
                    type: number
                    description: Duration of the track in seconds
                    example: 23.8238
                  bitrate:
                    type: number
                    description: Bitrate of the track in bits per second
                    example: 1000000
                  width:
                    type: number
                    description: Width of the track - only for video tracks
                    example: 1920
                  height:
                    type: number
                    description: Height of the track - only for video tracks
                    example: 1080
                  pixelFormat:
                    type: string
                    description: Pixel format of the track - only for video tracks
                    example: yuv420p
                  fps:
                    type: number
                    description: Frame rate of the track - only for video tracks
                    example: 30
                  channels:
                    type: number
                    description: Amount of audio channels in the track
                    example: 2
                  sampleRate:
                    type: number
                    description: |
                      Sample rate of the track in samples per second - only for
                      audio tracks
                    example: 44100
                  bitDepth:
                    type: number
                    description: Bit depth of the track - only for audio tracks
                    example: 16
    playback-policy:
      type:
        - object
        - 'null'
      description: Whether the playback policy for an asset or stream is public or signed
      additionalProperties: false
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - public
            - jwt
            - webhook
          example: webhook
        webhookId:
          type: string
          description: ID of the webhook to use for playback policy
          example: 1bde4o2i6xycudoy
        webhookContext:
          type: object
          description: User-defined webhook context
          additionalProperties: true
          example:
            streamerId: my-custom-id
        refreshInterval:
          type: number
          description: |
            Interval (in seconds) at which the playback policy should be
            refreshed (default 600 seconds)
          example: 600
        allowedOrigins:
          type: array
          description: >-
            List of allowed origins for CORS playback
            (<scheme>://<hostname>:<port>, <scheme>://<hostname>)
          items:
            type: string
    creator-id:
      oneOf:
        - type: object
          additionalProperties: false
          required:
            - type
            - value
          properties:
            type:
              type: string
              enum:
                - unverified
              example: unverified
            value:
              type: string
              description: Developer-managed ID of the user who created the resource.
              example: user123
    ipfs-file-info:
      type: object
      required:
        - cid
      additionalProperties: false
      properties:
        cid:
          type: string
          description: CID of the file on IPFS
        url:
          readOnly: true
          type: string
          description: URL with IPFS scheme for the file
        gatewayUrl:
          readOnly: true
          type: string
          description: URL to access file via HTTP through an IPFS gateway
    storage-status:
      readOnly: true
      additionalProperties: false
      required:
        - phase
        - tasks
      properties:
        phase:
          type: string
          description: Phase of the asset storage
          enum:
            - waiting
            - processing
            - ready
            - failed
            - reverted
          example: ready
        progress:
          type: number
          description: Current progress of the task updating the storage.
          example: 0.5
        errorMessage:
          type: string
          description: Error message if the last storage changed failed.
          example: Failed to update storage
        tasks:
          type: object
          additionalProperties: false
          properties:
            pending:
              type: string
              description: |
                ID of any currently running task that is exporting this
                asset to IPFS.
              example: 09F8B46C-61A0-4254-9875-F71F4C605BC7
            last:
              type: string
              description: |
                ID of the last task to run successfully, that created
                the currently saved data.
              example: 09F8B46C-61A0-4254-9875-F71F4C605BC7
            failed:
              type: string
              description: ID of the last task to fail execution.
              example: 09F8B46C-61A0-4254-9875-F71F4C605BC7
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      bearerFormat: JWT

````