Deepnote research: our notes on building agents
Get started
All endpoint groups

Deepnote Public API v2

Projects API

Projects and their contents.

Base URL

https://api.deepnote.com/v2

List projects

get/projects

Parameters

pageSizequeryinteger

Maximum number of items to return. Defaults to 50. Maximum: 100.

pageTokenquerystring

Opaque token returned by the previous page. Omit for the first page.

nameContainsquerystring

Filter projects whose name contains this value (case-insensitive).

Responses

200Paginated list of projects
application/jsonListProjectsResponse
projectsrequiredListProjectsItem[]
paginationrequiredCursorPagination
400Validation error
application/jsonErrorResponse
messagerequiredstring
401Unauthorized
application/jsonErrorResponse
messagerequiredstring
403Insufficient permissions
application/jsonErrorResponse
messagerequiredstring
429Rate limit exceeded
application/jsonErrorResponse
messagerequiredstring

Create a project

post/projects

Request body

required
application/jsonCreateProjectBody
namerequiredstring

Project name.

folderIdstring:uuid

Folder to create the project in. Omit to create at the workspace root.

projectType"standard" | "notebook" | "agent"

Project type. Omit to create a `standard` project; `notebook` creates a single-notebook project; `agent` creates an Agent project.

Responses

201Project created
application/jsonCreateProjectResponse
projectrequiredobject
400Validation error
application/jsonErrorResponse
messagerequiredstring
401Unauthorized
application/jsonErrorResponse
messagerequiredstring
403Insufficient permissions
application/jsonErrorResponse
messagerequiredstring
404Folder not found
application/jsonErrorResponse
messagerequiredstring
429Rate limit exceeded
application/jsonErrorResponse
messagerequiredstring

Get a project

get/projects/{projectId}

Parameters

projectIdpathrequiredstring:uuid

Responses

200Project details
application/jsonGetProjectResponse
projectrequiredobject
400Validation error
application/jsonErrorResponse
messagerequiredstring
401Unauthorized
application/jsonErrorResponse
messagerequiredstring
403Insufficient permissions
application/jsonErrorResponse
messagerequiredstring
404Project not found
application/jsonErrorResponse
messagerequiredstring
409Project is suspended
application/jsonErrorResponse
messagerequiredstring
429Rate limit exceeded
application/jsonErrorResponse
messagerequiredstring

Delete a project

delete/projects/{projectId}

Parameters

projectIdpathrequiredstring:uuid

Responses

204Project deleted
400Validation error
application/jsonErrorResponse
messagerequiredstring
401Unauthorized
application/jsonErrorResponse
messagerequiredstring
403Insufficient permissions
application/jsonErrorResponse
messagerequiredstring
404Project not found
application/jsonErrorResponse
messagerequiredstring
429Rate limit exceeded
application/jsonErrorResponse
messagerequiredstring

Export a project as a ZIP archive

Returns a ZIP archive containing one `.deepnote` YAML document per notebook. Block outputs and per-run execution metadata are excluded.

get/projects/{projectId}/export

Parameters

projectIdpathrequiredstring:uuid

Responses

200ZIP archive containing the project notebooks
application/zipstring:binary
400Validation error
application/jsonErrorResponse
messagerequiredstring
401Unauthorized
application/jsonErrorResponse
messagerequiredstring
404Project not found
application/jsonErrorResponse
messagerequiredstring
409Project is suspended
application/jsonErrorResponse
messagerequiredstring
422The project contains block types that cannot be represented in a `.deepnote` document, or its requirements.txt is too large to parse
application/jsonErrorResponse
messagerequiredstring
429Rate limit exceeded
application/jsonErrorResponse
messagerequiredstring

Import a project ZIP archive

Reconciles an existing project from the ZIP produced by project export. Before applying changes, Deepnote creates a version-history snapshot of the project's current notebook state, which can be used to restore notebooks to their pre-import state. Importing a notebook clears the outputs and execution state of all its blocks; notebooks omitted from a partial import are unchanged. Each `.deepnote` document must contain exactly one notebook from the target project and use the same project name and, when present, integration attachments. The project name and declared integration attachments are applied during import; changing the project name requires project rename permission. Notebooks are matched by document-facing id. Missing notebooks are left untouched unless `deleteMissingNotebooks=true`. Requirements are not imported.

post/projects/{projectId}/import

Parameters

projectIdpathrequiredstring:uuid
baseModifiedAtquerystring:date-time

Structural version from the export this import is based on. The import returns 409 when the project structure has changed since this timestamp.

baseContentHashqueryProjectContentHash

Canonical content hash from the export this import is based on. The import returns 409 when the currently exported documents differ.

deleteMissingNotebooksquery"true" | "false"

Delete active project notebooks that are absent from the archive. Defaults to `false`, which leaves missing notebooks untouched.

forcequery"true" | "false"

Skip both lost-update checks and then import regardless of concurrent project changes. Defaults to `false`.

Request body

required
application/zipstring:binary

Responses

200Project notebooks reconciled
application/jsonImportProjectResponse
projectrequiredobject
notebooksrequiredobject[]
400Validation error
application/jsonErrorResponse
messagerequiredstring
401Unauthorized
application/jsonErrorResponse
messagerequiredstring
403Insufficient permissions or notebook limit reached
application/jsonErrorResponse
messagerequiredstring
404Project not found
application/jsonErrorResponse
messagerequiredstring
409Project changed since the supplied base version or is suspended
application/jsonErrorResponse
messagerequiredstring
413Archive or document too large
application/jsonErrorResponse
messagerequiredstring
422Malformed archive or invalid `.deepnote` document structure
application/jsonErrorResponse
messagerequiredstring
429Rate limit exceeded
application/jsonErrorResponse
messagerequiredstring