CUDO Compute Projects API

Projects are containers for cloud resources, such as virtual machines & clusters.

Operations 9

GET /v1/project/{projectId}/ssh-keys List project SSH keys #
GET /v1/projects List projects #
POST /v1/projects Create a project #
DELETE /v1/projects/{id} Delete a project #
GET /v1/projects/{id} Get a project #
PATCH /v1/projects/{id} Update a project #
POST /v1/projects/{id}:add-permission Add a permission to a project #
GET /v1/projects/{id}:list-permissions Get project permissions #
POST /v1/projects/{id}:remove-permission Remove a permission from a project #

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-projects-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-projects-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 Projects API
  version: 1.0.0
servers:
- url: https://rest.compute.cudo.org/
security:
- bearerAuth: []
tags:
- description: Projects are containers for cloud resources, such as virtual machines & clusters.
  name: Projects
paths:
  /v1/project/{projectId}/ssh-keys:
    get:
      description: Lists the SSH keys associated with members of a project.
      operationId: ListProjectSshKeys
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProjectSshKeysResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
          description: An unexpected error response.
      summary: List project SSH keys
      tags:
      - Projects
  /v1/projects:
    get:
      description: Lists projects that can be accessed by the current user.
      operationId: ListProjects
      parameters:
      - in: query
        name: pageToken
        schema:
          type: string
      - in: query
        name: pageSize
        schema:
          format: int32
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProjectsResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
          description: An unexpected error response.
      summary: List projects
      tags:
      - Projects
    post:
      description: Creates a new project.
      operationId: CreateProject
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Project'
        description: Create project params
        required: true
        x-originalParamName: project
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
          description: An unexpected error response.
      summary: Create a project
      tags:
      - Projects
  /v1/projects/{id}:
    delete:
      description: Deletes a project. Only empty projects can be deleted.
      operationId: DeleteProject
      parameters:
      - 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 project
      tags:
      - Projects
    get:
      description: Retrieves the details of a project.
      operationId: GetProject
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
          description: An unexpected error response.
      summary: Get a project
      tags:
      - Projects
    patch:
      description: Updates the details of a project.
      operationId: UpdateProject
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                billingAccountId:
                  type: string
                createBy:
                  readOnly: true
                  type: string
                resourceCount:
                  format: int32
                  readOnly: true
                  type: integer
              required:
              - billingAccountId
              title: Update project params
              type: object
        description: Update project params
        required: true
        x-originalParamName: project
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
          description: An unexpected error response.
      summary: Update a project
      tags:
      - Projects
  /v1/projects/{id}:add-permission:
    post:
      description: Grants a user permission to access a project.
      operationId: AddProjectPermission
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserPermission'
        required: true
        x-originalParamName: userPermission
      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: Add a permission to a project
      tags:
      - Projects
  /v1/projects/{id}:list-permissions:
    get:
      description: Lists all user permissions for a project.
      operationId: GetProjectPermissions
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProjectPermissionsResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
          description: An unexpected error response.
      summary: Get project permissions
      tags:
      - Projects
  /v1/projects/{id}:remove-permission:
    post:
      description: Revokes a user's permission to access a project.
      operationId: RemoveProjectPermission
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserPermission'
        required: true
        x-originalParamName: userPermission
      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: Remove a permission from a project
      tags:
      - Projects
components:
  schemas:
    ListProjectsResponse:
      properties:
        pageSize:
          format: int32
          type: integer
        pageToken:
          type: string
        projects:
          items:
            $ref: '#/components/schemas/Project'
          type: array
      required:
      - projects
      - pageToken
      - pageSize
      type: object
    UserPermission:
      properties:
        permissionRole:
          $ref: '#/components/schemas/Role'
        role:
          readOnly: true
          type: string
        userEmail:
          type: string
        userId:
          type: string
        userPicture:
          readOnly: true
          type: string
      required:
      - permissionRole
      type: object
    Project:
      properties:
        billingAccountId:
          type: string
        createBy:
          readOnly: true
          type: string
        id:
          type: string
        resourceCount:
          format: int32
          readOnly: true
          type: integer
      required:
      - id
      - billingAccountId
      type: object
    SshKey:
      properties:
        comment:
          readOnly: true
          type: string
        createTime:
          format: date-time
          readOnly: true
          type: string
        fingerprint:
          readOnly: true
          type: string
        id:
          readOnly: true
          type: string
        publicKey:
          type: string
        type:
          readOnly: true
          type: string
      required:
      - publicKey
      type: object
    Status:
      properties:
        code:
          format: int32
          type: integer
        details:
          items:
            $ref: '#/components/schemas/Any'
          type: array
        message:
          type: string
      type: object
    GetProjectPermissionsResponse:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/UserPermission'
          type: array
      type: object
    ListProjectSshKeysResponse:
      properties:
        sshKeys:
          items:
            $ref: '#/components/schemas/SshKey'
          type: array
      required:
      - sshKeys
      type: object
    Any:
      additionalProperties: {}
      properties:
        '@type':
          type: string
      type: object
    Role:
      default: UNKNOWN
      enum:
      - UNKNOWN
      - OWNER
      - VIEWER
      - EDITOR
      type: string
  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)