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

# Create or Update Tenant

`PUT /{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

- **2025-10-28** `21e5498842d3` — 2 info
  - added the optional property `updated_at` to the response with the `200` status
  - added the optional property `updated_at` to the response with the `201` status
- **2025-10-28** `586a323564eb` — 3 info
  - added optional request body
  - added the optional property `metadata` to the response with the `200` status
  - added the optional property `metadata` to the response with the `201` status

[Change history](https://skmtc.dev/hookdeck/apis/outpost-api/changes/: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/71b1a6e5c824/schema)
