---
title: "Create a Schema App"
method: POST
path: "/schema/apps"
tags: ["SchemaApps"]
---

# Create a Schema App

`POST /schema/apps`

## Request

- Base URL: `https://api.smartthings.com/v1`
- URL: `https://api.smartthings.com/v1/schema/apps`
- Auth: none declared. Required headers: `Authorization`
- TypeScript: <https://skmtc.dev/smartthings/apis/smartthings-api/docs/schema/apps/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a new SmartThings Schema App.
When using a Personal Access Token, `userId` should not be provided in the body as this will be obtained from the access token.

## Headers

- `Authorization` string, Bearer token, required
- `X-ST-Organization` string, organizationId

## Request body

- PostEndpointApp
  - `appName` string, required: The name of your SmartThings Schema App
  - `partnerName` string, required: The name of your brand or organization
  - `oAuthAuthorizationUrl` string, required: OAuth authorization url provided by your OAuth application
  - `lambdaArn` string: Lambda ARN of your Cloud Connector in the US region (default). Required if your Cloud Connector uses AWS Lambda.
  - `lambdaArnEU` string: Lambda ARN for the EU region
  - `lambdaArnAP` string: Lambda ARN for the AP region
  - `lambdaArnCN` string: Lambda ARN for the CN region
  - `icon` string: The URL of your integration icon. This icon will be displayed to end users.
  - `icon2x` string: The URL of your integration icon @ 2x dimension
  - `icon3x` string: The URL of your integration icon @ 3x dimension
  - `endpointAppId` string: Your SmartThings Schema App ID
  - `oAuthClientId` string, required: The Client ID for your OAuth client
  - `oAuthClientSecret` string, required: The Client secret for your OAuth client
  - `oAuthTokenUrl` string, required: The OAuth token refresh URL of your OAuth client
  - `oAuthScope` string: Your OAuth client scope. Example "remote_control:all".
  - `userId` string: Your user id
  - `hostingType` string, required: Possible values - "lambda" or "webhook"
  - `schemaType` string: Possible values - "alexa-schema", "st-schema", "google-schema"
  - `webhookUrl` string: Webhook URL where your Cloud Connector will receive events. Required if your Cloud Connector uses a webhook endpoint.
  - `certificationStatus` string: Possible values - "", "cst", "wwst", "review"
  - `userEmail` string, required: The email where SmartThings may contact you regarding your Schema integration.
  - `viperAppLinks` ViperAppLinks
    - `android` string: app deep linking to partners in android
    - `ios` string: app deep linking to partners in ios
    - `isLinkingEnabled` boolean: whether deep app linking is enabled

## Response `200`

Success

- PostReceipt
  - `endpointAppId` string, uuid
  - `stClientId` string, uuid
  - `stClientSecret` string, uuid

## Other responses

- `400`: BadRequest
- `401`: Unauthorized
- `403`: Forbidden
- `500`: InternalServiceError

## Changes

- **2025-05-16** `b04d2dce35dd`: 1 info
  - added the new optional `header` request parameter `X-ST-Organization`
- **2022-12-19** `adcacfc2749d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/smartthings/apis/smartthings-api/changes/schema/apps/post.md)

---

[API](https://skmtc.dev/smartthings/apis/smartthings-api.md) - [All operations](https://skmtc.dev/smartthings/apis/smartthings-api/llms.txt) - [OpenAPI document](https://skmtc.dev/smartthings/apis/smartthings-api/revisions/2788a4236800?raw)
