---
title: "Update organization"
method: PATCH
path: "/v1/organizations/{id}"
tags: ["Organizations"]
---

# Update organization

`PATCH /v1/organizations/{id}`

## Request

- Base URL: `https://api.astrocal.dev`
- URL: `https://api.astrocal.dev/v1/organizations/{id}`
- Auth: HTTP bearer

Updates an organization's name, slug or default calendar. Send `complete_onboarding: true` to mark the first-login onboarding flow as done — the API sets the timestamp itself and repeat calls keep the first one. `mark_booking_link_shared`, `mark_availability_confirmed` and `dismiss_checklist` work the same way for the dashboard getting-started checklist, as does `mark_first_booking_celebrated` for the first-booking celebration. Service key authentication required. Called by the dashboard settings page.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `name` string
  - `slug` string
  - `default_calendar_connection_id` string, uuid, nullable
  - `complete_onboarding` boolean
  - `mark_booking_link_shared` boolean
  - `mark_availability_confirmed` boolean
  - `dismiss_checklist` boolean
  - `mark_first_booking_celebrated` boolean

## Response `200`

Organization updated

- object
  - `id` string, uuid, required
  - `name` string, required
  - `slug` string, required
  - `owner_user_id` string, nullable, required
  - `default_calendar_connection_id` string, uuid, nullable, required
  - `onboarding_completed_at` string, nullable, required
  - `created_at` string, required
  - `updated_at` string, required

## Other responses

- `400`: Validation error
- `401`: Unauthorized — invalid or missing service key
- `404`: Organization not found
- `409`: Conflict — slug already exists

---

[API](https://skmtc.dev/astrocal/apis/astrocal-api.md) · [All operations](https://skmtc.dev/astrocal/apis/astrocal-api/llms.txt) · [OpenAPI document](https://skmtc.dev/astrocal/apis/astrocal-api/revisions/3b953e19a348?raw)
