API Documentation

Access real-time verified promo codes and store audit data through our public API. Perfect for AI agents, browser extensions, and e-commerce applications.

Creative Commons BY-NC-SA 4.0: You may freely use our API for non-commercial purposes with attribution. See our Terms of Service for complete license terms.

Quick Start

1. Get All Stores

GET https://promocodeverified.com/api/stores
{
  "meta": {
    "total": 191,
    "page": 1,
    "limit": 25,
    "has_more": true
  },
  "stores": [
    {
      "name": "ARHGOAT",
      "category": "Beauty",
      "api_url": "https://promocodeverified.com/api/store/arhgoatcare-com",
      "web_url": "https://promocodeverified.com/store/arhgoatcare-com"
    },
    {
      "name": "Unicornlashqueens",
      "category": "Beauty",
      "api_url": "https://promocodeverified.com/api/store/unicornlashqueens-myshopify-com",
      "web_url": "https://promocodeverified.com/store/unicornlashqueens-myshopify-com"
    }
  ]
}

2. Get Store Details & Coupons

GET https://promocodeverified.com/api/store/{slug}
{
  "name": "ARHGOAT",
  "active_offers": [
    {
      "type": "coupon",
      "code": "SAVE10",
      "title": "10% off everything",
      "verified": true
    }
  ],
  "knowledge": {
    "usage_tips": [
      "Applies to all items",
      "Cannot combine with other offers"
    ],
    "faqs": [
      {
        "question": "How do I apply the SAVE10 code?",
        "answer": "Enter SAVE10 at checkout for 10% off your entire order."
      }
    ]
  }
}

API Endpoints

GET

/api/stores

List all verified stores with pagination and search.

Query Parameters:

  • q (string): Search by store name or domain
  • category (string): Filter by category (Fashion, Electronics, etc.)
  • page (number): Page number (default: 1)
  • limit (number): Items per page (1-100, default: 25)

Response:

{
  "meta": {
    "total": 191,
    "page": 1,
    "limit": 25,
    "has_more": true
  },
  "stores": [
    {
      "name": "Store Name",
      "category": "Fashion",
      "updated_at": "2024-01-01T00:00:00.000Z",
      "api_url": "https://promocodeverified.com/api/store/store-slug",
      "web_url": "https://promocodeverified.com/store/store-slug"
    }
  ]
}
GET

/api/store/{slug}

Get detailed coupon data and verification info for a specific store.

Path Parameters:

  • slug (string, required): Store identifier (e.g., "nike", "amazon-com")

Response:

{
  "name": "Store Name",
  "description": "Store description...",
  "category": "Fashion",
  "website": "https://store.com",
  "verified_at": "2024-01-01T00:00:00.000Z",
  "active_offers": [
    {
      "type": "coupon",
      "code": "SAVE10",
      "title": "10% off your order",
      "expires_at": null,
      "verified": true
    }
  ],
  "knowledge": {
    "usage_tips": ["Applies to all items"],
    "faqs": [
      {
        "question": "How to apply?",
        "answer": "Enter code at checkout"
      }
    ],
    "verification": {
      "last_tested": "2024-01-01T00:00:00.000Z",
      "method": "Verified via checkout simulation"
    }
  },
  "stats": {
    "total_offers": 1,
    "success_rate": "100%"
  }
}

Code Examples

JavaScript

// Get all stores
const stores = await fetch('https://promocodeverified.com/api/stores')
  .then(r => r.json());

// Get coupons for a specific store
const storeData = await fetch('https://promocodeverified.com/api/store/amazon-com')
  .then(r => r.json());

console.log(`Found ${storeData.active_offers.length} active offers`);

Python

import requests

# Get all stores
response = requests.get('https://promocodeverified.com/api/stores')
stores = response.json()

# Get store details
store_response = requests.get('https://promocodeverified.com/api/store/amazon-com')
store_data = store_response.json()

print(f"Found {len(store_data['active_offers'])} active offers")

cURL

# List all stores
curl "https://promocodeverified.com/api/stores"

# Search for stores
curl "https://promocodeverified.com/api/stores?q=nike"

# Get store details
curl "https://promocodeverified.com/api/store/nike"

Rate Limits & Usage Policies

Rate Limits

  • 100 requests per minute per IP address
  • 1000 requests per hour per IP address
  • 10,000 requests per day per IP address
  • Requests are cached for 10 minutes to improve performance
  • Rate limit headers are included in responses:
    • X-RateLimit-Limit: Maximum requests per time window
    • X-RateLimit-Remaining: Remaining requests in current window
    • X-RateLimit-Reset: Time when the rate limit resets (Unix timestamp)

✅ Allowed

  • Commercial use for AI agents and apps
  • Browser extensions and tools
  • Academic research and analysis
  • Data redistribution and sharing

❌ Not Allowed

  • Spam or abusive requests
  • Circumventing rate limits
  • Automated checkout testing
  • Data resale for profit

Error Handling

When rate limits are exceeded, you'll receive:

HTTP 429 Too Many Requests
Retry-After: 60
X-RateLimit-Reset: 1703123456

Please implement exponential backoff in your applications.

Additional Resources