# Withdraw a project from a channel

Closes new use and preserves history and started effects. Withdrawing the last project requires lastAttachment: archive.

URL: /docs/reference/channels/withdrawProjectChannel

```json
{"openapi":"3.0.3","info":{"title":"Postdot API","description":"The HTTP API for the lightweight, self-hosted Postdot publication orchestrator.","version":"0.1.0"},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"Postdot API key","description":"A user-owned Postdot API key sent as `Authorization: Bearer <token>`. Its project scope is limited by the creator’s current access."},"sessionCookie":{"type":"apiKey","in":"cookie","name":"better-auth.session_token","description":"The Better Auth email/password session cookie used by the web application."}},"schemas":{}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"tags":[{"name":"System","description":"Service health and runtime information."},{"name":"Access","description":"Instance membership and invitations."},{"name":"Projects","description":"Project lifecycle and access."},{"name":"Channels","description":"Project publication destinations."},{"name":"Posts","description":"Source posts and publication creation."},{"name":"Publications","description":"Publication workflow operations."},{"name":"Taxonomy","description":"Project categories and publication tags."},{"name":"Media","description":"Project media assets and uploads."},{"name":"Settings","description":"Instance-level runtime configuration."},{"name":"Audit","description":"Project audit history."},{"name":"Notifications","description":"Signed-in user notification inboxes with optional project context."},{"name":"Analytics","description":"Provider-neutral publication and execution analytics."},{"name":"Provider Analytics","description":"Persisted provider-owned metric observations."}],"paths":{"/api/projects/{projectId}/channels/{channelId}/attachments/{attachedProjectId}/withdraw":{"post":{"operationId":"withdrawProjectChannel","summary":"Withdraw a project from a channel","description":"Closes new use and preserves history and started effects. Withdrawing the last project requires lastAttachment: archive.","tags":["Channels"],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","minLength":1}},{"name":"channelId","in":"path","required":true,"schema":{"type":"string","minLength":1}},{"name":"attachedProjectId","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["expectedRevision"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"lastAttachment":{"type":"string","const":"archive"}}}},"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["expectedRevision"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"lastAttachment":{"type":"string","const":"archive"}}}},"multipart/form-data":{"schema":{"type":"object","required":["expectedRevision"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"lastAttachment":{"type":"string","const":"archive"}}}}}},"responses":{"200":{"description":"Response for status 200","content":{"application/json":{"schema":{"type":"object","required":["result","revision"],"properties":{"result":{"type":"string","enum":["changed","unchanged"]},"revision":{"type":"integer"}}}}}},"401":{"description":"Response for status 401","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"confirmation":{"type":"string"},"warnings":{"type":"array","items":{"type":"object","required":["channelId","rule","period","maximum","count"],"properties":{"channelId":{"type":"string"},"rule":{"type":"string","enum":["daily_max","weekly_max"]},"period":{"type":"string"},"maximum":{"type":"integer"},"count":{"type":"integer"}}}},"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"403":{"description":"Response for status 403","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"confirmation":{"type":"string"},"warnings":{"type":"array","items":{"type":"object","required":["channelId","rule","period","maximum","count"],"properties":{"channelId":{"type":"string"},"rule":{"type":"string","enum":["daily_max","weekly_max"]},"period":{"type":"string"},"maximum":{"type":"integer"},"count":{"type":"integer"}}}},"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"404":{"description":"Response for status 404","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"confirmation":{"type":"string"},"warnings":{"type":"array","items":{"type":"object","required":["channelId","rule","period","maximum","count"],"properties":{"channelId":{"type":"string"},"rule":{"type":"string","enum":["daily_max","weekly_max"]},"period":{"type":"string"},"maximum":{"type":"integer"},"count":{"type":"integer"}}}},"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"409":{"description":"Response for status 409","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","revision"],"properties":{"code":{"type":"string","enum":["stale_revision","retirement_required"]},"message":{"type":"string"},"revision":{"type":"integer"}}}}}}}}}}}},"servers":[{"url":"https://postdot.example","description":"Replace with your Postdot instance origin."}]}
```
