openapi: 3.0.3 info: title: iconik Assets Jobs 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: Jobs description: Asynchronous job tracking and orchestration. paths: /jobs/v1/jobs/: get: operationId: listJobs tags: - Jobs summary: List jobs description: Lists jobs, paginated. parameters: - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/PerPage' responses: '200': description: A paginated list of jobs. content: application/json: schema: type: object properties: objects: type: array items: $ref: '#/components/schemas/Job' post: operationId: createJob tags: - Jobs summary: Create a job description: Creates a new job. Requires at least title, type, and status. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/JobCreate' responses: '201': description: The created job. content: application/json: schema: $ref: '#/components/schemas/Job' /jobs/v1/jobs/{job_id}/: parameters: - name: job_id in: path required: true schema: type: string get: operationId: getJob tags: - Jobs summary: Get a job description: Retrieves a single job by ID, including its status and progress. responses: '200': description: The job. content: application/json: schema: $ref: '#/components/schemas/Job' '404': $ref: '#/components/responses/NotFound' patch: operationId: updateJob tags: - Jobs summary: Update a job description: Updates a job, for example to report progress or change status. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/JobCreate' responses: '200': description: The updated job. content: application/json: schema: $ref: '#/components/schemas/Job' delete: operationId: deleteJob tags: - Jobs summary: Delete a job description: Deletes a job. responses: '204': description: The job was deleted. components: parameters: Page: name: page in: query required: false description: The page number of results to return. schema: type: integer default: 1 PerPage: name: per_page in: query required: false description: The number of results per page. schema: type: integer default: 10 schemas: Job: type: object properties: id: type: string title: type: string type: type: string status: type: string description: The job status, e.g. STARTED, IN_PROGRESS, FINISHED, FAILED. progress_processed: type: integer parent_id: type: string date_created: type: string format: date-time JobCreate: type: object required: - title - type - status properties: title: type: string type: type: string status: 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.