Agents
One markdown file. Drop it into your agent's skills directory and it knows the whole API — the endpoints, the credit costs, and the handful of things that trip people up. For agents that can run a shell but do not speak MCP, which today is most of them.
mkdir -p .claude/skills/apkcube
curl -sS https://apkcube.com/skill/apkcube.md -o .claude/skills/apkcube/SKILL.md
export APKCUBE_API_KEY="akc_9f3Ka2Lp_xxxxxxxxxxxxxxxxxxxx"# Any agent that reads instruction files: put it where yours looks.
curl -sS https://apkcube.com/skill/apkcube.md -o apkcube.md
export APKCUBE_API_KEY="akc_9f3Ka2Lp_xxxxxxxxxxxxxxxxxxxx"The only thing that decides this is whether your agent can make an HTTP request by itself.
Works
Can read it, cannot run it
You ask for something in plain language; the agent works out the calls. Asking for the newest Signal build, for instance, becomes three requests it makes on its own: search for the package, list its versions, then mint a URL for the one that matches.
BASE="https://apkcube.com/api/v1"
AUTH="Authorization: Bearer $APKCUBE_API_KEY"
curl -sS -H "$AUTH" "$BASE/apps?q=signal" | jq -r '.items[0].packageName'
# org.thoughtcrime.securesms
curl -sS -H "$AUTH" "$BASE/apps/org.thoughtcrime.securesms/versions" \
| jq '.versions[] | select(.arch=="arm64-v8a") | {apkId, versionName, fileSize}'
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
-d '{"apkId":"48211"}' "$BASE/apps/org.thoughtcrime.securesms/download" | jq -r .urlBecause an SDK would be worse here, not because one was too much work.
installs is a string, that XAPKs are not adb install-able, and that a download costs 10 credits so you should check availability first. Those belong in prose an agent reads, not in type signatures.