naftiko: 1.0.0-alpha2 info: label: Nanonets File Management API description: Approve, unapprove, assign, update, delete, and re-export files within a Nanonets model. tags: [Nanonets, Workflow, Approvals] created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: { NANONETS_API_KEY: NANONETS_API_KEY } capability: consumes: - type: http namespace: file-management baseUri: https://app.nanonets.com description: Nanonets file management and review surface. resources: - name: verify path: /api/v2/ImageLevelInferences/Model/{model_id}/Verify/{request_file_id} operations: - { name: verifyFile, method: POST, description: 'Approve a file.', outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: model_id, in: path, type: string, required: true }, { name: request_file_id, in: path, type: string, required: true } ] } - name: unverify path: /api/v2/ImageLevelInferences/Model/{model_id}/UnVerify/{request_file_id} operations: - { name: unverifyFile, method: POST, description: 'Unapprove a file.', outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: model_id, in: path, type: string, required: true }, { name: request_file_id, in: path, type: string, required: true } ] } - name: assign path: /api/v2/team/members/model/{model_id}/assign/files operations: - { name: assignFiles, method: POST, description: 'Assign files to a reviewer.', outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: model_id, in: path, type: string, required: true }, { name: body, in: body, type: object, required: true } ] } - name: update-fields path: /api/v2/Inferences/Model/{model_id}/ImageLevelInference operations: - { name: updateFileFields, method: PATCH, description: 'Update or add field values on a file.', outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: model_id, in: path, type: string, required: true }, { name: use_ui_version, in: query, type: boolean, required: true }, { name: body, in: body, type: object, required: true } ] } - name: delete path: /api/v2/Inferences/Model/{model_id}/InferenceRequestFiles/{file_id} operations: - { name: deleteFile, method: DELETE, description: 'Delete a processed file.', outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: model_id, in: path, type: string, required: true }, { name: file_id, in: path, type: string, required: true } ] } - name: retry-exports path: /api/v2/Inferences/Model/{model_id}/ImageLevelInferences/retryallexports operations: - { name: retryAllExports, method: POST, description: 'Retry exports for one or more files.', outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: model_id, in: path, type: string, required: true }, { name: body, in: body, type: object, required: true } ] } authentication: type: basic username: '{{env.NANONETS_API_KEY}}' password: '' exposes: - type: rest namespace: file-management-rest port: 8080 description: REST adapter for file management. resources: - path: /v1/files/verify name: verify operations: - { method: POST, name: verifyFile, description: 'Approve a file.', call: file-management.verifyFile, with: { model_id: rest.body.model_id, request_file_id: rest.body.request_file_id } } - path: /v1/files/unverify name: unverify operations: - { method: POST, name: unverifyFile, description: 'Unapprove a file.', call: file-management.unverifyFile, with: { model_id: rest.body.model_id, request_file_id: rest.body.request_file_id } } - path: /v1/files/update name: update operations: - { method: PATCH, name: updateFileFields, description: 'Update or add field values on a file.', call: file-management.updateFileFields, with: { model_id: rest.body.model_id, use_ui_version: rest.body.use_ui_version, body: rest.body.body } } - type: mcp namespace: file-management-mcp port: 9090 transport: http description: MCP adapter for file management. tools: - { name: nanonets-verify-file, description: 'Approve a file.', hints: { readOnly: false, destructive: false, idempotent: true }, call: file-management.verifyFile, with: { model_id: tools.model_id, request_file_id: tools.request_file_id } } - { name: nanonets-unverify-file, description: 'Unapprove a file.', hints: { readOnly: false, destructive: false, idempotent: true }, call: file-management.unverifyFile, with: { model_id: tools.model_id, request_file_id: tools.request_file_id } } - { name: nanonets-assign-files, description: 'Assign files to a reviewer.', hints: { readOnly: false, destructive: false, idempotent: false }, call: file-management.assignFiles, with: { model_id: tools.model_id, body: tools.body } } - { name: nanonets-update-fields, description: 'Update field values on a file.', hints: { readOnly: false, destructive: false, idempotent: false }, call: file-management.updateFileFields, with: { model_id: tools.model_id, use_ui_version: true, body: tools.body } } - { name: nanonets-delete-file, description: 'Delete a processed file.', hints: { readOnly: false, destructive: true, idempotent: true }, call: file-management.deleteFile, with: { model_id: tools.model_id, file_id: tools.file_id } } - { name: nanonets-retry-exports, description: 'Retry exports for one or more files.', hints: { readOnly: false, destructive: false, idempotent: false }, call: file-management.retryAllExports, with: { model_id: tools.model_id, body: tools.body } }