---
title: "Create a new app"
method: POST
path: "/v1/apps/"
---

# Create a new app

`POST /v1/apps/`

## Request

- Base URL: `https://app.iconik.io/API/auth`
- URL: `https://app.iconik.io/API/auth/v1/apps/`
- Auth: none declared. Required headers: `App-ID`, `Auth-Token`
- TypeScript: <https://skmtc.dev/iconik/apis/iconik-auth/docs/v1/apps/post.ts> (a function with typed inputs; its response is checked against the schema)

Required roles:
 - can_write_apps

## Headers

- `App-ID` string, required
- `Auth-Token` string, required

## Request body

- AppCreateSchema
  - `allowed_origins` string[]
  - `allowed_scopes` string[]
  - `client_id` string, nullable
  - `client_secret` string
  - `date_created` string, date-time
  - `date_modified` string, date-time
  - `default_user_id` string, uuid, nullable
  - `description` string, nullable
  - `id` string, uuid
  - `name` string, required
  - `oauth_client_type` 'public' | 'confidential', nullable
  - `redirect_uris` string[]
  - `system_domain_id` string, uuid
  - `type` 'PAT' | 'OAUTH'
  - `url` string, url, nullable

## Response `201`

Returns a created app

- AppCreateSchema
  - `allowed_origins` string[]
  - `allowed_scopes` string[]
  - `client_id` string, nullable
  - `client_secret` string
  - `date_created` string, date-time
  - `date_modified` string, date-time
  - `default_user_id` string, uuid, nullable
  - `description` string, nullable
  - `id` string, uuid
  - `name` string, required
  - `oauth_client_type` 'public' | 'confidential', nullable
  - `redirect_uris` string[]
  - `system_domain_id` string, uuid
  - `type` 'PAT' | 'OAUTH'
  - `url` string, url, nullable

## Other responses

- `400`: Bad request
- `401`: Token is invalid
- `default`: Error response

---

[API](https://skmtc.dev/iconik/apis/iconik-auth.md) - [All operations](https://skmtc.dev/iconik/apis/iconik-auth/llms.txt) - [OpenAPI document](https://skmtc.dev/iconik/apis/iconik-auth/revisions/5dde985bb742?raw)
