openapi: 3.2.0 info: title: Mindtickle Assethub API version: '2026-10-12' description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-12: 10 operation(s) read from 9 public documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract; Mindtickle has published no machine-readable contract that the pipeline could find. Engine: local.' x-evidence-tiers: code-example: 4 documentation: 6 pages-with-code: 2 pages-read: 9 x-generated-from: documentation x-provenance: generated x-authored-by: API Evangelist x-generated: '2026-10-12' x-generator: generate-contract-from-docs.py x-engine: local x-sources: - https://developer.mindtickle.com/docs/call-ai/graphql-api - https://developer.mindtickle.com/docs/call-ai/graphql-api/query-call-data - https://developer.mindtickle.com/docs/call-ai/graphql-api/download-call-recordings - https://developer.mindtickle.com/docs/asset-hub/hubs/manage-user-access-for-restricted-hubs - https://developer.mindtickle.com/docs/content-center - https://developer.mindtickle.com/docs/getting-started - https://developer.mindtickle.com/docs/getting-started.md - https://developer.mindtickle.com/docs/asset-hub/hubs/create-a-hub - https://developer.mindtickle.com/docs/asset-hub/assets/create-assets servers: - url: https://api.mindtickle.com security: - bearer: [] tags: - name: Assethub paths: /api/assethub/v2/assets/async: post: operationId: post_api_assethub_v2_assets_async tags: - Assethub summary: Create assets x-source: https://developer.mindtickle.com/docs/asset-hub/assets/create-assets parameters: - name: Authorization in: header required: true schema: type: string description: Bearer ACCESS_TOKEN - name: Content-Type in: header required: true schema: type: string description: application/json requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostApiAssethubV2AssetsAsyncRequest' responses: '201': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/PostApiAssethubV2AssetsAsyncResponse' x-evidence: kind: documentation /api/assethub/v2/assets/async/{executionId}: get: operationId: get_api_assethub_v2_assets_async_executionId tags: - Assethub summary: Check status x-source: https://developer.mindtickle.com/docs/asset-hub/assets/create-assets parameters: - name: executionId in: path required: true schema: type: string - name: Authorization in: header required: true schema: type: string description: Bearer ACCESS_TOKEN - name: user_id in: query required: true schema: type: string description: User ID for authorization. Must be a valid user ID. - name: limit in: query required: false schema: type: integer description: 'Maximum number of tasks to return. Maximum 100. Default: 0.' - name: skip in: query required: false schema: type: integer description: 'Number of tasks to skip. Default: 0.' responses: '200': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/GetApiAssethubV2AssetsAsyncExecutionidResponse' x-evidence: kind: documentation /api/assethub/v2/hub: post: operationId: post_api_assethub_v2_hub tags: - Assethub summary: Create a hub description: Creates an Asset Hub hub with a name, an access type, and an optional description. x-source: https://developer.mindtickle.com/docs/asset-hub/hubs/create-a-hub parameters: - name: hub_name in: query required: true schema: type: string description: Name of the hub. Maximum 50 characters. Cannot contain / , \ , or . - name: access_type in: query required: true schema: type: string description: Hub access setting. HUB_ACCESS_PUBLIC or HUB_ACCESS_RESTRICTED. - name: description in: query required: false schema: type: string description: Description of the hub. Maximum 1,000 characters, excluding HTML tags. - name: user_id in: query required: true schema: type: string description: ID of the user performing the operation. Must have the HUB_MANAGEMENT permission. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostApiAssethubV2HubRequest' responses: '200': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/PostApiAssethubV2HubResponse' x-evidence: kind: documentation /api/assethub/v2/hub/{hubId}/users/manage: post: operationId: post_api_assethub_v2_hub_hubId_users_manage tags: - Assethub summary: Shares or revokes access to a restricted hub for individual users in a single… description: Shares or revokes access to a restricted hub for individual users in a single request. x-source: https://developer.mindtickle.com/docs/asset-hub/hubs/manage-user-access-for-restricted-hubs parameters: - name: hubId in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostApiAssethubV2HubHubidUsersManageRequest' responses: '200': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/PostApiAssethubV2HubHubidUsersManageResponse' x-evidence: kind: documentation components: schemas: PostApiAssethubV2HubRequest: type: object properties: hub_name: type: string description: Name of the hub. Maximum 50 characters. Cannot contain / , \ , or . access_type: type: string description: Hub access setting. HUB_ACCESS_PUBLIC or HUB_ACCESS_RESTRICTED. description: type: string description: Description of the hub. Maximum 1,000 characters, excluding HTML tags. user_id: type: string description: ID of the user performing the operation. Must have the HUB_MANAGEMENT permission. required: - hub_name - access_type - user_id PostApiAssethubV2AssetsAsyncRequest: type: object properties: assets: type: array description: Array of asset objects to create. Maximum 50 assets per request. user_id: type: string description: ID of the user performing the operation. Must have the DEVELOP_ASSETS permission. assets[].file_id: type: string description: ID of the file in Content Center. Must be a valid, supported file type. assets[].hubs: type: array description: List of valid hub IDs to add the asset to. assets[].properties: type: object description: Metadata for the asset. assets[].properties.name: type: string description: Display name of the asset. Maximum 250 characters. Cannot contain / or \. assets[].properties.description: type: string description: Asset description. Maximum 1,000 characters, excluding HTML tags. assets[].properties.status: type: string description: Asset state. REFERENCE_ASSET_STATE_PUBLISHED or REFERENCE_ASSET_STATE_DRAFT. assets[].properties.asset_owner: type: string description: Email of the asset owner. The user must have the necessary permissions. assets[].properties.allow_download: type: boolean description: 'Whether users can download the asset. Default: true.' assets[].properties.usage: type: string description: Sharing type. SHARING_TYPE_INTERNAL or SHARING_TYPE_EXTERNAL. assets[].properties.allow_mix_and_match: type: boolean description: 'Whether the asset can be mixed with others. Default: false.' assets[].properties.allow_edit_content: type: boolean description: 'Whether users can edit content. Default: false.' assets[].properties.allow_save_to_drive: type: boolean description: 'Whether users can save to external drives. Default: false.' assets[].properties.expiry_date: type: string description: Expiration date in YYYY-MM-DD format. Must be a future date. assets[].properties.expiry_reminder: type: string description: Reminder setting for expiration. assets[].properties.file_update_reminder: type: string description: Reminder setting for file updates. assets[].properties.attributes: type: array description: Attributes to tag the asset. required: - assets - user_id - assets[].file_id - assets[].hubs - assets[].properties - assets[].properties.status PostApiAssethubV2AssetsAsyncResponse: type: object properties: execution_id: type: string description: ID to track the async operation status. request_id: type: string description: Unique ID for the request. message: type: string description: System message. Present only if it is not empty. PostApiAssethubV2HubHubidUsersManageRequest: type: object properties: user_id: type: string description: Authorizer user ID. Must be a valid hex string. user_details: type: array description: List of user entries to add or remove. Maximum 50 entries per request. user_details[].user_id: type: string description: User ID. Primary identifier. Required if username is omitted. Takes precedence if both are provided. user_details[].username: type: string description: Username. Required if user_id is omitted. user_details[].action: type: string description: Operation to perform. ADD shares access to the hub, REMOVE revokes access to the hub. required: - user_id - user_details - user_details[].action PostApiAssethubV2HubHubidUsersManageResponse: type: object properties: request_id: type: string description: Unique ID for the request. hub_id: type: string description: The hub ID. status: type: string description: Overall status of the operation. SUCCESS , PARTIAL_SUCCESS , or FAILED. success: type: array description: List of successfully processed entries. failed: type: array description: List of failed entries, each with an error reason. PostApiAssethubV2HubResponse: type: object properties: hub_id: type: string description: Unique ID of the created hub. hub_name: type: string description: Name of the created hub. access_type: type: string description: Access setting of the hub. description: type: string description: Description of the hub. request_id: type: string description: Unique ID for the request. GetApiAssethubV2AssetsAsyncExecutionidResponse: type: object properties: execution_id: type: string description: ID to track the async operation status. status: type: string description: 'Execution status: in_progress, success, failed, not_dispatched.' total_tasks: type: integer description: Total number of tasks. completed_tasks: type: integer description: Number of completed tasks. failed_tasks: type: integer description: Number of failed tasks. tasks: type: array description: Array of task objects. request_id: type: string description: Unique ID for the request. securitySchemes: bearer: type: http scheme: bearer