Organic rankings against Google Shopping presence
https://seolyticize.com /api/v1/tools/get_shopping_keyword_gap The client's ranked organic keywords (as last synced, top organicTop positions) and any keywords given, against whether its products showed in the Google Shopping pages captured by get_shopping_serp in the last days, in four groups, each with what to do: both (defend), organic_only (ranks but no product listed — list it in Merchant Center), shopping_only (a product listed but no organic ranking — build the page) and neither. Organic keywords never captured in Shopping are listed apart as unchecked, to queue with check_shopping_serp (paid). Matched on the seller names given (default the client's name) and the client's domain. Answers 'where do we rank but not sell in Shopping' and 'which Shopping keywords need a page'. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredkeywordsstring[]sellersstring[]organicTopintegerdaysintegerlimitinteger{
"clientId": "string",
"keywords": [],
"sellers": [],
"organicTop": 20,
"days": 90,
"limit": 500
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/get_shopping_keyword_gap" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","keywords":[],"sellers":[],"organicTop":20,"days":90,"limit":500}'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/get_shopping_keyword_gap
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/get_shopping_keyword_gap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_shopping_keyword_gap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_shopping_keyword_gap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_shopping_keyword_gap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_shopping_keyword_gap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/get_shopping_keyword_gap
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger