Wistia Tags API
The Tags API from Wistia — 3 operation(s) for tags.
The Tags API from Wistia — 3 operation(s) for tags.
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/wistia-tags-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: Wistia Tags API
version: '1.0'
description: 'Operations tagged Tags across 4 of this provider''s published API definitions: wistia-data-api-2026-01-openapi.yml, wistia-data-api-modern-edge-openapi.yml, wistia-data-api-v1-openapi.yml, wistia-tags-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.wistia.com/modern
- url: https://api.wistia.com/v1
tags:
- name: Tags
x-displayName: Tags
paths:
/tags:
get:
summary: List Tags
description: 'Lists tags belonging to the account.
<!--- HIDE-MCP -->
## Requires api token with one of the following permissions
```
Read all data
```
<!--- /HIDE-MCP -->
'
parameters:
- name: page
in: query
description: 'The page number to retrieve. This cannot be combined with `cursor`,
pagination.
'
required: false
schema:
type: integer
- name: per_page
in: query
description: The number of medias per page. Use this for both offset pagination and cursor pagination.
required: false
schema:
type: integer
- name: cursor
in: query
description: 'If `cursor[enabled]` is set to 1 than cursor pagination is enabled and the
first set of records are fetched up to the `per_page`. Cursor
pagination will also be turned on if `cursor[before]` or `cursor[after]`
are set. Records returned will have a `cursor` property set which can be used to fetch more records in the same `sort_by` ordering.
The cursor value of the last record can be used to fetch records after the current result set and
the cursor of the first record can be used to fetch records before the result set.
NOTE: a cursor value is only valid if the `sort_by` value hasn''t changed from the
last fetch. For example, you cannot fetch using `sort_by` id and than pass that
cursor value to a `sort_by` name.
'
required: false
schema:
unevaluatedProperties: false
type: object
properties:
enabled:
description: 'If `cursor[enabled]` is set to 1, the first result set will be fetched with cursor pagination enabled. This
values is ignored if `cursor[before]` or `cursor[after]` are set.
'
type: integer
enum:
- 0
- 1
before:
description: 'If `cursor[before]` is set than cursor pagination is enabled and all records
before the cursor up to the `per_page` are returned. This feature is useful for
fetching "new records", for example, in a "pull to refersh" feature when showing records in a descending
order.
'
type: string
after:
description: 'If `cursor[after]` is set than cursor pagination is enabled and all records
after the cursor up to the `per_page` are returned.
'
type: string
style: deepObject
- name: sort_by
in: query
description: 'Ordering. When using cursor pagination (see cursor param),
only `id`, `updated` and `created` are supported. All other sort_by options
require offset pagination.
'
required: false
schema:
type: string
enum:
- name
- created
- updated
- taggingsCount
- name: sort_direction
in: query
description: Ordering Sort Direction (0 = desc, 1 = asc)
required: false
schema:
type: integer
enum:
- 0
- 1
responses:
'200':
description: A list of tags
content:
application/json:
schema:
type: array
items:
unevaluatedProperties: false
type: object
description: 'A tag is used to tag related media. You can then filter media
by a specific tag.
'
properties:
updated_at:
description: The date that the tag was last updated.
type: string
format: date-time
examples:
- '2010-08-19T21:47:00+00:00'
created_at:
description: The date that the tag was originally created.
type: string
format: date-time
examples:
- '2010-08-13T18:47:39+00:00'
taggings_count:
description: The number of different medias that have been associated with this tag.
type: integer
examples:
- 2
name:
description: The tag's display name.
type: string
examples:
- My tag Title
taggingsCount:
description: The number of different medias that have been associated with this tag.
type: integer
examples:
- 2
created:
description: The date that the tag was originally created.
type: string
format: date-time
examples:
- '2010-08-13T18:47:39+00:00'
updated:
description: The date that the tag was last updated.
type: string
format: date-time
examples:
- '2010-08-19T21:47:00+00:00'
cursor:
description: A cursor for stable pagination based on current `sort_by` order. You can pass this to `cursor[before]` or `cursor[after]` as a parameter to fetch the records before or after this record in the same sort order. This is only populated if records were fetched with `cursor[enabled]`, or `cursor[before]` or `cursor[after]`.
type:
- string
- 'null'
'400':
description: Bad request
content:
application/json:
schema:
unevaluatedProperties: false
type: object
properties:
error:
description: Error message detailing the reason for the bad request.
type: string
examples:
- Bad request
errors:
description: Array of error messages detailing the reasons for the bad request.
type: array
items:
type: string
'401':
description: Unauthorized, invalid or missing token
content:
application/json:
schema:
unevaluatedProperties: false
type: object
properties:
code:
description: A machine-readable identifier for the specific authorization failure.
type: string
enum:
- unauthorized_credentials
- account_inactive
- unauthorized_scope
- unauthorized_params
error:
type: string
examples:
- Invalid credentials.
'500':
description: Internal server error
content:
application/json:
schema:
unevaluatedProperties: false
type: object
properties:
error:
type: string
examples:
- Internal server error
tags:
- Tags
security:
- BearerAuth: []
post:
summary: Create Tags
description: 'Creates a new tag.
<!--- HIDE-MCP -->
## Requires api token with one of the following permissions
```
Read, update & delete anything
```
<!--- /HIDE-MCP -->
'
requestBody:
required: true
content:
application/json:
schema:
unevaluatedProperties: false
type: object
properties:
name:
type: string
required:
- name
responses:
'200':
description: Tag created successfully
content:
application/json:
schema:
unevaluatedProperties: false
type: object
description: 'A tag is used to tag related media. You can then filter media
by a specific tag.
'
properties:
updated_at:
description: The date that the tag was last updated.
type: string
format: date-time
examples:
- '2010-08-19T21:47:00+00:00'
created_at:
description: The date that the tag was originally created.
type: string
format: date-time
examples:
- '2010-08-13T18:47:39+00:00'
taggings_count:
description: The number of different medias that have been associated with this tag.
type: integer
examples:
- 2
name:
description: The tag's display name.
type: string
examples:
- My tag Title
taggingsCount:
description: The number of different medias that have been associated with this tag.
type: integer
examples:
- 2
created:
description: The date that the tag was originally created.
type: string
format: date-time
examples:
- '2010-08-13T18:47:39+00:00'
updated:
description: The date that the tag was last updated.
type: string
format: date-time
examples:
- '2010-08-19T21:47:00+00:00'
cursor:
description: A cursor for stable pagination based on current `sort_by` order. You can pass this to `cursor[before]` or `cursor[after]` as a parameter to fetch the records before or after this record in the same sort order. This is only populated if records were fetched with `cursor[enabled]`, or `cursor[before]` or `cursor[after]`.
type:
- string
- 'null'
'400':
description: Bad request - missing or invalid parameters
content:
application/json:
schema:
unevaluatedProperties: false
type: object
properties:
error:
type: string
examples:
- 'param is missing or the value is empty: name'
'401':
description: Unauthorized, invalid or missing token
content:
application/json:
schema:
unevaluatedProperties: false
type: object
properties:
code:
description: A machine-readable identifier for the specific authorization failure.
type: string
enum:
- unauthorized_credentials
- account_inactive
- unauthorized_scope
- unauthorized_params
error:
type: string
examples:
- Invalid credentials.
'422':
description: Validation error - tag already exists
content:
application/json:
schema:
unevaluatedProperties: false
type: object
properties:
error:
type: string
examples:
- 'Validation failed: Name has already been taken'
'500':
description: Internal server error
content:
application/json:
schema:
unevaluatedProperties: false
type: object
properties:
error:
type: string
examples:
- Internal server error
tags:
- Tags
security:
- BearerAuth: []
servers:
- url: https://api.wistia.com/modern
/tags/{name}:
delete:
summary: Delete Tags
description: 'Deletes a tag
<!--- HIDE-MCP -->
## Requires api token with one of the following permissions
```
Read, update & delete anything
```
<!--- /HIDE-MCP -->
'
parameters:
- name: name
in: path
description: Tag ID
required: true
schema:
description: Name of the tag to delete
type: string
responses:
'200':
description: Successful response.
'401':
description: Unauthorized, invalid or missing token
content:
application/json:
schema:
unevaluatedProperties: false
type: object
properties:
code:
description: A machine-readable identifier for the specific authorization failure.
type: string
enum:
- unauthorized_credentials
- account_inactive
- unauthorized_scope
- unauthorized_params
error:
type: string
examples:
- Invalid credentials.
'404':
description: Resource not found
'500':
description: Internal server error
content:
application/json:
schema:
unevaluatedProperties: false
type: object
properties:
error:
type: string
examples:
- Internal server error
tags:
- Tags
security:
- BearerAuth: []
parameters:
- in: path
name: name
required: true
schema:
type: string
servers:
- url: https://api.wistia.com/modern
/taggings/bulk-create:
post:
tags:
- Tags
summary: Bulk tag media
operationId: bulkCreateTaggings
responses:
'201':
description: Created
security:
- bearerAuth: []
- basicAuth: []
servers:
- url: https://api.wistia.com/v1
description: Wistia Data API production server
components:
responses:
404-2:
description: Resource not found
'401':
description: Unauthorized, invalid or missing token
content:
application/json:
schema:
type: object
properties:
error:
type: string
examples:
- Invalid credentials.
'500':
description: Internal server error
content:
application/json:
schema:
type: object
properties:
error:
type: string
examples:
- Internal server error
schemas:
Tag:
type: object
properties:
name:
description: The tag’s display name.
type: string
examples:
- My tag Title
taggingsCount:
description: The number of different medias that have been associated with this tag.
type: integer
examples:
- 2
created:
description: The date that the tag was originally created.
type: string
format: date-time
examples:
- '2010-08-13T18:47:39+00:00'
updated:
description: The date that the tag was last updated.
type: string
format: date-time
examples:
- '2010-08-19T21:47:00+00:00'
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerAuth:
type: http
scheme: bearer
description: API access token sent as a Bearer token in the Authorization header
basicAuth:
type: http
scheme: basic
description: HTTP Basic authentication using the API token as the password
x-refined-from:
- wistia-data-api-2026-01-openapi.yml
- wistia-data-api-modern-edge-openapi.yml
- wistia-data-api-v1-openapi.yml
- wistia-tags-api-openapi.yml