restore_project
Bring an archived project back on sale by flipping active to true. Emits project.restored. Noop if already active.
Purpose
The reverse of archive_project. Flips active back to true so
checkout, the portal and the bot accept new subscribers again. Nothing else moves: an archive never
touched subscribers, plans or history, so there is nothing to rebuild.
It runs the same Action the dashboard and the REST API use, so
project.restored fires once, when the flag actually changes.
Re-calling on a project that is already active is a no-op — the current row comes back and nothing
emits.
Archived is not deleted
An archived project resolves like any other, so its id is all you need. A
project removed with delete_project is gone for
good and answers RESOURCE_NOT_FOUND here.
Required ability
project:update
Input schema
{
"type": "object",
"required": ["project_id"],
"properties": {
"project_id": {
"type": "string",
"description": "UUID of the archived project to restore."
}
}
}Output shape
{
"data": {
"id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",
"active": true
}
}Example prompts
"Restore project
7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13— we're reopening signups."
"Put my Research Premium project back on sale."
"Un-archive the summer cohort project."
Failure modes
RESOURCE_NOT_FOUND— unknownproject_id, a project belonging to another team, one outside the token'sscope:project:allow-list, or a project that was deleted rather than archived.VALIDATION_FAILED— the caller is a team member whose role lacks the team's project-update permission.error.context.projectcarries the refusal.AUTHENTICATION_REQUIRED— no authenticated user on the request.TOKEN_MISSING_ABILITY— token lacksproject:update.
Related
archive_project— the other half of the pair.get_project— checkactivebefore and after.update_project— the general partial update.- Projects API — the REST equivalent,
POST /projects/{project}/restore. - Creating a Project — the dashboard walkthrough.
How is this guide?