openapi: 3.0.3 info: title: iconik Assets Collections API description: 'iconik is a hybrid cloud media asset management (MAM) platform. Its public API is API-first and organized as versioned REST microservices under https://app.iconik.io/API/{service}/v1/. This document models the core logical APIs an integrator uses most: Assets and Collections (assets microservice), Metadata, Search, Files, and Jobs. Every request is authenticated with two headers - App-ID (application identifier) and Auth-Token (auth token) - generated by an administrator in the iconik web UI under Settings / Application Tokens. Requests and responses are JSON. List responses are paginated and return page metadata (page, pages, total). Endpoints are grounded in iconik''s published API reference; request and response schemas are honestly modeled and simplified where the interactive reference is the authoritative source of the full object shapes.' version: '1.0' contact: name: iconik url: https://www.iconik.io servers: - url: https://app.iconik.io/API description: iconik (US / default region) - url: https://eu.iconik.io/API description: iconik (EU region) security: - appId: [] authToken: [] tags: - name: Collections description: Folder-like grouping of assets and sub-collections. paths: /assets/v1/collections/: get: operationId: listCollections tags: - Collections summary: List collections description: Lists collections in the account, paginated. parameters: - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/PerPage' responses: '200': description: A paginated list of collections. content: application/json: schema: $ref: '#/components/schemas/CollectionList' post: operationId: createCollection tags: - Collections summary: Create a collection description: Creates a new collection. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CollectionCreate' responses: '201': description: The created collection. content: application/json: schema: $ref: '#/components/schemas/Collection' /assets/v1/collections/{collection_id}/: parameters: - $ref: '#/components/parameters/CollectionId' get: operationId: getCollection tags: - Collections summary: Get a collection description: Retrieves a single collection by ID. responses: '200': description: The collection. content: application/json: schema: $ref: '#/components/schemas/Collection' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteCollection tags: - Collections summary: Delete a collection description: Deletes a collection. responses: '204': description: The collection was deleted. /assets/v1/collections/{collection_id}/contents/: parameters: - $ref: '#/components/parameters/CollectionId' get: operationId: getCollectionContents tags: - Collections summary: List collection contents description: Lists the assets and sub-collections contained within a collection, paginated. parameters: - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/PerPage' responses: '200': description: The contents of the collection. content: application/json: schema: type: object properties: objects: type: array items: type: object pages: type: integer total: type: integer components: parameters: Page: name: page in: query required: false description: The page number of results to return. schema: type: integer default: 1 CollectionId: name: collection_id in: path required: true description: The unique ID of the collection. schema: type: string PerPage: name: per_page in: query required: false description: The number of results per page. schema: type: integer default: 10 schemas: Collection: type: object properties: id: type: string title: type: string parent_id: type: string date_created: type: string format: date-time CollectionList: type: object properties: objects: type: array items: $ref: '#/components/schemas/Collection' page: type: integer pages: type: integer total: type: integer CollectionCreate: type: object required: - title properties: title: type: string parent_id: type: string Error: type: object properties: error: type: string errors: type: array items: type: string responses: NotFound: description: The requested object was not found. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: appId: type: apiKey in: header name: App-ID description: The iconik application ID generated in the web UI. authToken: type: apiKey in: header name: Auth-Token description: The iconik auth token paired with the application ID.