---
title: "Push a hosted project into one of the caller's conversations"
method: POST
path: "/api/v0/desk/projects/{project_id}/push"
tags: ["Desk"]
---

# Push a hosted project into one of the caller's conversations

`POST /api/v0/desk/projects/{project_id}/push`

## Request

- Base URL: `https://api.outerport.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.outerport.com/api/v0/desk/projects/{project_id}/push`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/outerport/apis/outerport-api/docs/api/v0/desk/projects/:project_id/push/post.ts> (a function with typed inputs; its response is checked against the schema)

Commits the project's current files as a new workspace version of ``session_id``, the caller's own conversation, and answers the files: the base an agent run's proposal is diffed against. The first push binds the conversation to this project, and a conversation bound to another project is refused. The files keep the storage keys the project holds, so nothing is uploaded and a member's conversation reads the owner's bytes.

## Path parameters

- `project_id` string, uuid, required

## Request body

- DeskProjectPushRequest: The caller's own conversation to push the project into.
  - `session_id` string, uuid, required

## Response `200`

Successful Response

- DeskManifestResponse
  - `revision` integer, required
  - `files` DeskManifestEntry[], required
    - `path` string, required
    - `sha256` string, required
    - `size` integer, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-26** `07854361a13b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/outerport/apis/outerport-api/changes/api/v0/desk/projects/:project_id/push/post.md)

---

[API](https://skmtc.dev/outerport/apis/outerport-api.md) - [All operations](https://skmtc.dev/outerport/apis/outerport-api/llms.txt) - [OpenAPI document](https://skmtc.dev/outerport/apis/outerport-api/revisions/08b5bf6f7f18?raw)
