# Manage projects

Create, list, rename and delete the projects in your organization, find a project's URN, change the billing account a project is charged to, and delete an organization.

Every resource lives in a project, so you create at least one project before you launch anything. Use separate projects to keep applications or environments apart, to grant roles on one of them only, or to charge them to different billing accounts.

## Before you begin [#before-you-begin]

<BeforeYouBegin>

- An organization, and its ID. See [Create an organization](/docs/platform/organizations/create).
- The `origin` CLI, logged in. See [Use the CLI](/docs/platform/access/cli).
- The Owner role (`roles/owner`) on the organization, or a role with the `admin.project.*` permissions. See [Roles](/docs/iam/roles).

</BeforeYouBegin>

You can create and manage projects while the organization is still under review.

## Create a project [#create-a-project]

1. Create the project:

   ```sh
   origin admin create-project --org-id <org-id> --name "Web shop"
   ```

   To choose how the project ID starts, add `--id-prefix <prefix>`, for example `--id-prefix shop`. The platform appends random digits. A prefix has at least two characters, uses lowercase letters, digits and hyphens, and starts with a letter. Without a prefix, the platform picks a random word. Example output (illustrative):

   ```json
   {
     "admin": {
       "createProject": {
         "id": "...",
         "urn": "urn:origin:cloud:admin::0a1b2c3d4e5f::shop-4829103756",
         "orgId": "0a1b2c3d4e5f",
         "projectId": "shop-4829103756",
         "name": "Web shop",
         "createdAt": "2026-10-03T09:20:01Z",
         "createdBy": "user:..."
       }
     }
   }
   ```

1. Note the `urn`. Compute, storage and network commands take it as `--project-urn`. You can also build it from the IDs: `urn:origin:cloud:admin::<org-id>::<project-id>`.
1. Verify that the project is listed:

   ```sh
   origin admin list-projects --org-id <org-id>
   ```

A new project is charged to the organization’s default billing account.

## View a project [#view-a-project]

```sh
origin admin get-project --org-id <org-id> --id <project-id>
```

## Rename a project [#rename-a-project]

Renaming changes the display name only. The project ID and URN stay the same.

```sh
origin admin update-project --org-id <org-id> --id <project-id> \
  --name "Web shop (production)"
```

To rename the organization, use `origin admin update-organisation --org-id <org-id> --name <name>`.

## Change a project’s billing account [#change-a-projects-billing-account]

A project is always charged to exactly one billing account of its organization. To charge it to another one, call the `linkProjectToBillingAccount` mutation in the `admin` namespace with `orgId`, `projectId` and `billingAccountId`. It replaces the current link; there’s no way to leave a project without a billing account.

This needs the `admin.project.attach` permission, which the Owner role has. It doesn’t need access to the billing account itself. See [Billing access](/docs/platform/billing/billing-access).

## Delete a project [#delete-a-project]

Deleting a project is refused while it still owns any of these resources. Nothing is deleted on your behalf.

- An instance that isn’t terminated.
- An image or a key pair.
- A volume or snapshot that isn’t deleted.
- A NAT gateway or an allocated Floating IP.
- A VPC, including the default VPC that a launch created.

1. Delete every resource in the project: terminate its instances, delete its images, key pairs, volumes and snapshots, delete its NAT gateways, release its Floating IPs, and delete its VPCs.
1. Delete the project:

   ```sh
   origin admin delete-project --org-id <org-id> --id <project-id>
   ```

1. Verify that the project is no longer listed by `origin admin list-projects --org-id <org-id>`.

If a resource remains, the request fails with `BAD_REQUEST`, naming every kind of resource the project still owns, in the order to remove them:

```text
invalid input on field project_id: cannot delete project: it still owns at least one instance, one snapshot and one Floating IP
```

Deleting a project also removes the quota budgets you set on it, and every role assignment scoped to it, for every member and service account. Org-wide role assignments are unaffected. See [Role assignments and scopes](/docs/iam/access-model#role-assignments-and-scopes).

## Delete an organization [#delete-an-organization]

An organization can be deleted only when it has no projects left. Delete every project first, then run:

```sh
origin admin delete-organisation --org-id <org-id>
```

While projects remain, the request fails with `BAD_REQUEST` and says how many. Billing accounts that no project is linked to don’t block the deletion.

## Related [#related]

- [Organizations and projects](/docs/platform/organizations)
- [Platform CLI commands](/docs/platform/reference/cli)
- [Limits](/docs/platform/reference/limits)

