Every endpoint of the AppSkyline REST API, generated from the API itself.
All endpoints are relative to https://api.appskyline.com. Create an API key in your AppSkyline dashboard, then authenticate every request with it.
apiKey — HTTP Basic auth carrying only the API key secret: Authorization: Basic base64(<key secret>).
accessToken — Operator session token issued by the AppSkyline dashboard: Authorization: Token <access token>.
Download the OpenAPI specification for use with your own tooling.
Apple App Store engagement rows
Downloads/sessions engagement rows for your organization, optionally filtered by appId and a days cutoff. Requires the stats:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| appId | query | string | |
| days | query | integer |
| Status | Meaning |
|---|---|
| 200 | Array of engagement rows |
| 403 | API key is missing the stats:read scope |
| 429 | API key rate limit exceeded |
List apps
Lists the apps of your organization. Requires the apps:read scope.
| Status | Meaning |
|---|---|
| 200 | Array of apps |
| 401 | Missing or invalid credentials |
| 403 | API key is missing the apps:read scope |
| 429 | API key rate limit exceeded |
Create an app
Requires the apps:write scope.
| Status | Meaning |
|---|---|
| 200 | The created app |
| 403 | API key is missing the apps:write scope |
| 409 | Domain is already taken |
Get an app by id
Requires the apps:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| appIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The app |
| 403 | API key is missing the apps:read scope |
| 404 | No such app in your organization |
Update an app
Requires the apps:write scope.
| Name | In | Type | Description |
|---|---|---|---|
| appIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The updated app |
| 404 | No such app in your organization |
| 409 | Domain is already taken |
List keywords
Lists the tracked keywords of your organization, optionally filtered by appId. Requires the keywords:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| appId | query | string | |
| limit | query | integer | |
| skip | query | integer | |
| sortField | query | string | |
| sortDirection | query | string (ASC | DESC) | |
| fields | query | string | Comma-separated projection of fields to return |
| Status | Meaning |
|---|---|
| 200 | Array of keywords |
| 401 | Missing or invalid credentials |
| 403 | API key is missing the keywords:read scope |
| 429 | API key rate limit exceeded |
Create a keyword
Requires the keywords:write scope.
| Status | Meaning |
|---|---|
| 200 | The created keyword |
| 403 | API key is missing the keywords:write scope |
Get a keyword by id
Requires the keywords:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| keywordIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The keyword |
| 403 | API key is missing the keywords:read scope |
| 404 | No such keyword in your organization |
Update a keyword
Requires the keywords:write scope.
| Name | In | Type | Description |
|---|---|---|---|
| keywordIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The updated keyword |
| 404 | No such keyword in your organization |
Delete a keyword
Requires the keywords:write scope.
| Name | In | Type | Description |
|---|---|---|---|
| keywordIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | Deleted |
| 404 | No such keyword in your organization |
List webhook subscriptions
Webhook subscriptions deliver app.created, app.updated, keyword.created, keyword.updated and keyword.deleted events to your server as signed POST requests (X-Appskyline-Signature: t=<timestamp>,v1=<hex HMAC-SHA256 of "timestamp.body">). An endpoint failing 20 times in a row is disabled automatically. Subscriptions are managed with an operator access token; the secret is only returned once, on create.
| Status | Meaning |
|---|---|
| 200 | Array of webhook subscriptions (without secrets) |
Create a webhook subscription
The response includes the signing secret exactly once — store it; it cannot be retrieved again.
| Field | Type | Description |
|---|---|---|
| urlrequired | string | |
| events | array (app.created | app.updated | keyword.created | keyword.updated | keyword.deleted) | Empty array subscribes to all events |
| Status | Meaning |
|---|---|
| 200 | The created subscription, including its secret |
Update a webhook subscription
url, events and active are editable; the secret and organization are immutable. Re-enabling an auto-disabled endpoint is done by setting active back to true.
| Name | In | Type | Description |
|---|---|---|---|
| webhookSubscriptionIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The updated subscription (without secret) |
Delete a webhook subscription
| Name | In | Type | Description |
|---|---|---|---|
| webhookSubscriptionIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | Deleted |