Create app
Create an app within a project. The app is created with default production and preview environments.
Set exactly one source. Use git to create a GitHub-sourced app and connect its repository. Use oci to create an app from a prebuilt OCI image.
The slug you provide is the stable, caller-defined handle used to reference this app. It must be unique within the project.
Important: The slug cannot collide with an existing app in the same project. A duplicate slug returns a 409 conflict.
Required Permissions
Your root key must have one of the following permissions:
project.*.create_app(to create apps in any project)project.<project_id>.create_app(to create apps in a specific project)
Authorizations
Unkey uses bearer tokens for authentication. Public integrations use root keys, while the dashboard proxy uses short-lived JWTs. To authenticate, include the token in the Authorization header of each request:
Root keys have specific permissions attached to them, controlling what operations they can perform. Legacy permissions use tuple strings like api.*.create_key; resource permissions use Unkey Resource Names plus actions, like unkey:v1:ws_123:keyspaces/*#create_key.
Security best practices:
- Keep root keys secure and never expose them in client-side code
- Use different root keys for different environments
- Rotate keys periodically, especially after team member departures
- Create keys with minimal necessary permissions following least privilege principle
- Monitor key usage with audit logs.
Body
- Option 1
- Option 2
Create an app with exactly one source: git or oci. Requests that omit a
source or provide both sources are rejected.
Identifies a resource by either its unique ID or its slug. Accepts a prefixed ID (such as 'proj_' or 'app_') or a slug.
3 - 255^[a-zA-Z0-9_-]+$"proj_1234abcd"
Human-readable name for this app.
1 - 256"Payments API"
Identifies a resource by either its unique ID or its slug. Accepts a prefixed ID (such as 'proj_' or 'app_') or a slug.
3 - 255^[a-zA-Z0-9_-]+$"proj_1234abcd"
Configure Git as the app source. Provide repository to connect it during
creation, or use an empty object to connect a repository later.
An app's OCI image source.
Response
App created successfully. The response contains the app id used to reference it in subsequent operations.