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

# Get video transcript

> Returns the transcript for a public video, in WebVTT format. Without `language`, returns the channel-set default track, or the first available one if none is set. Use the `captions` field on the video-detail endpoint to see which languages exist before requesting one.



## OpenAPI

````yaml /openapi.json get /v1/youtube/videos/{videoId}/transcript
openapi: 3.1.0
info:
  title: KonbiniAPI
  version: 1.0.0
  description: >-
    Social media API that normalizes TikTok, Instagram, YouTube, Reddit, X, and
    LinkedIn data into a consistent ActivityStreams 2.0 format.


    Every authenticated response includes `X-Credits-Remaining` and
    `X-Credits-Used` headers. Each successful request costs 1 credit. Requests
    that fail with 400, 5xx, or upstream errors are refunded (X-Credits-Used:
    0).
  contact:
    name: KonbiniAPI
    email: hello@konbiniapi.com
    url: https://konbiniapi.com
servers:
  - url: https://api.konbiniapi.com
    description: Production
security:
  - apiKey: []
tags:
  - name: TikTok
    description: TikTok data endpoints
  - name: Instagram
    description: Instagram data endpoints
  - name: YouTube
    description: YouTube data endpoints
  - name: Reddit
    description: Reddit data endpoints
  - name: X
    description: X data endpoints
  - name: LinkedIn
    description: LinkedIn data endpoints
paths:
  /v1/youtube/videos/{videoId}/transcript:
    get:
      tags:
        - YouTube
      summary: Get video transcript
      description: >-
        Returns the transcript for a public video, in WebVTT format. Without
        `language`, returns the channel-set default track, or the first
        available one if none is set. Use the `captions` field on the
        video-detail endpoint to see which languages exist before requesting
        one.
      operationId: youtubeGetVideoTranscript
      parameters:
        - schema:
            type: string
            description: YouTube video ID (the `v=` value from a watch URL)
            example: plN7JMbadRg
          required: true
          description: YouTube video ID (the `v=` value from a watch URL)
          name: videoId
          in: path
        - schema:
            type: string
            description: >-
              Language code of the caption track to return (as listed in the
              video-detail endpoint's captions[].languageCode). Defaults to the
              channel-set default track.
            example: en
          required: false
          description: >-
            Language code of the caption track to return (as listed in the
            video-detail endpoint's captions[].languageCode). Defaults to the
            channel-set default track.
          name: language
          in: query
      responses:
        '200':
          description: Returns the transcript
          headers:
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credits remaining after this request
            X-Credits-Used:
              schema:
                type: integer
              description: Credits consumed (1 if charged, 0 if refunded on error)
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      '@context':
                        type: array
                        prefixItems:
                          - type: string
                            enum:
                              - https://www.w3.org/ns/activitystreams#
                          - type: string
                            enum:
                              - https://konbiniapi.com/ns/social#
                        description: ActivityStreams JSON-LD context
                        example:
                          - https://www.w3.org/ns/activitystreams#
                          - https://konbiniapi.com/ns/social#
                      type:
                        type: string
                        description: ActivityStreams object type
                        example: Document
                      id:
                        type: string
                        format: uri
                        description: Transcript permalink
                        example: >-
                          https://www.youtube.com/watch?v=plN7JMbadRg&transcript=en
                      url:
                        type: string
                        format: uri
                        description: Video permalink
                        example: https://www.youtube.com/watch?v=plN7JMbadRg
                      mediaType:
                        type: string
                        description: MIME type
                        example: text/vtt
                      language:
                        type: string
                        description: BCP-47 (or bare) language code of the returned track
                        example: en
                      size:
                        type: integer
                        example: 376111
                        description: File size in bytes
                      source:
                        type: string
                        description: >-
                          Present and set to "ASR" when the track is
                          auto-generated (speech recognition). Absent for a
                          manually uploaded track.
                        example: ASR
                      content:
                        type: string
                        description: WebVTT formatted transcript content
                        example: |-
                          WEBVTT

                          00:00:00.133 --> 00:00:02.033
                          ​​​ ​I just bought this entire ​ ​​
                          ​​ ​grocery store--​ ​​

                          00:00:00.133 --> 00:00:02.033
                          ​​​ ​I just bought this entire ​ ​​
                          ​​ ​grocery store--​ ​​
                    required:
                      - '@context'
                      - type
                      - id
                      - url
                      - mediaType
                      - language
                      - content
                required:
                  - data
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/CreditsExhaustedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '413':
          $ref: '#/components/responses/PayloadTooLargeError'
        '500':
          $ref: '#/components/responses/InternalError'
        '502':
          $ref: '#/components/responses/PlatformError'
        '503':
          $ref: '#/components/responses/ServiceUnavailableError'
        '504':
          $ref: '#/components/responses/PlatformTimeoutError'
components:
  responses:
    ValidationError:
      description: Bad Request — Invalid parameters
      headers:
        X-Credits-Remaining:
          schema:
            type: integer
          description: Credits remaining after this request
        X-Credits-Used:
          schema:
            type: integer
          description: Credits consumed (1 if charged, 0 if refunded on error)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationError'
    UnauthorizedError:
      description: Unauthorized — Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnauthorizedError'
    CreditsExhaustedError:
      description: Payment Required — Credits exhausted
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreditsExhaustedError'
    ForbiddenError:
      description: Forbidden — API key disabled or expired
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ForbiddenError'
    NotFoundError:
      description: Not Found
      headers:
        X-Credits-Remaining:
          schema:
            type: integer
          description: Credits remaining after this request
        X-Credits-Used:
          schema:
            type: integer
          description: Credits consumed (1 if charged, 0 if refunded on error)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NotFoundError'
    PayloadTooLargeError:
      description: Content Too Large — Request body exceeds 1 MB
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PayloadTooLargeError'
    InternalError:
      description: Internal Server Error
      headers:
        X-Credits-Remaining:
          schema:
            type: integer
          description: Credits remaining after this request
        X-Credits-Used:
          schema:
            type: integer
          description: Credits consumed (1 if charged, 0 if refunded on error)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalError'
    PlatformError:
      description: Bad Gateway — Upstream platform error
      headers:
        X-Credits-Remaining:
          schema:
            type: integer
          description: Credits remaining after this request
        X-Credits-Used:
          schema:
            type: integer
          description: Credits consumed (1 if charged, 0 if refunded on error)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PlatformError'
    ServiceUnavailableError:
      description: Service Unavailable
      headers:
        X-Credits-Remaining:
          schema:
            type: integer
          description: Credits remaining after this request
        X-Credits-Used:
          schema:
            type: integer
          description: Credits consumed (1 if charged, 0 if refunded on error)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceUnavailableError'
    PlatformTimeoutError:
      description: Gateway Timeout — Upstream platform timed out
      headers:
        X-Credits-Remaining:
          schema:
            type: integer
          description: Credits remaining after this request
        X-Credits-Used:
          schema:
            type: integer
          description: Credits consumed (1 if charged, 0 if refunded on error)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PlatformTimeoutError'
  schemas:
    ValidationError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - validation_error
                description: Machine-readable error code
              message:
                type: string
                example: Validation error
                description: Human-readable error message
            required:
              - code
              - message
          description: List of errors
        data:
          type: 'null'
          description: Always null for error responses
      required:
        - errors
        - data
    UnauthorizedError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - missing_api_key
                  - invalid_api_key
                description: Machine-readable error code
              message:
                type: string
                example: Invalid API key
                description: Human-readable error message
            required:
              - code
              - message
          description: List of errors
        data:
          type: 'null'
          description: Always null for error responses
      required:
        - errors
        - data
    CreditsExhaustedError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - credits_exhausted
                description: Machine-readable error code
              message:
                type: string
                example: Credits exhausted. Upgrade your plan at konbiniapi.com
                description: Human-readable error message
            required:
              - code
              - message
          description: List of errors
        data:
          type: 'null'
          description: Always null for error responses
      required:
        - errors
        - data
    ForbiddenError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - api_key_disabled
                  - api_key_expired
                description: Machine-readable error code
              message:
                type: string
                example: API key is disabled
                description: Human-readable error message
            required:
              - code
              - message
          description: List of errors
        data:
          type: 'null'
          description: Always null for error responses
      required:
        - errors
        - data
    NotFoundError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - not_found
                  - route_not_found
                description: Machine-readable error code
              message:
                type: string
                example: Not found
                description: Human-readable error message
            required:
              - code
              - message
          description: List of errors
        data:
          type: 'null'
          description: Always null for error responses
      required:
        - errors
        - data
    PayloadTooLargeError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - validation_error
                description: Machine-readable error code
              message:
                type: string
                example: Request body too large
                description: Human-readable error message
            required:
              - code
              - message
          description: List of errors
        data:
          type: 'null'
          description: Always null for error responses
      required:
        - errors
        - data
    InternalError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - internal_error
                description: Machine-readable error code
              message:
                type: string
                example: Internal error
                description: Human-readable error message
            required:
              - code
              - message
          description: List of errors
        data:
          type: 'null'
          description: Always null for error responses
      required:
        - errors
        - data
    PlatformError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - platform_error
                description: Machine-readable error code
              message:
                type: string
                example: Platform error
                description: Human-readable error message
            required:
              - code
              - message
          description: List of errors
        data:
          type: 'null'
          description: Always null for error responses
      required:
        - errors
        - data
    ServiceUnavailableError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - service_unavailable
                description: Machine-readable error code
              message:
                type: string
                example: Service unavailable
                description: Human-readable error message
            required:
              - code
              - message
          description: List of errors
        data:
          type: 'null'
          description: Always null for error responses
      required:
        - errors
        - data
    PlatformTimeoutError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - platform_error
                description: Machine-readable error code
              message:
                type: string
                example: Platform error
                description: Human-readable error message
            required:
              - code
              - message
          description: List of errors
        data:
          type: 'null'
          description: Always null for error responses
      required:
        - errors
        - data
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: |-
        Send your API key in the Authorization header as a Bearer token.
        Example: `Authorization: Bearer <your-api-key>`

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.