CUDO Compute Volumes API

Volumes are high-performance Network File Systems that allow cluster machines to share training data and model checkpoints. Related guide: [Volumes](https://www.cudocompute.com/docs/volumes)

Operations 6

GET /v1/projects/{projectId}/volumes List volumes #
POST /v1/projects/{projectId}/volumes Create a volume #
DELETE /v1/projects/{projectId}/volumes/{id} Delete a volume #
GET /v1/projects/{projectId}/volumes/{id} Get a volume #
PATCH /v1/projects/{projectId}/volumes/{id} Update a volume #
GET /v1/volumes/prices List volume prices #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cudo-compute:cudo-compute-volumes-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cudo-compute-volumes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: The CUDO Compute API is organized around REST. Our API uses predictable resource-oriented URLs, accepts and returns JSON-encoded requests and responses, and uses standard HTTP response codes, authentication, and verbs where possible.
  title: CUDO Compute service Volumes API
  version: 1.0.0
servers:
- url: https://rest.compute.cudo.org/
security:
- bearerAuth: []
tags:
- description: 'Volumes are high-performance Network File Systems that allow cluster machines to share training data and model checkpoints.


    Related guide: Volumes'
  name: Volumes
paths:
  /v1/projects/{projectId}/volumes:
    get:
      description: Lists NFS volumes in a project.
      operationId: ListVolumes
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      - in: query
        name: pageNumber
        schema:
          format: int32
          type: integer
      - in: query
        name: pageSize
        schema:
          format: int32
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListVolumesResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
          description: An unexpected error response.
      summary: List volumes
      tags:
      - Volumes
    post:
      description: Creates a new NFS volume.
      operationId: CreateVolume
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                commitmentEndTime:
                  format: date-time
                  type: string
                commitmentTerm:
                  $ref: '#/components/schemas/CommitmentTerm'
                dataCenterId:
                  type: string
                gibPriceHr:
                  $ref: '#/components/schemas/Decimal'
                id:
                  type: string
                nfsPath:
                  readOnly: true
                  type: string
                nfsServer:
                  readOnly: true
                  type: string
                sizeGib:
                  format: int32
                  type: integer
                sizeGibUsed:
                  format: int32
                  readOnly: true
                  type: integer
                state:
                  $ref: '#/components/schemas/Volume.State'
                totalPriceHr:
                  $ref: '#/components/schemas/Decimal'
              required:
              - id
              - dataCenterId
              - sizeGib
              title: Create volume params
              type: object
        description: Create volume params
        required: true
        x-originalParamName: volume
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Volume'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
          description: An unexpected error response.
      summary: Create a volume
      tags:
      - Volumes
  /v1/projects/{projectId}/volumes/{id}:
    delete:
      description: Deletes an NFS volume.
      operationId: DeleteVolume
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
          description: An unexpected error response.
      summary: Delete a volume
      tags:
      - Volumes
    get:
      description: Retrieves the details of an NFS volume.
      operationId: GetVolume
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Volume'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
          description: An unexpected error response.
      summary: Get a volume
      tags:
      - Volumes
    patch:
      description: Updates an NFS volume.
      operationId: UpdateVolume
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                commitmentEndTime:
                  format: date-time
                  type: string
                commitmentTerm:
                  $ref: '#/components/schemas/CommitmentTerm'
                dataCenterId:
                  type: string
                gibPriceHr:
                  $ref: '#/components/schemas/Decimal'
                nfsPath:
                  readOnly: true
                  type: string
                nfsServer:
                  readOnly: true
                  type: string
                sizeGib:
                  format: int32
                  type: integer
                sizeGibUsed:
                  format: int32
                  readOnly: true
                  type: integer
                state:
                  $ref: '#/components/schemas/Volume.State'
                totalPriceHr:
                  $ref: '#/components/schemas/Decimal'
              required:
              - dataCenterId
              - sizeGib
              title: Update volume params
              type: object
        description: Update volume params
        required: true
        x-originalParamName: volume
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Volume'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
          description: An unexpected error response.
      summary: Update a volume
      tags:
      - Volumes
  /v1/volumes/prices:
    get:
      description: Lists all available NFS volume prices.
      operationId: ListVolumePrices
      parameters:
      - in: query
        name: pageNumber
        schema:
          format: int32
          type: integer
      - in: query
        name: pageSize
        schema:
          format: int32
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListVolumePricesResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
          description: An unexpected error response.
      summary: List volume prices
      tags:
      - Volumes
components:
  schemas:
    Decimal:
      description: 'A representation of a decimal value, such as 2.5. Clients may convert values

        into language-native decimal formats, such as Java''s [BigDecimal][] or

        Python''s [decimal.Decimal][].


        [BigDecimal]:

        https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html

        [decimal.Decimal]: https://docs.python.org/3/library/decimal.html'
      properties:
        value:
          description: "The decimal value, as a string.\n\nThe string representation consists of an optional sign, `+` (`U+002B`)\nor `-` (`U+002D`), followed by a sequence of zero or more decimal digits\n(\"the integer\"), optionally followed by a fraction, optionally followed\nby an exponent.\n\nThe fraction consists of a decimal point followed by zero or more decimal\ndigits. The string must contain at least one digit in either the integer\nor the fraction. The number formed by the sign, the integer and the\nfraction is referred to as the significand.\n\nThe exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`)\nfollowed by one or more decimal digits.\n\nServices **should** normalize decimal values before storing them by:\n\n  - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`).\n  - Replacing a zero-length integer value with `0` (`.5` -> `0.5`).\n  - Coercing the exponent character to lower-case (`2.5E8` -> `2.5e8`).\n  - Removing an explicitly-provided zero exponent (`2.5e0` -> `2.5`).\n\nServices **may** perform additional normalization based on its own needs\nand the internal decimal implementation selected, such as shifting the\ndecimal point and exponent value together (example: `2.5e-1` <-> `0.25`).\nAdditionally, services **may** preserve trailing zeroes in the fraction\nto indicate increased precision, but are not required to do so.\n\nNote that only the `.` character is supported to divide the integer\nand the fraction; `,` **should not** be supported regardless of locale.\nAdditionally, thousand separators **should not** be supported. If a\nservice does support them, values **must** be normalized.\n\nThe ENBF grammar is:\n\n    DecimalString =\n      [Sign] Significand [Exponent];\n\n    Sign = '+' | '-';\n\n    Significand =\n      Digits ['.'] [Digits] | [Digits] '.' Digits;\n\n    Exponent = ('e' | 'E') [Sign] Digits;\n\n    Digits = { '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' };\n\nServices **should** clearly document the range of supported values, the\nmaximum supported precision (total number of digits), and, if applicable,\nthe scale (number of digits after the decimal point), as well as how it\nbehaves when receiving out-of-bounds values.\n\nServices **may** choose to accept values passed as input even when the\nvalue has a higher precision or scale than the service supports, and\n**should** round the value to fit the supported scale. Alternatively, the\nservice **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC)\nif precision would be lost.\n\nServices **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in\ngRPC) if the service receives a value outside of the supported range."
          type: string
      type: object
    CommitmentTerm:
      default: COMMITMENT_TERM_NONE
      enum:
      - COMMITMENT_TERM_NONE
      - COMMITMENT_TERM_1_MONTH
      - COMMITMENT_TERM_3_MONTHS
      - COMMITMENT_TERM_6_MONTHS
      - COMMITMENT_TERM_12_MONTHS
      - COMMITMENT_TERM_24_MONTHS
      - COMMITMENT_TERM_36_MONTHS
      - COMMITMENT_TERM_60_MONTHS
      type: string
    ListVolumesResponse:
      properties:
        pageNumber:
          format: int32
          type: integer
        pageSize:
          format: int32
          type: integer
        totalCount:
          format: int32
          type: integer
        volumes:
          items:
            $ref: '#/components/schemas/Volume'
          type: array
      required:
      - totalCount
      - pageNumber
      - pageSize
      type: object
    Status:
      properties:
        code:
          format: int32
          type: integer
        details:
          items:
            $ref: '#/components/schemas/Any'
          type: array
        message:
          type: string
      type: object
    Volume.State:
      default: VOLUME_STATE_UNSPECIFIED
      enum:
      - VOLUME_STATE_UNSPECIFIED
      - CREATING
      - ACTIVE
      - UPDATING
      - DELETING
      - FAILED
      type: string
    ListVolumePricesResponse:
      properties:
        pageNumber:
          format: int32
          type: integer
        pageSize:
          format: int32
          type: integer
        prices:
          items:
            $ref: '#/components/schemas/VolumePrice'
          type: array
        totalCount:
          format: int32
          type: integer
      type: object
    Any:
      additionalProperties: {}
      properties:
        '@type':
          type: string
      type: object
    VolumePrice:
      properties:
        commitmentTerm:
          $ref: '#/components/schemas/CommitmentTerm'
        dataCenterId:
          type: string
        gibPriceHr:
          $ref: '#/components/schemas/Decimal'
      required:
      - dataCenterId
      - commitmentTerm
      - gibPriceHr
      type: object
    Volume:
      properties:
        commitmentEndTime:
          format: date-time
          type: string
        commitmentTerm:
          $ref: '#/components/schemas/CommitmentTerm'
        dataCenterId:
          type: string
        gibPriceHr:
          $ref: '#/components/schemas/Decimal'
        id:
          type: string
        nfsPath:
          readOnly: true
          type: string
        nfsServer:
          readOnly: true
          type: string
        projectId:
          type: string
        sizeGib:
          format: int32
          type: integer
        sizeGibUsed:
          format: int32
          readOnly: true
          type: integer
        state:
          $ref: '#/components/schemas/Volume.State'
        totalPriceHr:
          $ref: '#/components/schemas/Decimal'
      required:
      - projectId
      - id
      - dataCenterId
      - sizeGib
      type: object
  securitySchemes:
    bearerAuth:
      description: API key authentication. API keys should be passed using the format `Bearer API_KEY`.
      in: header
      name: Authorization
      type: apiKey
x-provenance:
  method: harvested
  publisher: CUDO Compute
  source: https://docs.cudocompute.com/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)