Wistia Folders API

The Folders API from Wistia — 3 operation(s) for folders.

Operations 6

GET /folders List Folders
POST /folders Create Folder
GET /folders/{id} Show Folder
PUT /folders/{id} Update Folder
DELETE /folders/{id} Delete Folder
POST /folders/{id}/copy Copy Folder

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/wistia-folders-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

wistia-folders-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Wistia Folders API
  version: '1.0'
  description: 'Operations tagged Folders across 3 of this provider''s published API definitions: wistia-data-api-2026-01-openapi.yml, wistia-data-api-modern-edge-openapi.yml, wistia-folders-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
  description: Wistia Data API production server
tags:
- name: Folders
  x-displayName: Folders
paths:
  /folders:
    get:
      summary: List Folders
      description: 'Lists folders (previously called projects) belonging to the account.


        <!--- HIDE-MCP -->

        ## Requires api token with one of the following permissions

        ```

        Read all folder and media 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
          - mediaCount
          - id
      - name: sort_direction
        in: query
        description: Ordering Sort Direction (0 = desc, 1 = asc; default is 1)
        required: false
        schema:
          type: integer
          enum:
          - 0
          - 1
      - name: hashed_ids[]
        in: query
        description: A collection of hashed ids belonging to folders to fetch
        required: false
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: A list of folders
          content:
            application/json:
              schema:
                type: array
                items:
                  unevaluatedProperties: false
                  type: object
                  description: 'A folder (previously called a project) is a container in which to organize media into. It can be

                    used to set permissions that apply to all the media in the folder as well as

                    organizing media into subfolders (previously called media groups).

                    '
                  properties:
                    personal_library:
                      description: 'Whether this folder is someone''s personal library ("My Library"). Unlike `kind`, this is a property of the folder itself and does not depend on who is requesting — it is `true` for a personal library even when that library has been shared with you (where `kind` would read `shared`). Use this, not `kind`, to tell whether a folder is a personal library.

                        '
                      type: boolean
                      examples:
                      - false
                    kind:
                      description: 'Indicates the folder''s access scope, relative to the requesting user. One of:

                        - `library`: a library the requester owns. Libraries can still be shared with specific contacts or contact groups; the only restriction is that they cannot be shared with the whole account.

                        - `shared`: a folder the requester has access to via a Contact or ContactGroup sharing — this includes both shared folders and another contact''s library that the requester has been granted access to.

                        - `account`: a folder shared with the whole account (everyone in the company can see it).

                        '
                      type: string
                      enum:
                      - library
                      - shared
                      - account
                      examples:
                      - shared
                    id:
                      description: A unique numeric identifier for the folder within the system.
                      type: integer
                      examples:
                      - 22570
                    name:
                      description: The folder’s display name.
                      type: string
                      examples:
                      - My Folder Title
                    description:
                      description: The folder’s description.
                      type:
                      - string
                      - 'null'
                      examples:
                      - About My Folder
                    media_count:
                      description: The number of different medias that have been uploaded to the folder.
                      type: integer
                      examples:
                      - 2
                    medias:
                      description: A link to where you can fetch the medias for this folder.
                      type: object
                      properties:
                        protected:
                          description: Whether the media is protected (e.g. requires a password or other authentication to view). Null if the media is not protected.
                          type:
                          - boolean
                          - 'null'
                        id:
                          description: A unique numeric identifier for the media within the system.
                          type: integer
                        name:
                          description: The display name of the media.
                          type: string
                        type:
                          description: A string representing what type of media this is.
                          type: string
                          enum:
                          - Video
                          - Audio
                          - Image
                          - PdfDocument
                          - MicrosoftOfficeDocument
                          - Swf
                          - UnknownType
                        archived:
                          description: Whether or not the media is archived, either true or false.
                          type: boolean
                        created:
                          description: The date when the media was originally uploaded.
                          type: string
                          format: date-time
                        updated:
                          description: The date when the media was last changed.
                          type: string
                          format: date-time
                        duration:
                          unevaluatedProperties: false
                          description: Specifies the length (in seconds) for audio and video files. Specifies number of pages in the document. Omitted for other types of media.
                          oneOf:
                          - type: number
                          - type: 'null'
                        embedCode:
                          description: 'DEPRECATED: If you want to programmatically embed videos, follow the construct an embed code guide.

                            '
                          type: string
                          deprecated: true
                        hashed_id:
                          description: A unique alphanumeric identifier for this media.
                          type: string
                        description:
                          description: A description for the media which usually appears near the top of the sidebar on the media's page.
                          type: string
                        progress:
                          description: A floating point value between 0 and 1 that indicates the progress of the processing for this file.
                          type: number
                          maximum: 1
                          minimum: 0
                        status:
                          description: 'Post upload processing status. - `queued`: the file is waiting in the queue to be processed. - `processing`: the file is actively being processed. - `ready`: the file has been fully processed and is ready for embedding and viewing. - `failed`: the file was unable to be processed (usually a format or size error).

                            '
                          type: string
                          enum:
                          - queued
                          - processing
                          - ready
                          - failed
                        section:
                          unevaluatedProperties: false
                          description: The title of the section in which the media appears. This attribute is omitted if the media is not in a section (default).
                          oneOf:
                          - type: string
                          - type: 'null'
                        thumbnail:
                          unevaluatedProperties: false
                          type: object
                          properties:
                            url:
                              type: string
                            width:
                              type: integer
                            height:
                              type: integer
                    created:
                      description: The date that the folder was originally created.
                      type: string
                      format: date-time
                      examples:
                      - '2010-08-13T18:47:39+00:00'
                    updated:
                      description: The date that the folder was last updated.
                      type: string
                      format: date-time
                      examples:
                      - '2010-08-19T21:47:00+00:00'
                    hashed_id:
                      description: A private hashed id, uniquely identifying the folder within the system.
                      type: string
                      examples:
                      - 4d23503f70
                    public:
                      description: A boolean indicating whether the folder is available for public (anonymous) viewing.
                      type: boolean
                      examples:
                      - false
                    public_id:
                      description: If the folder is public, this field contains a string representing the ID used for referencing the folder in public URLs.
                      type:
                      - string
                      - 'null'
                      examples:
                      - 4bD
                    anonymous_can_upload:
                      type: boolean
                      examples:
                      - false
                    anonymous_can_download:
                      type: boolean
                      examples:
                      - false
                    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'
                  required:
                  - id
                  - name
                  - media_count
                  - created
                  - updated
                  - hashed_id
                  - public
                  - public_id
                  - medias
        '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:
      - Folders
      security:
      - BearerAuth: []
    post:
      summary: Create Folder
      description: 'Creates a new folder (previously called project). If the folder is created successfully the Location HTTP header will point to the new folder.


        <!--- HIDE-MCP -->

        ## Requires api token with one of the following permissions

        ```

        Read, update & delete anything

        ```

        <!--- /HIDE-MCP -->

        '
      requestBody:
        content:
          application/json:
            schema:
              unevaluatedProperties: false
              type: object
              properties:
                name:
                  description: The name of the folder you want to create.
                  type: string
                  examples:
                  - My New Folder
                adminEmail:
                  description: The email address of the person you want to set as the owner of this folder. Defaults to the Wistia Account Owner.
                  type: string
                  examples:
                  - admin@example.com
                public:
                  unevaluatedProperties: false
                  x-wistia-mcp-type: boolean
                  oneOf:
                  - type: string
                    description: A flag indicating whether or not the folder is enabled for public access. Set to “1” to enable and “0” to disable.
                    enum:
                    - '0'
                    - '1'
                  - type: boolean
                    description: A flag indicating whether or not the folder is enabled for public access. Set to `true` to enable and `false` to disable.
                    examples:
                    - false
      responses:
        '201':
          description: Folder created
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                description: 'A folder (previously called a project) is a container in which to organize media into. It can be

                  used to set permissions that apply to all the media in the folder as well as

                  organizing media into subfolders (previously called media groups).

                  '
                properties:
                  personal_library:
                    description: 'Whether this folder is someone''s personal library ("My Library"). Unlike `kind`, this is a property of the folder itself and does not depend on who is requesting — it is `true` for a personal library even when that library has been shared with you (where `kind` would read `shared`). Use this, not `kind`, to tell whether a folder is a personal library.

                      '
                    type: boolean
                    examples:
                    - false
                  kind:
                    description: 'Indicates the folder''s access scope, relative to the requesting user. One of:

                      - `library`: a library the requester owns. Libraries can still be shared with specific contacts or contact groups; the only restriction is that they cannot be shared with the whole account.

                      - `shared`: a folder the requester has access to via a Contact or ContactGroup sharing — this includes both shared folders and another contact''s library that the requester has been granted access to.

                      - `account`: a folder shared with the whole account (everyone in the company can see it).

                      '
                    type: string
                    enum:
                    - library
                    - shared
                    - account
                    examples:
                    - shared
                  id:
                    description: A unique numeric identifier for the folder within the system.
                    type: integer
                    examples:
                    - 22570
                  name:
                    description: The folder’s display name.
                    type: string
                    examples:
                    - My Folder Title
                  description:
                    description: The folder’s description.
                    type:
                    - string
                    - 'null'
                    examples:
                    - About My Folder
                  media_count:
                    description: The number of different medias that have been uploaded to the folder.
                    type: integer
                    examples:
                    - 2
                  medias:
                    description: A link to where you can fetch the medias for this folder.
                    type: object
                    properties:
                      protected:
                        description: Whether the media is protected (e.g. requires a password or other authentication to view). Null if the media is not protected.
                        type:
                        - boolean
                        - 'null'
                      id:
                        description: A unique numeric identifier for the media within the system.
                        type: integer
                      name:
                        description: The display name of the media.
                        type: string
                      type:
                        description: A string representing what type of media this is.
                        type: string
                        enum:
                        - Video
                        - Audio
                        - Image
                        - PdfDocument
                        - MicrosoftOfficeDocument
                        - Swf
                        - UnknownType
                      archived:
                        description: Whether or not the media is archived, either true or false.
                        type: boolean
                      created:
                        description: The date when the media was originally uploaded.
                        type: string
                        format: date-time
                      updated:
                        description: The date when the media was last changed.
                        type: string
                        format: date-time
                      duration:
                        unevaluatedProperties: false
                        description: Specifies the length (in seconds) for audio and video files. Specifies number of pages in the document. Omitted for other types of media.
                        oneOf:
                        - type: number
                        - type: 'null'
                      embedCode:
                        description: 'DEPRECATED: If you want to programmatically embed videos, follow the construct an embed code guide.

                          '
                        type: string
                        deprecated: true
                      hashed_id:
                        description: A unique alphanumeric identifier for this media.
                        type: string
                      description:
                        description: A description for the media which usually appears near the top of the sidebar on the media's page.
                        type: string
                      progress:
                        description: A floating point value between 0 and 1 that indicates the progress of the processing for this file.
                        type: number
                        maximum: 1
                        minimum: 0
                      status:
                        description: 'Post upload processing status. - `queued`: the file is waiting in the queue to be processed. - `processing`: the file is actively being processed. - `ready`: the file has been fully processed and is ready for embedding and viewing. - `failed`: the file was unable to be processed (usually a format or size error).

                          '
                        type: string
                        enum:
                        - queued
                        - processing
                        - ready
                        - failed
                      section:
                        unevaluatedProperties: false
                        description: The title of the section in which the media appears. This attribute is omitted if the media is not in a section (default).
                        oneOf:
                        - type: string
                        - type: 'null'
                      thumbnail:
                        unevaluatedProperties: false
                        type: object
                        properties:
                          url:
                            type: string
                          width:
                            type: integer
                          height:
                            type: integer
                  created:
                    description: The date that the folder was originally created.
                    type: string
                    format: date-time
                    examples:
                    - '2010-08-13T18:47:39+00:00'
                  updated:
                    description: The date that the folder was last updated.
                    type: string
                    format: date-time
                    examples:
                    - '2010-08-19T21:47:00+00:00'
                  hashed_id:
                    description: A private hashed id, uniquely identifying the folder within the system.
                    type: string
                    examples:
                    - 4d23503f70
                  public:
                    description: A boolean indicating whether the folder is available for public (anonymous) viewing.
                    type: boolean
                    examples:
                    - false
                  public_id:
                    description: If the folder is public, this field contains a string representing the ID used for referencing the folder in public URLs.
                    type:
                    - string
                    - 'null'
                    examples:
                    - 4bD
                  anonymous_can_upload:
                    type: boolean
                    examples:
                    - false
                  anonymous_can_download:
                    type: boolean
                    examples:
                    - false
                  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'
                required:
                - id
                - name
                - media_count
                - created
                - updated
                - hashed_id
                - public
                - public_id
                - medias
        '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:
      - Folders
      security:
      - BearerAuth: []
    servers:
    - url: https://api.wistia.com/modern
  /folders/{id}:
    get:
      summary: Show Folder
      description: 'Retrieves a single folder (previously called project).


        <!--- HIDE-MCP -->

        ## Requires api token with one of the following permissions

        ```

        Read all folder and media data

        ```

        <!--- /HIDE-MCP -->

        '
      parameters:
      - name: id
        in: path
        description: Folder Hashed ID
        required: true
        schema:
          description: Hashed ID of the folder (e.g., "4d23503f70")
          type: string
      responses:
        '200':
          description: A single folder
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                description: 'A folder (previously called a project) is a container in which to organize media into. It can be

                  used to set permissions that apply to all the media in the folder as well as

                  organizing media into subfolders (previously called media groups).

                  '
                properties:
                  personal_library:
                    description: 'Whether this folder is someone''s personal library ("My Library"). Unlike `kind`, this is a property of the folder itself and does not depend on who is requesting — it is `true` for a personal library even when that library has been shared with you (where `kind` would read `shared`). Use this, not `kind`, to tell whether a folder is a personal library.

                      '
                    type: boolean
                    examples:
                    - false
                  kind:
                    description: 'Indicates the folder''s access scope, relative to the requesting user. One of:

                      - `library`: a library the requester owns. Libraries can still be shared with specific contacts or contact groups; the only restriction is that they cannot be shared with the whole account.

                      - `shared`: a folder the requester has access to via a Contact or ContactGroup sharing — this includes both shared folders and another contact''s library that the requester has been granted access to.

                      - `account`: a folder shared with the whole account (everyone in the company can see it).

                      '
                    type: string
                    enum:
                    - library
                    - shared
                    - account
                    examples:
                    - shared
                  id:
                    description: A unique numeric identifier for the folder within the system.
                    type: integer
                    examples:
                    - 22570
                  name:
                    description: The folder’s display name.
                    type: string
                    examples:
                    - My Folder Title
                  description:
                    description: The folder’s description.
                    type:
                    - string
                    - 'null'
                    examples:
                    - About My Folder
                  media_count:
                    description: The number of different medias that have been uploaded to the folder.
                    type: integer
                    examples:
                    - 2
                  medias:
                    description: A link to where you can fetch the medias for this folder.
                    type: object
                    properties:
                      protected:
                        description: Whether the media is protected (e.g. requires a password or other authentication to view). Null if the media is not protected.
                        type:
                        - boolean
                        - 'null'
                      id:
                        description: A unique numeric identifier for the media within the system.
                        type: integer
                      name:
                        description: The display name of the me

# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wistia/refs/heads/main/openapi/wistia-folders-api-openapi.yml