Getting started

  1. Create an account on the site.
  2. Activate a monthly Premium subscription.
  3. On the API keys page, create a key and save it immediately.
  4. Send the key with every request to the base URL below.

Current monthly API job limit: 500. Jobs created from the website do not count against this quota.

Authentication

Send the key as an Authorization Bearer token, or as the X-Api-Key header. Keys start with cdlive_ and are shown only once.

Base URL: https://check0ver.com/Decrypter/public/api/v1

Authorization: Bearer cdlive_xxxxxxxx
X-Api-Key: cdlive_xxxxxxxx

If a key is lost, revoke it and create a new one. Do not share it publicly.

Typical workflow

  1. Find the app with GET /search?q=…&store=us or sa, or POST /lookup with a URL or track_id.
  2. Create the job with POST /jobs, the desired version, and optional tweaks or IPA options.
  3. Poll GET /jobs/{id} every few seconds until status is completed or failed.
  4. When completed, download the IPA from download_url.

Endpoints

Method Path Description
GET/search?q=…&store=usSearch apps by name in a store (count from site settings)
POST/lookupFetch app details and the last 5 versions
POST/jobsCreate a new decrypt job
GET/jobsList jobs. Optional ?source=api or ?limit=30
GET/jobs/{id}One job’s status and download URL when ready
GET/accountSubscription and monthly usage
GET/tweaksPreset tweak slugs for the tweaks array

Examples

Search apps by name

curl "https://check0ver.com/Decrypter/public/api/v1/search?q=whatsapp&store=us" \
  -H "Authorization: Bearer YOUR_API_KEY"

Look up an app

curl -X POST "https://check0ver.com/Decrypter/public/api/v1/lookup" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"track_id":"310633997","store":"us"}'

Create a decrypt job

curl -X POST "https://check0ver.com/Decrypter/public/api/v1/jobs" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://apps.apple.com/us/app/id310633997","store":"us","version":"25.1.80","tweaks":[],"ipa_options":{"fix_extensions":true}}'

Job status

curl "https://check0ver.com/Decrypter/public/api/v1/jobs/123" \
  -H "Authorization: Bearer YOUR_API_KEY"

Account and usage

curl "https://check0ver.com/Decrypter/public/api/v1/account" \
  -H "Authorization: Bearer YOUR_API_KEY"

Create-job response shape

{
  "ok": true,
  "job": {
    "id": 123,
    "status": "queued",
    "progress": 0,
    "message": "Job queued",
    "app_name": "WhatsApp",
    "bundle_id": "net.whatsapp.WhatsApp",
    "version": "25.1.80",
    "store": "us",
    "download_url": null,
    "error": null
  }
}

Create-job fields

Field Description
q / termSearch text (min 2 characters) — GET /search
url / track_idApp Store url or track_id (one required)
storeus or sa. If the URL includes a country code, that wins
versionVersion string. If omitted, the latest version is used
version_indexVersion index from lookup if you do not send version
tweaksArray of slugs or filenames from GET /tweaks
ipa_optionsIPA options object. Defaults are used if omitted

ipa_options keys: fix_extensions, remove_plugins, remove_extensions, min_os_enabled, min_os_version, document_browser.

Response language: ?lang=ar or en, or the X-Lang header. API defaults to English.

Custom dylib uploads are web-only. From the API, use preset slugs from GET /tweaks.

Job statuses

Status Description
queuedQueued, waiting for the worker
preparing / processingDownloading, decrypting, or uploading
completedDone. download_url is ready
failedFailed. Check the error field

Poll GET /jobs/{id} until status is completed, then use download_url.

Errors

Every error is JSON with ok=false, a code, and an error message.

{
  "ok": false,
  "code": "unauthorized",
  "error": "Invalid API key."
}
Code HTTP Description
unauthorized401Invalid API key.
subscription_required403An active Premium subscription is required to use the API.
monthly_limit429You have reached this month’s API job limit.
queue_full429Your job queue is full. Wait for a current job to finish.
bad_url422Invalid App Store URL.
app_not_found404The app was not found in this store.
version_gone422That version is not in the last 5 releases.