---
title: "Set up org"
method: POST
path: "/orgs/setup_org/v1"
tags: ["/orgs", "/orgs/org_public_data"]
---

# Set up org

`POST /orgs/setup_org/v1`

Single onboarding entry point. Sets `org_type` in WorkOS JWT metadata (immutable once set) and idempotently creates `org_private_data` + `org_public_data` for the caller's organization. Required `name` and optional `description` and `handle` populate the public doc on first call; later updates go through PATCH /orgs/org_public_data/v1. Returns True on success (including idempotent retries), 400 on org_type conflict or handle collision. | (SetupOrgReq) -> (bool)

## Request body

- SetupOrgReq
  - `org_type` 'provider' | 'shipper' | 'vendor', required
  - `name` string, required
  - `description` string, nullable
  - `handle` string, nullable — Must be a string starting with `@`. May only contain a-z, A-Z, 0-9, _, -. May not be longer than 30 characters.

## Response `200`

Successful Response

- boolean

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/chrt/apis/chrt-fastapi.md) · [All operations](https://skmtc.dev/chrt/apis/chrt-fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/chrt/chrt-fastapi/revisions/ea04e157edb3/schema)
