Score an app's store listing
https://seolyticize.com /api/v1/tools/score_app_metadata Scores an App Store or Google Play listing for search: the title's length and whether it carries the target keywords, the subtitle (App Store) or short description (Play), the description's length and keyword use, screenshots, rating, ratings count and how recently it was updated — each pass, warn or fail with the reason — and, per keyword, where the listing uses it. App Store listings are read from Apple's free lookup API; a Play listing is read through DataForSEO's App Data, which queues the read: when it is not back within half a minute the answer is pending with a taskId to pass again. Answers 'how good is our app listing' and 'is our keyword in the title'. App Store: free. Google Play: A paid lookup on the client's account (spend says how much); quote it with estimate_cost.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredstorestringrequiredappIdstringrequiredkeywordsstring[]locationCodeintegerlanguageCodestringtaskIdstringmaxCostMicrosintegerdryRunboolean{
"clientId": "string",
"store": "app_store",
"appId": "string",
"keywords": [],
"locationCode": 2840,
"languageCode": "en",
"taskId": null,
"maxCostMicros": 0,
"dryRun": true
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/score_app_metadata" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","store":"app_store","appId":"string","keywords":[],"locationCode":2840,"languageCode":"en","taskId":null,"maxCostMicros":0,"dryRun":true}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
data, and its meta.Example
{
"data": {},
"meta": {
"requestId": "string",
"costMicros": 0,
"cached": true,
"cachedFrom": "string",
"dataAsOf": "string",
"sources": [
"string"
],
"partial": true,
"next": [
{
"tool": "string",
"args": {},
"why": "string"
}
],
"nextCursor": "string",
"dryRun": true
}
}Schema
datarequiredmetaobjectrequiredShow child parameters
requestIdstringrequiredcostMicrosintegerrequiredcachedbooleanrequiredcachedFromstringdataAsOfstringsourcesstring[]partialbooleanrequirednextobject[]requiredShow child parameters
toolstringargsobjectwhystringnextCursorstringdryRunbooleanX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerX-Request-IdstringExample
{
"error": "string",
"code": "string",
"next": "string",
"requestId": "string"
}Schema
errorstringrequiredcodestringnextstringrequestIdstringX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/score_app_metadata
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/score_app_metadata
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/score_app_metadata
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/score_app_metadata
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/score_app_metadata
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/score_app_metadata
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/score_app_metadata
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger