Nanonets · Capability

Nanonets File Management API

Approve, unapprove, assign, update, delete, and re-export files within a Nanonets model.

Nanonets File Management API is a Naftiko capability published by Nanonets, one of 5 capabilities the APIs.io network indexes for this provider. It bundles 3 operations across the POST and PATCH methods rooted at /v1/files.

The capability includes 6 state-changing operations. Lead operation: Approve a file. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Nanonets, Workflow, and Approvals.

Run with Naftiko NanonetsWorkflowApprovals

What You Can Do

POST
Verifyfile — Approve a file.
/v1/files/verify
POST
Unverifyfile — Unapprove a file.
/v1/files/unverify
PATCH
Updatefilefields — Update or add field values on a file.
/v1/files/update

MCP Tools

nanonets-verify-file

Approve a file.

idempotent
nanonets-unverify-file

Unapprove a file.

idempotent
nanonets-assign-files

Assign files to a reviewer.

nanonets-update-fields

Update field values on a file.

nanonets-delete-file

Delete a processed file.

idempotent
nanonets-retry-exports

Retry exports for one or more files.

Capability Spec

file-management.yaml Raw ↑
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 } }