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.
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.
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