---
title: "Create a child app for the current tenant actor (v2)"
method: POST
path: "/v2/apps"
tags: ["Apps"]
---

# Create a child app for the current tenant actor (v2)

`POST /v2/apps`

## Request

- Base URL: `https://api.chat.ethora.com`
- URL: `https://api.chat.ethora.com/v2/apps`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

**Auth**: Tenant Actor

Creates an app under the current tenant / parent app context.
Supports `User JWT` and `B2B Server JWT`.

## Request body

- object
  - `displayName` string, required: Human-readable app name shown in the admin panel, sign-up screens, and chat headers. 3-100 chars.
  - `domainName` string: Subdomain used for the hosted app at `<domainName>.<rootDomain>`. Alphanumeric only (no dashes); must be unique across the platform.
  - `appTagline` string: Short marketing line shown beneath the display name on the sign-up screen. Free-form.
  - `logoImage` string: Main app logo. POST/PUT accept either a file upload (multipart) or a URL (JSON). 1:1 ratio recommended, displayed at 120x120 px in the admin panel.
  - `sublogoImage` string: Optional secondary logo / favicon. Same input shapes as `logoImage`.
  - `primaryColor` string: Brand colour as a 6-digit hex string (e.g. `#0052CD`). Used as the accent throughout the chat UI.
  - `bundleId` string: iOS/Android bundle identifier in reverse-DNS form (e.g. `com.acme.chat`). Required for native push notifications.
  - `createDefaultChat` boolean: If true, the app will be seeded with a "Main chat" default chat room available to all users. Used when creating new apps manually from within admin panel.

## Response `200`

ok

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `422`: Unprocessable Entity
- `500`: Internal Server Error

---

[API](https://skmtc.dev/ethora/apis/platform-api.md) · [All operations](https://skmtc.dev/ethora/apis/platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ethora/apis/platform-api/revisions/01b6e64378ee?raw)
