---
title: "Convert your own account into an organization."
method: POST
path: "/v1/org/convert"
tags: ["org"]
---

# Convert your own account into an organization.

`POST /v1/org/convert`

## Request

- Base URL: `https://api.smolmachines.com`
- URL: `https://api.smolmachines.com/v1/org/convert`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/smolmachines/apis/smolfleet-api/docs/v1/org/convert/post.ts> (a function with typed inputs; its response is checked against the schema)

Makes the caller's own account an organization in place, with them as its owner; its machines, keys, registry entries, balance and card are unchanged. Requires a user login, not an API key.

## Request body

- ConvertOrgRequest: `POST /v1/org/convert` turns the caller's own account into an organization in place.
  - `displayName` string, required: Human readable name, shown in the console, trimmed to 1 to 100 characters.

## Response `200`

The caller's own account is now an organization with them as its owner; its machines, keys, registry entries, balance and card are unchanged.

- OrgSummary: Summary of the caller's org context driving the console's member UI.
  - `canManageMembers` boolean, required: True when the caller may invite/change-role/remove members (owner/admin).
  - `displayName` string, nullable: The display name the owner may rename; null when the account is not an organization.
  - `isOrganization` boolean, required: True when the account is an organization (vs an individual login).
  - `name` string, nullable: The slug, unique and final once chosen; null when the account is not an organization.
  - `quota` OrgQuota: An organization's limits and usage, counted once across every member's machines.
    - `machines` integer, required: How many machines it has now, by the same count the refusal reports.
    - `running` integer, required: How many are running now, by the concurrency cap's own predicate.
  - `tenantId` string, nullable: The org's tenant id for `Smol-Tenant`; null when the account is not an organization.

## Other responses

- `400`: A display name outside 1 to 100 characters after trimming
- `401`: Missing or invalid API key
- `402`: The account has no card on file, which an organization needs before it can create anything
- `403`: The caller authenticated with an API key, or is working in an account other than their own
- `409`: The account is already an organization
- `429`: Rate limited; retry after the Retry-After header
- `500`: Internal error

## Changes

- **2026-10-16** `bc31fc04a568`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/smolmachines/apis/smolfleet-api/changes/v1/org/convert/post.md)

---

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