REST API

GET /v1/drives/{sg}/nodes

List drive nodes

GET /v1/drives/{sg}/nodes

One page of files and folders in security group sg, each with its name decrypted (null when this process holds no key for the group).

Path parameters #

  • sg string required

    The security group (the drive).

Query parameters #

  • exam_id string

    Only files linked to this exam.

  • parent_id string

    Folder node id.

  • include_pending boolean

    Include uploads not finished yet.

  • limit integer

    Page size, 1–200.

  • cursor string

    The `next_cursor` of the previous page.

Responses #

  • 200 Successful Response

    • items object[] required
    • next_cursor object
  • 400 The vault refused the request as invalid.

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 401 No client certificate, or the SDK session was rejected or expired (`session_expired`).

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 402 The workspace has no credit for this.

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 403 CN not allowed, permission denied, or no key for the data's security group (`group_key_unavailable`).

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 404 Not found — also a node read under a group it does not belong to.

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 409 A pending or newer version, a replay, or an upload that never reached storage.

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 422 The body or query failed validation (`invalid_request`).

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 429 Rate limited, after the SDK's own backoff gave up.

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 500 An envelope did not open (`crypto_error`, no detail on purpose).

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 502 The vault failed, or answered outside the protocol (`protocol_error`).

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

curl --cert client.crt --key client.key \
  -X GET "https://api.imgexam.com/v1/drives/<sg>/nodes?exam_id=<string>&parent_id=<string>&include_pending=<boolean>&limit=<integer>&cursor=<string>" \
  -H "Content-Type: application/json"
{
  "items": [
    {
      "node": {
        "node_id": "string",
        "workspace_id": "string",
        "security_group_id": "string",
        "kind": "file",
        "status": "pending",
        "exam_id": {},
        "parent_id": {},
        "mode": {},
        "media_kind": {},
        "declared_size": {},
        "size": {},
        "mime_type": {},
        "encrypted_name": {
          "salt": "string",
          "nonce": "string",
          "ciphertext": "string"
        },
        "encrypted_keys": {},
        "storage_path": {},
        "optimized_variants": [
          {
            "kind": null,
            "storage_bucket": null,
            "storage_path": null,
            "storage_size": null,
            "storage_mime_type": null,
            "created_at": null
          }
        ],
        "processing_status": {},
        "processing_error": {},
        "total_size": {},
        "created_by": "string",
        "created_at": "string",
        "completed_at": {},
        "is_deleted": false
      },
      "name": {}
    }
  ],
  "next_cursor": {}
}