Store and version your App Store metadata — title, subtitle, description, and keywords — directly through the API. Versions appear in the Versions tab of the appeeky.com dashboard.
All Metadata Version endpoints cost 0 credits and require the apps:read scope for reads and apps:write for writes.
List Versions
GET /v1/user/apps/:appId/versions
Returns all saved metadata versions for an app, ordered newest first.
Path Parameters:
| Name | Type | Description |
|---|
appId | number | Numeric App Store ID of your tracked app |
curl "https://api.appeeky.com/v1/user/apps/6443843426/versions" \
-H "X-API-Key: YOUR_API_KEY"
Response (200 OK):
{
"data": [
{
"id": "b5c2e891-...",
"version_name": "v2.1 Spring",
"title": "Appeeky – ASO Intelligence",
"subtitle": "Keyword & Rank Tracker",
"description": "Track your keywords and grow your App Store rank...",
"keywords": "aso, keyword tracker, app store optimization",
"language": "en-US",
"is_released": false,
"released_at": null,
"created_at": "2026-03-19T15:47:06.270736+00:00"
}
]
}
Create a Version
POST /v1/user/apps/:appId/versions
Save a new set of metadata as a named version.
Path Parameters:
| Name | Type | Description |
|---|
appId | number | Numeric App Store ID of your tracked app |
Request Body:
| Field | Type | Required | Description |
|---|
versionName | string | Yes | A label for this version (e.g. "v2.1 Spring") |
title | string | No | App title (max 30 chars for App Store) |
subtitle | string | No | App subtitle (max 30 chars) |
description | string | No | Full app description |
keywords | string | No | Comma-separated keyword field |
language | string | No | Locale code (default: "en-US") |
curl -X POST "https://api.appeeky.com/v1/user/apps/6443843426/versions" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"versionName": "v2.1 Spring",
"title": "Appeeky – ASO Intelligence",
"subtitle": "Keyword & Rank Tracker",
"keywords": "aso, keyword tracker, app store optimization",
"language": "en-US"
}'
Response (201 Created): Returns the created version row.
Update a Version
PATCH /v1/user/apps/:appId/versions/:versionId
Update any metadata field on an existing version. Only include the fields you want to change.
Path Parameters:
| Name | Type | Description |
|---|
appId | number | Numeric App Store ID of your tracked app |
versionId | string | UUID of the version to update |
Request Body: Same optional fields as Create (all optional).
curl -X PATCH "https://api.appeeky.com/v1/user/apps/6443843426/versions/b5c2e891-..." \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"keywords": "aso tool, keyword rank, app growth"}'
Response (200 OK): Returns the updated version row.
Mark a Version as Released
POST /v1/user/apps/:appId/versions/:versionId/release
Mark a metadata version as the currently released version. Sets is_released = true and records a released_at timestamp.
Path Parameters:
| Name | Type | Description |
|---|
appId | number | Numeric App Store ID of your tracked app |
versionId | string | UUID of the version to mark as released |
curl -X POST "https://api.appeeky.com/v1/user/apps/6443843426/versions/b5c2e891-.../release" \
-H "X-API-Key: YOUR_API_KEY"
Response (200 OK): Returns the updated version row with is_released: true.
Errors
| Status | Code | When |
|---|
| 400 | BAD_REQUEST | versionName missing on create, or appId not a number |
| 403 | FORBIDDEN | Key scope does not allow this operation |
| 404 | USER_APP_NOT_FOUND | appId is not in your tracked list |
| 404 | NOT_FOUND | Version not found |