Skip to main content
POST
/
apps
/
create
Create App
curl --request POST \
  --url https://api.docketqa.com/apps/create \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api-key>' \
  --data '
{
  "name": "<string>",
  "platform": "<string>",
  "build_name": "<string>",
  "s3_key": "<string>",
  "file_size": 123,
  "original_filename": "<string>"
}
'
Register a new mobile app with its first build. The first build becomes the active build. Call POST /apps/upload-url first to obtain an s3_key.

Request body

name
string
required
Unique per platform. Max 255 chars.
platform
string
required
"android" or "ios".
build_name
string
required
Name for the first build (e.g. version or commit SHA). Max 255 chars.
s3_key
string
required
From POST /apps/upload-url. Must belong to your company.
file_size
integer
required
Bytes uploaded.
original_filename
string
Used to preserve the file extension in the stored object name.
{
  "name": "Acme Mobile",
  "platform": "android",
  "build_name": "v1.0.0",
  "s3_key": "files/2/4f8e1c2a-..._acme.apk",
  "file_size": 84213120,
  "original_filename": "acme.apk"
}

Response

Returns { message, app } where app includes id, name, platform, current_build (with id, name, arch, file), build_count, created_at, updated_at. arch is auto-detected for Android builds ("arm64", "x86_64", "universal") and is always null for iOS.
{
  "message": "App created successfully",
  "app": {
    "id": 17, "name": "Acme Mobile", "platform": "android", "build_count": 1,
    "current_build": {
      "id": 42, "name": "v1.0.0", "arch": "arm64",
      "file": { "id": 312, "file_name": "Acme_Mobile_android_20260427_140312.apk", "file_size": 84213120 }
    }
  }
}

Errors

StatusCause
400Missing/invalid field, bad extension, or 32-bit-only Android binary.
403No mobile concurrency on plan, or s3_key not owned by your company.
409An app with the same name already exists for this platform.