VidGrid Caption API

The Caption API allows you to request and manage closed captioning on your Videos.

Operations 3

GET /vidgrid/v2/captions/{identifier} Retrieve caption #
DELETE /vidgrid/v2/captions/{identifier} Delete caption #
POST /vidgrid/v2/captions Create caption #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/vidgrid-caption-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

vidgrid-caption-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: VidGrid API Reference Caption API
  description: 'Welcome to the VidGrid REST API!


    You can use this API to create and manage resources on your VidGrid account. The API is meant to be used server-side and all requests should be made over SSL.


    Code examples can be viewed in the area to the right, and you can switch the language of the examples with the tabs in the top right.'
  termsOfService: https://www.vidgrid.com/terms/
  contact:
    name: API Support
    url: https://help.vidgrid.com
    email: videoengineering@paylocity.com?subject=API Inquiry
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: '2.0'
servers:
- url: https://api.vidgrid.com/ContentManagement
security:
- bearer: []
  basic: []
tags:
- name: Caption
  description: The Caption API allows you to request and manage closed captioning on your Videos.
  externalDocs:
    description: More
    url: https://developer.vidgrid.com/docs/v2/#caption-api
paths:
  /vidgrid/v2/captions/{identifier}:
    get:
      tags:
      - Caption
      summary: Retrieve caption
      description: This endpoint returns an array of Caption Resources.
      parameters:
      - name: identifier
        in: path
        description: ID of caption to return
        required: false
        schema:
          type: string
      - name: identifiers[]
        in: query
        description: The unique identifiers of the desired captions. When set, this takes priority over **identifier**.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: include[]
        in: query
        description: An array of properties to be included with the returned Video Resources.
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - transcript
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/CaptionResource'
                type: object
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      operationId: getVidgridV2CaptionsByIdentifier
      x-operation-id-source: derived
    delete:
      tags:
      - Caption
      summary: Delete caption
      description: This endpoint deletes a caption.
      parameters:
      - name: identifier
        in: path
        description: ID of caption to delete
        required: true
        schema:
          type: string
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      operationId: deleteVidgridV2CaptionsByIdentifier
      x-operation-id-source: derived
  /vidgrid/v2/captions:
    post:
      tags:
      - Caption
      summary: Create caption
      description: This endpoint makes a caption request for a Video Resource. It returns a Caption Resource with a status but the caption will not be ready immediately.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              properties:
                video_identifier:
                  description: The unique identifier of the video you are requesting a caption for.
                  type: string
                type:
                  description: 'The type of caption you would like to request. Possible values: `machine`, `professional`'
                  type: string
              type: object
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/CaptionResource'
                type: object
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      operationId: postVidgridV2Captions
      x-operation-id-source: derived
components:
  schemas:
    CaptionTranscript:
      description: Caption transcript in plain text.
      type: string
    CaptionResource:
      title: Caption Resource
      description: The Caption Resource(s) returned in a successful response.
      required:
      - identifier
      - type
      - status
      - video_identifier
      - language
      properties:
        identifier:
          description: The unique identifier for the caption on VidGrid.
          type: string
        language:
          description: The language of the caption file.
          type: string
        status:
          description: 'The current status of this caption resource. Possible values: `QUEUED`, `PENDING`, `IN_PROGRESS`, `CANCELED`, `FAILED`, `COMPLETED`'
          type: string
        type:
          description: 'The type of caption resource. Possible values: `machine`, `professional`, `manual`, `machine_translation`'
          type: string
        video_identifier:
          description: The unique identifier of the video this caption belongs to.
          type: string
        transcript:
          $ref: '#/components/schemas/CaptionTranscript'
      type: object
  responses:
    NoContent:
      description: No Content
      content:
        application/json:
          schema:
            properties:
              message:
                description: A message explaining what went wrong
                type: string
            type: object
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            properties:
              message:
                description: A message explaining what went wrong
                type: string
            type: object
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            properties:
              message:
                description: A message explaining what went wrong
                type: string
            type: object
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            properties:
              message:
                description: A message explaining what went wrong
                type: string
            type: object
    ValidationError:
      description: Validation Error
      content:
        application/json:
          schema:
            properties:
              message:
                description: A message explaining what went wrong
                type: string
            type: object
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            properties:
              message:
                description: A message explaining what went wrong
                type: string
            type: object
  securitySchemes:
    bearer:
      description: Bearer Authorization
      in: header
      name: bearer
      scheme: bearer
      type: http
    basic:
      description: Where `username` and `password` are api `key` and `secret`
      in: header
      name: basic
      scheme: basic
      type: http
externalDocs:
  description: Full API Documentation
  url: https://developer.vidgrid.com