VidGrid Caption API
The Caption API allows you to request and manage closed captioning on your Videos.
The Caption API allows you to request and manage closed captioning on your Videos.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/vidgrid-caption-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: VidGrid API Reference Caption API
description: Welcome to the VidGrid [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) API!<br/><br/>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.<br/><br/>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'
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'
/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'
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:
ValidationError:
description: Validation 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
NoContent:
description: No Content
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
InternalServerError:
description: Internal Server Error
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
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