Documentation

API Reference

REST API for integrating CheckShop.eu with your platform.

Authentication

API key endpoints require the x-api-key header. Find your API key in Dashboard > Integrations.

curl -H "x-api-key: YOUR_API_KEY" \
     https://checkshop.eu/api/v1/verify
Base URL
https://checkshop.eu
Format
JSON
Rate Limit
120 req/min

Authentication

GET/api/v1/verifyAPI KEY

Test your API key and get shop info. Use this to verify your integration is working.

Response

{
  "ok": true,
  "shop": {
    "id": "clx...",
    "name": "My Shop",
    "domain": "myshop.com",
    "plan": "PRO",
    "status": "APPROVED",
    "verified": true,
    "badgeEnabled": true,
    "score": 87,
    "badgeColor": "GOLD"
  }
}

Badge

GET/api/v1/badge/{shopId}PUBLIC

Get trust badge data for a shop. Used by the badge widget to display real-time score. Cached for 5 minutes at edge.

Response

{
  "shop": "My Shop",
  "domain": "myshop.com",
  "verified": true,
  "status": "APPROVED",
  "score": 87,
  "badgeColor": "GOLD",
  "reviewCount": 142,
  "avgRating": 4.6,
  "lastChecked": "2026-04-12T10:00:00Z"
}

Shops

GET/api/v1/shops/{domain}PUBLIC

Look up a shop by domain. Returns trust score and review summary.

Response

{
  "found": true,
  "shop": {
    "name": "My Shop",
    "domain": "myshop.com",
    "country": "NL",
    "verified": true,
    "status": "APPROVED",
    "memberSince": "2026-01-15T00:00:00Z"
  },
  "score": {
    "overall": 87,
    "technical": 92,
    "reviews": 80,
    "badge": "GOLD",
    "lastChecked": "2026-04-12T10:00:00Z"
  },
  "reviews": { "count": 142, "average": 4.6 }
}

Reviews

POST/api/v1/reviews/publicPUBLIC

Submit a review for a shop. Reviews are moderated before publishing.

Request Body

{
  "domain": "myshop.com",
  "rating": 5,
  "title": "Great shop!",
  "content": "Fast delivery and excellent customer service.",
  "name": "Jan de Vries",
  "email": "jan@example.com"
}

Response

{ "reviewId": "clx..." }
POST/api/v1/reviews/{reviewId}/helpfulPUBLIC

Mark a review as helpful. Increments the helpful count.

Response

{ "helpfulCount": 42 }

Webhooks

POST/api/v1/webhooks/woocommerceAPI KEY

Receive WooCommerce order completions. Automatically creates a review invitation for the customer.

Request Body

{
  "billing": {
    "email": "customer@example.com",
    "first_name": "Jan",
    "last_name": "de Vries"
  },
  "number": "1234",
  "status": "completed"
}

Response

{
  "ok": true,
  "invitationId": "clx...",
  "reviewUrl": "https://checkshop.eu/review/token..."
}
POST/api/v1/webhooks/shopifyAPI KEY

Receive Shopify webhooks (orders/paid, app/uninstalled, shop/update). Uses x-shopify-hmac-sha256 for verification.

Response

{ "ok": true }

Error Codes

CodeDescription
200Success
400Bad request — missing or invalid parameters
401Unauthorized — missing or invalid API key
403Forbidden — shop not active or plan too low
404Not found — shop or resource doesn't exist
409Conflict — duplicate entry (e.g. already reviewed)
429Too many requests — rate limit exceeded
500Server error — try again later
Trusted by EU webshops
Live platform stats
8
verified shops
11
shops monitored
136
reviews collected
23k
checks performed