RetailRank API

Access comprehensive ecommerce store data programmatically

Getting Started
Get up and running with the RetailRank API in minutes

1. Get your API key

First, you'll need to create an API key from your dashboard.

Manage API Keys

2. Make your first request

Use your API key to make authenticated requests to our endpoints.

curl -X GET "https://retailrank.com/api/v1/store?domain=tonies.com" \
  -H "Authorization: Bearer YOUR_API_KEY"
Authentication
All API requests require authentication using your API key

Include your API key in the Authorization header of every request:

Authorization: Bearer YOUR_API_KEY

Note: Keep your API key secure and never expose it in client-side code.

Rate Limits
API usage limits to ensure fair usage

All API keys are limited to 360 requests per hour, regardless of your plan.

Rate limits are enforced per organization (or per user if not part of an organization). All API keys within the same organization share the same rate limit. If you exceed your limit, you'll receive a 429 status code with the message "Rate limit exceeded. Please try again later."

GET /api/v1/store
Get comprehensive data about an ecommerce store

Parameters

ParameterTypeRequiredDescription
domainstring
Yes
The domain name to look up (e.g., "tonies.com")

Example Request

curl -X GET "https://retailrank.com/api/v1/store?domain=tonies.com" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Success Response

200 OK
when the store is found in our database

{
    "success": true,
    "data": {
        "domain": "https://tonies.com",
        "title": "tonies® - Screen-Free Audio Player for Kids | Fun & Educational Toys",
        "description": "tonies® offers the Toniebox, a screen-free audio player for kids! Enjoy fun, educational storytelling with Tonies audio characters to inspire creativity.",
        "platform": "Shopify",
        "rank": 682,
        "productCount": 619,
        "technologies": [
            "MinMaxify",
            "Yotpo",
            "Swym",
            "Consentmo GDPR Compliance - Consentmo GDPR Compliance"
        ],
        "socialLinks": [
            "https://www.instagram.com/tonies.us/",
            "https://www.facebook.com/tonies.us",
            "https://www.youtube.com/c/toniesUS",
            "https://www.pinterest.com/tonies_official/",
            "https://www.tiktok.com/@tonies.us"
        ],
        "iosApp": null,
        "androidApp": null,
        "lastUpdated": "2025-08-10T15:40:05.480Z"
    }
}

Not Found Response

200 OK
when the store is not in our database

{
  "success": false,
  "data": null,
  "message": "This store is not in our ecommerce database"
}

Error Responses

400 Bad Request

{ "error": "Domain parameter is required" }

401 Unauthorized

{ "error": "Invalid or inactive API key" }

429 Too Many Requests

{ "error": "Rate limit exceeded. Please try again later." }
Response Fields
Understanding the data returned by the API
FieldTypeDescription
domainstringThe canonical domain URL
titlestring | nullThe store's title
descriptionstring | nullThe store's meta description
platformstring | nullThe ecommerce platform used (e.g., "Shopify", "WooCommerce")
ranknumber | nullThe store's RetailRank rank.
productCountnumber | nullThe number of products available in the store. It can be null if not available.
technologiesstring[]List of technologies used by the store
socialLinksstring[]Social media URLs associated with the store
iosAppstring | nulliOS App Store URL if available
androidAppstring | nullGoogle Play Store URL if available
lastUpdatedstringISO 8601 timestamp of when the data was last updated
SDKs and Code Examples
Examples in popular programming languages

JavaScript/Node.js

const response = await fetch('https://retailrank.com/api/v1/store?domain=tonies.com', {
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);

Python

import requests

url = "https://retailrank.com/api/v1/store"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}
params = {"domain": "tonies.com"}

response = requests.get(url, headers=headers, params=params)
data = response.json()
print(data)

PHP

<?php
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://retailrank.com/api/v1/store?domain=tonies.com",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer YOUR_API_KEY",
    "Content-Type: application/json"
  ],
]);

$response = curl_exec($curl);
curl_close($curl);

$data = json_decode($response, true);
var_dump($data);
?>