Paperspace Projects API

Projects are the top-level organizing container in Paperspace. The Projects API covers project lifecycle, activity feeds, collaborator management, project-scoped secrets, tags, and model linkage.

Paperspace Projects API is one of 10 APIs that Paperspace publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Organization, Projects, Collaboration, and Secrets. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

paperspace-projects-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Paperspace Projects API
  version: v1
  description: |
    Projects are the top-level organizing container in Paperspace — they own
    deployments, models, secrets, tags, activity feeds, and collaborator lists.
    Authenticate with a team-scoped API key as `Authorization: Bearer
    $API_TOKEN`.
servers:
- url: https://api.paperspace.com/v1
  description: Production
security:
- bearerAuth: []
tags:
- name: Projects
- name: Collaborators
- name: Secrets
- name: Tags
- name: Activity
paths:
  /projects:
    get:
      tags: [Projects]
      operationId: listProjects
      summary: List Projects
      description: Lists projects with pagination and sorting support.
      parameters:
      - $ref: '#/components/parameters/After'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/OrderBy'
      - $ref: '#/components/parameters/Order'
      responses:
        '200':
          description: Project list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectList'
    post:
      tags: [Projects]
      operationId: createProject
      summary: Create Project
      description: Creates a new project with the specified name.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [name]
              properties:
                name:
                  type: string
                description:
                  type: string
      responses:
        '201':
          description: Project created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
  /projects/{id}:
    parameters:
    - $ref: '#/components/parameters/ProjectId'
    get:
      tags: [Projects]
      operationId: getProject
      summary: Get Project
      description: Gets a project by its ID.
      responses:
        '200':
          description: Project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
    put:
      tags: [Projects]
      operationId: updateProject
      summary: Update Project
      description: Updates a project's name or description.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
      responses:
        '200':
          description: Updated project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
    delete:
      tags: [Projects]
      operationId: deleteProject
      summary: Delete Project
      description: Deletes a project and its associated configuration.
      responses:
        '204':
          description: Deleted.
  /projects/{id}/activity:
    parameters:
    - $ref: '#/components/parameters/ProjectId'
    get:
      tags: [Activity]
      operationId: listProjectActivity
      summary: List Project Activity
      description: Lists project activity events with filtering and pagination options.
      parameters:
      - in: query
        name: type
        schema:
          type: string
      - $ref: '#/components/parameters/After'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Activity list.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ActivityEvent'
  /projects/{id}/collaborators:
    parameters:
    - $ref: '#/components/parameters/ProjectId'
    get:
      tags: [Collaborators]
      operationId: listProjectCollaborators
      summary: List Project Collaborators
      description: Fetches a list of collaborators for a project.
      responses:
        '200':
          description: Collaborator list.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Collaborator'
    post:
      tags: [Collaborators]
      operationId: addProjectCollaborator
      summary: Add Project Collaborator
      description: Adds a new collaborator to a project.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [userId]
              properties:
                userId:
                  type: string
                role:
                  type: string
                  enum: [admin, member, viewer]
      responses:
        '201':
          description: Collaborator added.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collaborator'
  /projects/{id}/collaborators/{userId}:
    parameters:
    - $ref: '#/components/parameters/ProjectId'
    - in: path
      name: userId
      required: true
      schema:
        type: string
    delete:
      tags: [Collaborators]
      operationId: removeProjectCollaborator
      summary: Remove Project Collaborator
      description: Removes a collaborator from a project.
      responses:
        '204':
          description: Removed.
  /projects/{id}/secrets:
    parameters:
    - $ref: '#/components/parameters/ProjectId'
    get:
      tags: [Secrets]
      operationId: listProjectSecrets
      summary: List Project Secrets
      description: Fetches a list of secrets for a project.
      responses:
        '200':
          description: Secret list (names only).
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Secret'
    post:
      tags: [Secrets]
      operationId: createProjectSecret
      summary: Create Project Secret
      description: Creates a new secret for a project.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SecretCreate'
      responses:
        '201':
          description: Secret created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Secret'
  /projects/{id}/secrets/{name}:
    parameters:
    - $ref: '#/components/parameters/ProjectId'
    - in: path
      name: name
      required: true
      schema:
        type: string
    get:
      tags: [Secrets]
      operationId: getProjectSecret
      summary: Get Project Secret
      description: Fetches a secret for a project (does not return the value).
      responses:
        '200':
          description: Secret.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Secret'
    patch:
      tags: [Secrets]
      operationId: updateProjectSecret
      summary: Update Project Secret
      description: Updates the value of a secret for a project.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [value]
              properties:
                value:
                  type: string
      responses:
        '200':
          description: Updated secret.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Secret'
    delete:
      tags: [Secrets]
      operationId: deleteProjectSecret
      summary: Delete Project Secret
      description: Deletes a secret from a project.
      responses:
        '204':
          description: Deleted.
  /projects/{id}/tags:
    parameters:
    - $ref: '#/components/parameters/ProjectId'
    get:
      tags: [Tags]
      operationId: listProjectTags
      summary: List Project Tags
      description: Fetches a list of tags for a project.
      responses:
        '200':
          description: Tag list.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
    post:
      tags: [Tags]
      operationId: addProjectTag
      summary: Add Project Tag
      description: Adds a tag to a project.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [name]
              properties:
                name:
                  type: string
      responses:
        '201':
          description: Tag added.
    delete:
      tags: [Tags]
      operationId: removeProjectTag
      summary: Remove Project Tag
      description: Removes a tag from a project by name.
      parameters:
      - in: query
        name: name
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Removed.
  /projects/{id}/models:
    parameters:
    - $ref: '#/components/parameters/ProjectId'
    get:
      tags: [Projects]
      operationId: listProjectModels
      summary: List Project Models
      description: Fetches a list of models for a project.
      responses:
        '200':
          description: Model list.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    name:
                      type: string
  /projects/{id}/models/{modelId}:
    parameters:
    - $ref: '#/components/parameters/ProjectId'
    - in: path
      name: modelId
      required: true
      schema:
        type: string
    post:
      tags: [Projects]
      operationId: addProjectModel
      summary: Add Model to Project
      description: Associates an existing model with a project.
      responses:
        '201':
          description: Linked.
    delete:
      tags: [Projects]
      operationId: removeProjectModel
      summary: Remove Model From Project
      description: Removes a model from a project.
      responses:
        '204':
          description: Removed.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: api-key
  parameters:
    ProjectId:
      in: path
      name: id
      required: true
      schema:
        type: string
    After:
      in: query
      name: after
      schema:
        type: string
    Limit:
      in: query
      name: limit
      schema:
        type: integer
    OrderBy:
      in: query
      name: orderBy
      schema:
        type: string
    Order:
      in: query
      name: order
      schema:
        type: string
        enum: [asc, desc]
  schemas:
    Project:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        teamId:
          type: string
        dtCreated:
          type: string
          format: date-time
    ProjectList:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Project'
        hasMore:
          type: boolean
        nextPage:
          type: string
    Collaborator:
      type: object
      properties:
        userId:
          type: string
        email:
          type: string
        role:
          type: string
        projectId:
          type: string
    Secret:
      type: object
      properties:
        name:
          type: string
        dtCreated:
          type: string
          format: date-time
        dtModified:
          type: string
          format: date-time
    SecretCreate:
      type: object
      required: [name, value]
      properties:
        name:
          type: string
        value:
          type: string
    ActivityEvent:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
        message:
          type: string
        userId:
          type: string
        dtCreated:
          type: string
          format: date-time