Eligapris Store

Developer platform

Store API

Catalog reads are public. Publishing and managing your apps use a session with developer mode, or an approved egk_ API key. Base URL: https://store.eligapris.com

Overview

The Eligapris Store API powers the web catalog and the Android client. Public GET responses use lean catalog DTOs (different field names than our internal storage) so clients get only what they need to browse and install. Use authenticated endpoints to automate APK uploads from CI, manage your own apps, and choose public or unlisted (link-only) visibility.

Public reads

List and fetch published apps without credentials.

Authenticated writes

Publish and update with developer mode or an API key.

Review pipeline

First listings go pending; updates to live apps stay published.

Access

  1. 1Create an account and verify your email.
  2. 2Open Account and enable developer mode.
  3. 3Go to API keys. Admins create a key instantly; other developers request one for admin approval, then reveal it once.
  4. 4Call the API with Authorization: Bearer egk_… or use your browser session on this site.

Authentication

Prefer API keys for automation. Keys are hashed at rest (max 3 active). Never commit plaintext keys.

HTTP header
Authorization: Bearer egk_<your_secret>
Environment
export ELIGAPRIS_STORE_BASE_URL="https://store.eligapris.com"
export ELIGAPRIS_STORE_API_KEY="egk_…"
export BASE="$ELIGAPRIS_STORE_BASE_URL"

Endpoints

All paths are relative to the store origin. JSON unless noted.

GET/api/v1/catalogAuth: None

List public catalog apps (lean DTOs)

Full public catalog for tools and integrations. The official Android Store app does not use this path — it uses /api/client/v1. Legacy /api/v1/apps only returns Eligapris Store for old clients updating themselves.

Query parameters

  • qSearch title, package, tags, id, publisher
  • categoryExact category filter (e.g. Tools)
  • sortdefault | downloads | rating | updated | name | hot
  • featuredtrue to only featured listings
  • limitMax results (default 100)
curl
curl -sS "$BASE/api/v1/catalog?sort=updated&limit=20" | jq .
GET/api/v1/catalog/:idAuth: None

Get one catalog item by id

Lean catalog item DTO ({ item }). For the official Android client use /api/client/v1 instead.

curl
curl -sS "$BASE/api/v1/catalog/eligapris-store" | jq .
GET/api/v1/appsAuth: None

Legacy Store client — Store app only

Backward-compat for pre–Client Channel Android installs. Returns only eligapris-store in the old apps/data field shape so users can update. Not for new clients or full catalog browsing.

curl
curl -sS "$BASE/api/v1/apps" | jq .
GET/api/v1/apps/mineAuth: Session or API key

List your own apps

Includes draft, pending, rejected, and published listings you own — with status and visibility.

curl
curl -sS -H "Authorization: Bearer $ELIGAPRIS_STORE_API_KEY" \
  "$BASE/api/v1/apps/mine" | jq .
POST/api/v1/publishAuth: Developer mode session or API key (apps:write)

Create or update a listing

multipart/form-data. New third-party apps go pending review. Already-published updates stay live. Admins publish immediately.

meta JSON (multipart field)

JSON
{
  "slug": "my-app",
  "name": "My App",
  "shortDescription": "At least ten characters…",
  "description": "Full markdown description…",
  "whatsNew": "Required when versionCode increases",
  "category": "Tools",
  "tags": ["offline"],
  "visibility": "public",
  "replaceScreenshots": false,
  "unpublish": false
}
curl
curl -sS -X POST "$BASE/api/v1/publish" \
  -H "Authorization: Bearer $ELIGAPRIS_STORE_API_KEY" \
  -F 'meta={"slug":"my-app","name":"My App","shortDescription":"Short description here","description":"Full description with enough length for review.","whatsNew":"Initial Store release","category":"Tools","tags":["tools"],"visibility":"public"}' \
  -F "apk=@./my-app.apk" \
  -F "icon=@./icon-512.png" \
  -F "featureGraphic=@./feature.png" \
  -F "screenshots=@./01.png" \
  -F "screenshots=@./02.png" \
  -F "screenshots=@./03.png"
GET/api/v1/auth/meAuth: Session or API key

Current account

Returns the signed-in developer profile, or { developer: null }.

curl
curl -sS -H "Authorization: Bearer $ELIGAPRIS_STORE_API_KEY" \
  "$BASE/api/v1/auth/me" | jq .
GET/api/v1/developer/api-keysAuth: Developer mode session

List your API keys & requests

Shows key prefixes, status, and whether a one-time reveal is still available. Admins can create keys instantly via POST.

curl
curl -sS -b cookies.txt "$BASE/api/v1/developer/api-keys" | jq .

Publish details

Multipart fields

  • meta — required JSON string
  • apk — required for new apps; .apk only
  • icon — optional png/jpg/webp
  • featureGraphic — optional
  • screenshots — up to 10 images

Visibility & status

  • public — catalog, browse, sitemap
  • unlisted — link-only; GET by id still works
  • First submit → pending
  • Live app updates stay published
  • Set unpublish: true to draft your listing

Package name is taken from the APK and cannot change after the first upload. versionCodemust increase when shipping a new APK. What's New is required on version bumps.

Errors & limits

StatusMeaning
400Invalid meta, APK, or images
401Missing or invalid session / API key
403Blocked, no developer mode, or wrong ownership
409Package clash or too many keys / pending request
429Publish rate limit (~20/hour per developer)

Default max APK size is 200MB (MAX_APK_BYTES). Legacy shared publish tokens are disabled unless explicitly enabled on the server.

Try the API

Checking session…