Frame.io Collections API

Manage Collections and related operations.

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/frameio-collections-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 email required.

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

OpenAPI Specification

frameio-collections-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: 'For more information, see: <a href="https://developer.adobe.com/frameio">https://developer.adobe.com/frameio</a>'
  license:
    name: Adobe
    url: https://www.adobe.com/legal/terms.html
  title: Frame.io Account Permissions Collections API
  version: v4.0
servers:
- url: https://api.frame.io
  variables: {}
security:
- OAuth2: []
- bearer: []
tags:
- description: Manage Collections and related operations.
  name: Collections
paths:
  /v4/accounts/{account_id}/projects/{project_id}/collections:
    get:
      callbacks: {}
      description: 'List collections for a project. <br/>Rate Limits: 100 calls per 1.00 minute(s) per account_user'
      operationId: collections.index
      parameters:
      - description: ''
        example: ab98158e-d53c-46c8-b1e8-ba4cf5573a96
        in: path
        name: account_id
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      - description: ''
        example: 539ef89d-5f91-4750-a9f6-2dc66f5150d5
        in: path
        name: project_id
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      - description: ''
        in: query
        name: include
        required: false
        schema:
          $ref: '#/components/schemas/CollectionInclude'
      - description: 'Opaque Cursor query param for requests returning paginated results.

          <br/>

          NOTE: this value is auto-generated and included as part of links from a previous response. It is not intended to be human readable.

          '
        in: query
        name: after
        required: false
        schema:
          $ref: '#/components/schemas/RequestAfterOpaqueCursor'
      - description: ''
        in: query
        name: page_size
        required: false
        schema:
          $ref: '#/components/schemas/RequestPageSize'
      - description: ''
        in: query
        name: include_total_count
        required: false
        schema:
          $ref: '#/components/schemas/IncludeTotalCount'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionsResponse'
          description: OK
          headers:
            x-ratelimit-limit:
              description: Rate limit
              example: 100
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-remaining:
              description: Rate limit remaining
              example: 99
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-window:
              description: Rate limit window in milliseconds
              example: 60000
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
          description: Bad request
          headers:
            x-ratelimit-limit:
              description: Rate limit
              example: 100
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-remaining:
              description: Rate limit remaining
              example: 99
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-window:
              description: Rate limit window in milliseconds
              example: 60000
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
          description: Unauthorized
          headers:
            x-ratelimit-limit:
              description: Rate limit
              example: 100
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-remaining:
              description: Rate limit remaining
              example: 99
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-window:
              description: Rate limit window in milliseconds
              example: 60000
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
          description: Forbidden
          headers:
            x-ratelimit-limit:
              description: Rate limit
              example: 100
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-remaining:
              description: Rate limit remaining
              example: 99
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-window:
              description: Rate limit window in milliseconds
              example: 60000
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
          description: Not found
          headers:
            x-ratelimit-limit:
              description: Rate limit
              example: 100
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-remaining:
              description: Rate limit remaining
              example: 99
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-window:
              description: Rate limit window in milliseconds
              example: 60000
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
          description: Conflict
          headers:
            x-ratelimit-limit:
              description: Rate limit
              example: 100
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-remaining:
              description: Rate limit remaining
              example: 99
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-window:
              description: Rate limit window in milliseconds
              example: 60000
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableContent'
          description: Unprocessable content
          headers:
            x-ratelimit-limit:
              description: Rate limit
              example: 100
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-remaining:
              description: Rate limit remaining
              example: 99
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-window:
              description: Rate limit window in milliseconds
              example: 60000
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequests'
          description: Too many requests
          headers:
            x-ratelimit-limit:
              description: Rate limit
              example: 100
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-remaining:
              description: Rate limit remaining
              example: 99
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-window:
              description: Rate limit window in milliseconds
              example: 60000
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
      summary: List collections
      tags:
      - Collections
  /v4/accounts/{account_id}/collections/{collection_id}:
    get:
      callbacks: {}
      description: 'Show collection details. <br/>Rate Limits: 100 calls per 1.00 minute(s) per account_user'
      operationId: collections.show
      parameters:
      - description: ''
        example: a5685337-e9f4-4efe-8229-59a9022cd11d
        in: path
        name: account_id
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      - description: ''
        example: ab4e7052-f235-436b-8ada-f7ba7222ae1e
        in: path
        name: collection_id
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      - description: ''
        in: query
        name: include
        required: false
        schema:
          $ref: '#/components/schemas/CollectionInclude'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionResponse'
          description: OK
          headers:
            x-ratelimit-limit:
              description: Rate limit
              example: 100
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-remaining:
              description: Rate limit remaining
              example: 99
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-window:
              description: Rate limit window in milliseconds
              example: 60000
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
          description: Bad request
          headers:
            x-ratelimit-limit:
              description: Rate limit
              example: 100
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-remaining:
              description: Rate limit remaining
              example: 99
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-window:
              description: Rate limit window in milliseconds
              example: 60000
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
          description: Unauthorized
          headers:
            x-ratelimit-limit:
              description: Rate limit
              example: 100
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-remaining:
              description: Rate limit remaining
              example: 99
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-window:
              description: Rate limit window in milliseconds
              example: 60000
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
          description: Forbidden
          headers:
            x-ratelimit-limit:
              description: Rate limit
              example: 100
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-remaining:
              description: Rate limit remaining
              example: 99
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-window:
              description: Rate limit window in milliseconds
              example: 60000
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
          description: Not found
          headers:
            x-ratelimit-limit:
              description: Rate limit
              example: 100
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-remaining:
              description: Rate limit remaining
              example: 99
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-window:
              description: Rate limit window in milliseconds
              example: 60000
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
          description: Conflict
          headers:
            x-ratelimit-limit:
              description: Rate limit
              example: 100
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-remaining:
              description: Rate limit remaining
              example: 99
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-window:
              description: Rate limit window in milliseconds
              example: 60000
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableContent'
          description: Unprocessable content
          headers:
            x-ratelimit-limit:
              description: Rate limit
              example: 100
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-remaining:
              description: Rate limit remaining
              example: 99
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-window:
              description: Rate limit window in milliseconds
              example: 60000
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequests'
          description: Too many requests
          headers:
            x-ratelimit-limit:
              description: Rate limit
              example: 100
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-remaining:
              description: Rate limit remaining
              example: 99
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
            x-ratelimit-window:
              description: Rate limit window in milliseconds
              example: 60000
              required: true
              schema:
                format: int32
                minimum: 0
                type: integer
              style: simple
      summary: Show collection
      tags:
      - Collections
components:
  schemas:
    UnprocessableContent:
      example:
        errors:
        - detail: Unprocessable content
      properties:
        errors:
          items:
            additionalProperties: false
            properties:
              detail:
                type: string
              source:
                properties:
                  pointer:
                    type: string
                type: object
              title:
                type: string
            required:
            - detail
            type: object
          type: array
      required:
      - errors
      title: UnprocessableContent
      type: object
    Unauthorized:
      example:
        errors:
        - detail: Unauthorized
      properties:
        errors:
          items:
            additionalProperties: false
            properties:
              detail:
                type: string
              source:
                properties:
                  pointer:
                    type: string
                type: object
              title:
                type: string
            required:
            - detail
            type: object
          type: array
      required:
      - errors
      title: Unauthorized
      type: object
    NotFound:
      example:
        errors:
        - detail: Not found
      properties:
        errors:
          items:
            additionalProperties: false
            properties:
              detail:
                type: string
              source:
                properties:
                  pointer:
                    type: string
                type: object
              title:
                type: string
            required:
            - detail
            type: object
          type: array
      required:
      - errors
      title: NotFound
      type: object
    RequestPageSize:
      default: 50
      description: Page size query param for requests
      example: 10
      format: int32
      maximum: 100
      minimum: 1
      title: RequestPageSize
      type: integer
    BadRequest:
      example:
        errors:
        - detail: Bad request
      properties:
        errors:
          items:
            additionalProperties: false
            properties:
              detail:
                type: string
              source:
                properties:
                  pointer:
                    type: string
                type: object
              title:
                type: string
            required:
            - detail
            type: object
          type: array
      required:
      - errors
      title: BadRequest
      type: object
    IncludeTotalCount:
      default: false
      description: Page query param to include the count of all entities
      example: false
      title: IncludeTotalCount
      type: boolean
    Project:
      description: Frame.io Project
      example:
        adobe_id: urn:aaid:sc:US:9f4e4d7a-4b6b-4c4f-9f00-b31a91cfc6f3
        created_at: '2024-01-25T19:18:29.614189Z'
        id: 18d9023a-6b06-4417-b3f4-bf87865c183f
        name: My Project
        restricted: false
        root_folder_id: 69110a93-de02-4e87-be46-28fa89c577a1
        status: active
        storage: 15000
        updated_at: '2024-02-07T16:44:41.986478Z'
        view_url: https://next.frame.io/project/d5e6011c-2bc9-4596-be05-77d562627112/
        workspace_id: a4759365-dc55-4c1d-8369-ea8244b76ae6
      properties:
        adobe_id:
          description: Adobe cloud storage directory ID associated with the project, when available.
          nullable: true
          type: string
        created_at:
          description: Created Timestamp
          format: date-time
          type: string
        id:
          description: Project ID
          format: uuid
          type: string
        name:
          description: Project Name
          type: string
        restricted:
          description: Whether the project is restricted or not
          type: boolean
        root_folder_id:
          description: Root Folder ID
          format: uuid
          type: string
        status:
          description: Project Status
          enum:
          - active
          - inactive
          type: string
        storage:
          default: 0
          description: Storage Usage
          type: integer
        updated_at:
          description: Updated Timestamp
          format: date-time
          type: string
        view_url:
          description: URL to view the project in the Frame.io web application
          type: string
        workspace_id:
          description: Workspace ID
          format: uuid
          type: string
      required:
      - id
      - name
      - status
      - storage
      - workspace_id
      - root_folder_id
      - created_at
      - updated_at
      - view_url
      title: Project
      type: object
    TooManyRequests:
      example:
        errors:
        - detail: Too many requests
      properties:
        errors:
          items:
            additionalProperties: false
            properties:
              detail:
                type: string
              source:
                properties:
                  pointer:
                    type: string
                type: object
              title:
                type: string
            required:
            - detail
            type: object
          type: array
      required:
      - errors
      title: TooManyRequests
      type: object
    Share:
      example:
        access: public
        collection_id: 28dd260d-dead-4dd9-a149-e1c6175080f6
        commenting_enabled: true
        created_at: '2024-02-02T21:19:24.828948Z'
        description: Description of share
        downloading_enabled: true
        enabled: true
        expiration: '2026-07-17T22:34:21.758403Z'
        id: f82d1488-3ee2-4573-aa7c-c727e6266080
        last_viewed_at: '2024-03-02T21:19:24.828948Z'
        name: Test Share
        passphrase: as!dfj39sd(*
        short_url: https://f.io/GGa9wPw5
        updated_at: '2024-02-02T21:19:24.828948Z'
      properties:
        access:
          enum:
          - public
          - secure
          type: string
        collection_id:
          description: Collection ID
          format: uuid
          type: string
        commenting_enabled:
          description: Whether commenting is enabled on the share
          type: boolean
        created_at:
          description: Creation timestamp
          format: date-time
          type: string
        description:
          description: Share description
          nullable: true
          type: string
        downloading_enabled:
          description: Whether downloading is enabled on the share
          type: boolean
        enabled:
          description: Whether the share link is active
          type: boolean
        expiration:
          description: Expiration timestamp
          format: date-time
          nullable: true
          type: string
        id:
          description: Share ID
          format: uuid
          type: string
        last_viewed_at:
          description: Last viewed timestamp
          format: date-time
          nullable: true
          type: string
        name:
          description: Share name
          nullable: true
          type: string
        passphrase:
          description: Passphrase to access share, if passphrase is required and not given it will be generated
          maxLength: 255
          nullable: true
          type: string
        short_url:
          description: Share URL
          nullable: true
          type: string
        updated_at:
          description: Update timestamp
          format: date-time
          type: string
      required:
      - id
      - name
      - description
      - collection_id
      - short_url
      - access
      - enabled
      - commenting_enabled
      - downloading_enabled
      - expiration
      - last_viewed_at
      - created_at
      - updated_at
      title: Share
      type: object
    RequestAfterOpaqueCursor:
      description: 'Opaque Cursor query param for requests returning paginated results.

        <br/>

        NOTE: this value is auto-generated and included as part of links from a previous response. It is not intended to be human readable.

        '
      example: <opaque_cursor>
      nullable: true
      title: RequestAfterOpaqueCursor
      type: string
    CollectionsResponse:
      example:
        data:
        - aggregation_mode: dynamic
          auto_generated: false
          created_at: '2024-02-02T21:19:24.828948Z'
          description: Description of collection
          id: b1d974ae-0a97-43d2-9851-4b0a35618c02
          name: Test Collection
          private: false
          project_id: 9e0e8394-0236-48b4-8d5c-a57cea716f5a
          root_folder_id: fa0ae62d-6692-410d-87b1-78abf8821789
          updated_at: '2024-02-02T21:19:24.828948Z'
        - aggregation_mode: dynamic
          auto_generated: false
          created_at: '2024-02-02T21:19:24.828948Z'
          creator:
            active: true
            avatar_url: https://assets.frame.io/uploads/cd58cb8e-24b3-4448-8d0f-9532fcd04d11/original.png?response-content-disposition=attachment%3B+filename%3D%22foo.png&Expires=1729857600&Signature=L09h0pi82dCrMYjr9lMHBragByWYh1&Key-Pair-Id=KKI497NESTHMN
            email: user_email@example.com
            id: 196C1A5666BF4EB00A49411B@176719f5667c82b4494214.e
            name: Jon Doe
          description: Description of collection
          id: b1d974ae-0a97-43d2-9851-4b0a35618c02
          name: Test Collection
          private: false
          project:
            adobe_id: urn:aaid:sc:US:9f4e4d7a-4b6b-4c4f-9f00-b31a91cfc6f3
            created_at: '2024-01-25T19:18:29.614189Z'
            id: 18d9023a-6b06-4417-b3f4-bf87865c183f
            name: My Project
            restricted: false
            root_folder_id: 69110a93-de02-4e87-be46-28fa89c577a1
            status: active
            storage: 15000
            updated_at: '2024-02-07T16:44:41.986478Z'
            view_url: https://next.frame.io/project/d5e6011c-2bc9-4596-be05-77d562627112/
            workspace_id: a4759365-dc55-4c1d-8369-ea8244b76ae6
          project_id: 9e0e8394-0236-48b4-8d5c-a57cea716f5a
          root_folder_id: fa0ae62d-6692-410d-87b1-78abf8821789
          shares:
          - access: public
            collection_id: 28dd260d-dead-4dd9-a149-e1c6175080f6
            commenting_enabled: true
            created_at: '2024-02-02T21:19:24.828948Z'
            description: Description of share
            downloading_enabled: true
            enabled: true
            expiration: '2026-07-17T22:34:21.758403Z'
            id: f82d1488-3ee2-4573-aa7c-c727e6266080
            last_viewed_at: '2024-03-02T21:19:24.828948Z'
            name: Test Share
            passphrase: as!dfj39sd(*
            short_url: https://f.io/GGa9wPw5
            updated_at: '2024-02-02T21:19:24.828948Z'
          updated_at: '2024-02-02T21:19:24.828948Z'
        links:
          next: /v4/accounts/123/projects/123/collections
        total_count: 10
      properties:
        data:
          description: Collections
          items:
            $ref: '#/components/schemas/Collection'
          type: array
        links:
          $ref: '#/components/schemas/Links'
        total_count:
          description: Total count
          nullable: true
          type: integer
      required:
      - data
      - links
      title: CollectionsResponse
      type: object
    Links:
      additionalProperties: false
      description: Links to paginated data
      example:
        next: /v4/accounts/1234/workspaces/5678/projects?after=g3QAAAACZAACaWRtAAAAJGFiMmNiY2QzLWFkODQtNDQwMC05YTRkLWE1ZDRkMGE4ZTIxM2QABG5hbWVtAAAACVByb2plY3QgMg==
      properties:
        next:
          description: '"Link to next page of data.

            <br/>

            This link is the request path with the addition of the `after` query parameter to fetch the next page of results.

            Optional query parameters `page_size` and `include_total_count` are supported when paginating data."

            '
          nullable: true
          type: string
      required:
      - next
      title: Links
      type: object
    UUID:
      description: A UUID string that uniquely identifies a Frame.io entity.
      example: b2702c44-c6da-4bb6-8bbd-be6e547ccf1b
      format: uuid
      title: UUID
      type: string
    Collection:
      example:
        aggregation_mode: dynamic
        auto_generated: false
        created_at: '2024-02-02T21:19:24.828948Z'
        description: Description of collection
        id: b1d974ae-0a97-43d2-9851-4b0a35618c02
        name: Test Collection
        private: false
        project_id: 9e0e8394-0236-48b4-8d5c-a57cea716f5a
        root_folder_id: fa0ae62d-6692-410d-87b1-78abf8821789
        updated_at: '2024-02-02T21:19:24.828948Z'
      properties:
        aggregation_mode:
          enum:
          - static
          - dynamic
          type: string
        auto_generated:
          type: boolean
        created_at:
          description: Creation timestamp
          format: date-time
          type: string
        creator:
          $ref: '#/components/schemas/User'
        description:
          description

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