GS Store API

Play Store keyword ranking data service with token authentication, 5-hour cache lookup, Play Store fallback search, per-keyword email tracking, and app count metadata.

Data endpoints require Authorization: Bearer <token>. Query params use country and either lang or language; email and emails are accepted and stored internally without being returned.
Retention job: every day at 11:55 PM IST, all rows are copied into rank_data and play_store_ranks is cleared.

Endpoints

POST /api/data/bulk/

Bulk insert keyword rows. Each item needs keyword and list-valued data; rows are stored only when app_count is at least 7. Omitted dates default to today's IST date.

body[{"keyword":"upi","data":[...]}] param?country=in param?lang=en param[email protected]
POST /api/data/query/

Return cached rows from the last 5 hours for a keyword list, filtered by country, language, and optional date. If date is omitted, today's IST date is used. This endpoint does not call the Play Store service.

body["upi","wallet"] param?country=in param?lang=en param?date=2026-06-12 returnsapp_count
GET /api/data/search/

Single keyword lookup. Checks cache from the last 5 hours for the requested date first, then fetches from Play Store if missing or stale. If refresh fails, stored data is returned when available. If date is omitted, today's IST date is used.

param?keyword=payment app param?country=in param?lang=en param?date=2026-06-12 storeswhen app_count >= 7
POST /api/data/search/

Bulk keyword lookup. Keywords cached in the last 5 hours return from DB for the requested date; missing or stale keywords are fetched concurrently from Play Store and returned in request order, with stored data used as fallback when refresh fails.

body["upi","wallet"] param?country=in param?lang=en param?date=2026-06-12 threads10
GET /api/rank-data/

Read archived rank rows from rank_data. Supports limit-only, single-date, single-date with limit, range, and range with limit.

param?limit=100 param?date=2026-06-12 param?start_date=2026-06-01 param?end_date=2026-06-13
POST /api/rank-data/results/

Bulk exact-match lookup for archived rank rows from rank_data. Keyword matching ignores case; omitted country, language, or date filters return all stored values. The response excludes internal IDs.

body["upi","wallet"] param?country=in param?lang=en param?date=2026-06-12 noid/original_id