VidGrid Token API
The Video Creation Token API allows you to request a token that can be used to record or upload videos into your VidGrid account.
The Video Creation Token API allows you to request a token that can be used to record or upload videos into your VidGrid account.
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-token-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 Token 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: Token
description: The Video Creation Token API allows you to request a token that can be used to record or upload videos into your VidGrid account.
externalDocs:
description: More
url: https://developer.vidgrid.com/docs/v2/#video-creation-token-api
paths:
/vidgrid/v2/tokens:
post:
tags:
- Token
summary: Create token
description: This endpoint generates and returns a Token Resource that can be used for creating videos.
requestBody:
required: true
content:
application/json:
schema:
properties:
type:
description: 'The type of token that will be used. See Token Types for more info. Possible values: `record`, `upload`, `direct_upload`.'
type: string
video:
description: Sets properties on videos created with this token.
properties:
title:
description: Sets the title for the created video. If `recorder.hide_video_title` is set to `false` the end user will have the option to set their own title from within the recorder.
type: string
public:
description: When set to `true`, an uploaded video will be viewable by anyone with a link. If set to `false`, a user must be logged in to your VidGrid account to view the video. If not set, your user or organization default settings will be used.
type: boolean
folder:
description: Automatically add uploaded videos to a folder. This should be set to a folder **identifier**.
type: string
type: object
recorder:
description: Configures recorder behavior when launched via a specific token.
properties:
auto_show_video_page:
description: Whether or not to automatically open the video in the user's browser after recording.
type: boolean
default: false
auto_close_recorder:
description: Whether or not to close the recorder when it is finished uploading the video. If set to `true`, the user will only be able to record one video with this token.
type: boolean
default: false
hide_video_title_input:
description: Whether or not to allow the user to title the video after recording.
type: boolean
default: false
default_fullscreen:
description: Whether or not the recorder should launch in fullscreen mode.
type: boolean
default: false
force_webcam_only:
description: Whether or not the recorder should be restricted to webcam only mode.
type: boolean
default: false
on_install:
properties:
auto_authenticate:
description: Whether or not a user should be automatically authenticated the first time the recorder is launched after install. If set to `false`, the user will need to return to their browser and click record in order to be authenticated.
type: boolean
default: true
show_instructions_page:
description: Whether or not to download the recorder without redirecting to the install recorder page. This happens the first time a use clicks record when using the iframe method.
type: boolean
default: false
type: object
type: object
webhook_extras:
description: Any extra data that you would like to be sent along when Webhook events are fired.
type: array
items: {}
type: object
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
data:
oneOf:
- $ref: '#/components/schemas/RecordTokenResource'
- $ref: '#/components/schemas/UploadTokenResource'
- $ref: '#/components/schemas/DirectUploadTokenResource'
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:
UploadTokenResource:
title: Upload Token Resource
description: The Upload Token Resource returned in a successful response.
required:
- token
- token_key
- expires
- uploader
properties:
token:
description: One-time token that is used for authentication when uploading a video.
type: string
token_key:
description: Public identifier corresponding to the token.
type: string
expires:
description: UNIX Timestamp (UTC) indicating when the temporary token will expire.
type: string
format: timestamp
uploader:
properties:
iframe:
description: Iframe containing a simple upload dropzone.
type: string
iframe_basic:
description: Iframe containing a simple upload button.
type: string
type: object
type: object
RecordTokenResource:
title: Record Token Resource
description: The Record Token Resource returned in a successful response.
required:
- token
- token_key
- expires
- recorder
properties:
token:
description: One-time token that is used for authentication when recording and uploading a video.
type: string
token_key:
description: Public identifier corresponding to the token.
type: string
expires:
description: UNIX Timestamp (UTC) indicating when the temporary token will expire.
type: string
format: timestamp
recorder:
properties:
download_url:
description: URL that can be used to download the recorder.
type: string
format: URL
launch_uri:
description: URI that can be used to launch the recorder.
type: string
format: URI
iframe_button:
description: Iframe containing a record button. It will handle downloading and launching the recorder.
type: string
type: object
type: object
DirectUploadTokenResource:
title: Direct Upload Token Resource
description: The Direct Upload Token Resource returned in a successful response.
required:
- token
- token_key
- expires
- uploader
properties:
token:
description: One-time token that is used for authentication when uploading a video. It is then mainly used for informational purposes.
type: string
token_key:
description: Public identifier corresponding to the token.
type: string
formAttributes:
description: Form attributes necessary for the S3 upload.
properties:
action:
type: string
method:
type: string
enctype:
type: string
type: object
formInputs:
description: 'Key/value pairs necessary for the S3 upload. <i>Important: **formInputs.key** contains a **${filename}** string that needs to be replaced with a unique file name for each file uploaded. This will also be used for the video title in VidGrid unless `video.title` is set in the Create Token request.</i>'
properties:
key:
type: string
acl:
type: string
x-amz-server-side-encryption:
type: string
X-Amz-Credential:
type: string
X-Amz-Algorithm:
type: string
X-Amz-Date:
type: string
X-Amz-Signature:
type: string
Policy:
type: string
type: object
fileParamName:
description: 'The required key name that should contain the file data for uploading. <i>Important: Amazon requires this to be the last key/value pair included in the POST to S3.</i>'
type: string
cloudUploadCallbackUrl:
description: 'URL to `POST` to once a video has finished uploading to S3 and is ready for processing. Returns a video identifier. <i>Important: you need to include `cloudKey` with the request which is the value of `formInputs.key` after **${filename}** has been replaced.</i>'
type: string
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
Forbidden:
description: Forbidden
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
InternalServerError:
description: Internal Server Error
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