---
title: "Create or Update Tenant"
method: PUT
path: "/tenants/{tenant_id}"
tags: ["Tenants"]
---

# Create or Update Tenant

`PUT /tenants/{tenant_id}`

Idempotently creates or updates a tenant. Required before associating destinations.

## Request body

- TenantUpsert
  - `metadata` object, nullable — Optional metadata to store with the tenant.

## Response `200`

Tenant updated details.

- Tenant
  - `id` string — User-defined system ID for the tenant.
  - `destinations_count` integer — Number of destinations associated with the tenant.
  - `topics` string[] — List of subscribed topics across all destinations for this tenant.
  - `metadata` object, nullable — Arbitrary key-value pairs for storing contextual information about the tenant.
  - `created_at` string, date-time — ISO Date when the tenant was created.
  - `updated_at` string, date-time — ISO Date when the tenant was last updated.

## Other responses

- `201` — Tenant created details.

## Changes

- **2026-01-14** `07bb5388b476` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/hookdeck/apis/outpost-api/changes/tenants/:tenant_id/put.md)

---

[API](https://skmtc.dev/hookdeck/apis/outpost-api.md) · [All operations](https://skmtc.dev/hookdeck/apis/outpost-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/hookdeck/outpost-api/revisions/ebae0d307cd7/schema)
