> ## Documentation Index
> Fetch the complete documentation index at: https://otoyinc.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Node Image Pull Progress

> Check Docker image pull progress on a node you operate. Get the node’s UUID from `GET /v1/nodes`.

### Read progress
Call `GET /v1/nodes/{node_uuid}/events`. Poll for updated progress while an image is downloading. Each request returns the latest snapshot as JSON, not a list of events or a live stream.

By default, this returns the node’s latest image pull progress. Set `job_run_uuid` to limit results to a particular run. The optional `type` parameter currently accepts only `DOCKER_IMAGE_PULL_PROGRESS`.

### Response
- `download_percentage`: the estimated download percentage, from 0 to 100, or null when the total size is not known.
- `speed_bytes_per_sec`: the estimated recent download speed in bytes per second, or null when there are not enough samples to calculate it.
- `latest`: the latest reported image pull event, including `node_uuid`, or null when no event is available.

All three fields are null before any matching progress is available. A null value means information is unavailable, not that the pull failed.

### Access
Sign requests with your API key and HMAC headers. You need `nodes.read.own` for a node you operate, or `nodes.read.all` to read any node.

If you submitted a job rather than operating the node, use `GET /v1/job-runs/{uuid}/events`. That endpoint requires only Job Run read access and does not include node identity.



## OpenAPI

````yaml https://api.dispersed.com/openapi.json get /v1/nodes/{node_uuid}/events
openapi: 3.1.0
info:
  title: Dispersed API
  version: 1.0.0
servers:
  - url: https://api.dispersed.com
security: []
paths:
  /v1/nodes/{node_uuid}/events:
    get:
      tags:
        - Nodes
      summary: Get Node Image Pull Progress
      description: >-
        Check Docker image pull progress on a node you operate. Get the node’s
        UUID from `GET /v1/nodes`.


        ### Read progress

        Call `GET /v1/nodes/{node_uuid}/events`. Poll for updated progress while
        an image is downloading. Each request returns the latest snapshot as
        JSON, not a list of events or a live stream.


        By default, this returns the node’s latest image pull progress. Set
        `job_run_uuid` to limit results to a particular run. The optional `type`
        parameter currently accepts only `DOCKER_IMAGE_PULL_PROGRESS`.


        ### Response

        - `download_percentage`: the estimated download percentage, from 0 to
        100, or null when the total size is not known.

        - `speed_bytes_per_sec`: the estimated recent download speed in bytes
        per second, or null when there are not enough samples to calculate it.

        - `latest`: the latest reported image pull event, including `node_uuid`,
        or null when no event is available.


        All three fields are null before any matching progress is available. A
        null value means information is unavailable, not that the pull failed.


        ### Access

        Sign requests with your API key and HMAC headers. You need
        `nodes.read.own` for a node you operate, or `nodes.read.all` to read any
        node.


        If you submitted a job rather than operating the node, use `GET
        /v1/job-runs/{uuid}/events`. That endpoint requires only Job Run read
        access and does not include node identity.
      parameters:
        - schema:
            type: string
            format: uuid
          required: true
          name: node_uuid
          in: path
        - schema:
            type: string
            format: uuid
          required: false
          name: job_run_uuid
          in: query
        - schema:
            type: string
            enum:
              - DOCKER_IMAGE_PULL_PROGRESS
          required: false
          name: type
          in: query
      responses:
        '200':
          description: >-
            The latest image pull progress, or null fields if no progress is
            available.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NodeEventProgressResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    NodeEventProgressResponse:
      type: object
      properties:
        download_percentage:
          type:
            - number
            - 'null'
          description: >-
            Estimated image download percentage, from 0 to 100. Null when the
            total download size is not known.
        latest:
          anyOf:
            - $ref: '#/components/schemas/NodeEventResponse'
            - type: 'null'
          description: >-
            The latest image pull event, including node_uuid, or null if none is
            available. type is DOCKER_IMAGE_PULL_PROGRESS. Inside payload,
            downloaded_bytes is the number of bytes downloaded so far. Optional
            fields include total_bytes (expected download size), image, tag,
            docker_status, and error_message. Other payload fields may be added.
        speed_bytes_per_sec:
          type:
            - number
            - 'null'
          description: >-
            Estimated recent download speed in bytes per second. Null when there
            are not enough valid progress samples to calculate a speed.
      required:
        - download_percentage
        - latest
        - speed_bytes_per_sec
    ErrorResponse:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/Error'
      required:
        - error
    NodeEventResponse:
      type: object
      properties:
        created_at:
          type:
            - string
            - 'null'
          format: date-time
        job_run_uuid:
          type:
            - string
            - 'null'
        node_uuid:
          type:
            - string
            - 'null'
        object:
          type: string
          enum:
            - node_event
        client_observed_at_ms:
          type: integer
        payload:
          type: object
          properties: {}
          additionalProperties: {}
        schema_version:
          type: integer
        server_received_at_ms:
          type: integer
        type:
          type: string
        uuid:
          type:
            - string
            - 'null'
      required:
        - created_at
        - object
        - client_observed_at_ms
        - payload
        - schema_version
        - server_received_at_ms
        - type
    Error:
      type: object
      properties:
        code:
          type: string
        details:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
              expected:
                type: string
              input:
                type: string
              keys:
                type: array
                items:
                  type: string
              message:
                type: string
              path:
                type: array
                items:
                  anyOf:
                    - type: string
                    - type: number
            required:
              - message
              - path
          default: []
        message:
          type: string
        status:
          type: number
        timestamp:
          type: string
      required:
        - code
        - message
        - status
        - timestamp

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.