Free plan · 100 listings/month · No credit card

Getting Started: Amazon DE Compliance Check in 60 Seconds

Three steps from zero to your first compliance-checked Amazon Germany listing result — using the ListLoco API via RapidAPI.

Subscribe on RapidAPI — free plan available Try without signing up

No account yet? Try the API free — no signup required. Paste a listing and see the compliance result instantly.

Try free now Try the free checker
  1. 1

    Step 1: Subscribe to the free plan on RapidAPI

    Visit the ListLoco page on RapidAPI and subscribe to the Free plan — 100 listings per month at no cost, no credit card required. After subscribing, copy your X-RapidAPI-Key from the RapidAPI dashboard.

    Subscribe on RapidAPI
  2. 2

    Step 2: Make your first API call

    Send a POST to https://listloco.p.rapidapi.com/localize with your listing data and your X-RapidAPI-Key. Replace <YOUR_RAPIDAPI_KEY> with the key from your dashboard.

    curl
    curl -s -X POST "https://listloco.p.rapidapi.com/localize" \
      -H "Content-Type: application/json" \
      -H "X-RapidAPI-Key: <YOUR_RAPIDAPI_KEY>" \
      -H "X-RapidAPI-Host: listloco.p.rapidapi.com" \
      --data '{
        "marketplace": "amazon",
        "sourceLang": "en",
        "targetLang": "de",
        "listing": {
          "title": "Wireless Headphones Model XB-900",
          "description": "Wireless Headphones Model XB-900 with 30h battery life.",
          "brand": "SoundCo",
          "material": "Plastic",
          "size": "One Size",
          "color": "black",
          "quantity": 1
        },
        "dictionary": {
          "wireless": "kabellos",
          "headphones": "Kopfhörer",
          "with": "mit",
          "battery": "Akku",
          "life": "Laufzeit"
        }
      }'
    Node.js fetch
    const body = {
      marketplace: "amazon",
      sourceLang: "en",
      targetLang: "de",
      listing: {
        title: "Wireless Headphones Model XB-900",
        description: "Wireless Headphones Model XB-900 with 30h battery life.",
        brand: "SoundCo",
        material: "Plastic",
        size: "One Size",
        color: "black",
        quantity: 1
      },
      dictionary: {
        wireless: "kabellos",
        headphones: "Kopfhörer",
        with: "mit",
        battery: "Akku",
        life: "Laufzeit"
      }
    };
    
    const response = await fetch("https://listloco.p.rapidapi.com/localize", {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        "X-RapidAPI-Key": "<YOUR_RAPIDAPI_KEY>",
        "X-RapidAPI-Host": "listloco.p.rapidapi.com"
      },
      body: JSON.stringify(body)
    });
    const result = await response.json();
    console.log(result);

    A successful response looks like this (pass: true means all compliance gates passed):

    {
      "localized": {
        "title": "Kabellose Kopfhörer Modell XB-900",
        "description": "Kabellose Kopfhörer Modell XB-900 mit 30h Akku-Laufzeit.",
        "brand": "SoundCo",
        "material": "Plastic",
        "size": "One Size",
        "color": "schwarz",
        "quantity": 1
      },
      "gates": {
        "titleLength":        { "pass": true, "length": 38, "limit": 200 },
        "bannedWords":        { "pass": true, "violations": [] },
        "requiredAttributes": { "pass": true, "violations": [] },
        "preservation":       { "pass": true, "violations": [] },
        "glossary":           { "pass": true, "violations": [] },
        "backTranslation":    { "pass": true, "score": 0.08, "threshold": 0.25 }
      },
      "violations": [],
      "pass": true
    }

    Each gate in the response corresponds to a deterministic compliance rule enforced by ListLoco: title character limit, banned keywords, required attributes, model-number and unit preservation, and back-translation divergence. If any gate fails, pass is false and violations lists exactly what to fix.

  3. 3

    Step 3: Read the full API reference

    The Examples & API reference page covers every request field, all error codes, response schemas, PHP and Python examples, quota headers, and a Postman collection download.

    View full API reference See plans and pricing

What the compliance gates check

Every response runs six deterministic checks against Amazon Germany's published listing rules. The same input always produces the same result.

Subscribe on RapidAPI — free plan available Full API reference

When to Upgrade from Free

The Free plan gives you 100 calls per month — enough to explore and prototype. Here is how to tell when you need more.

Free plan: 100 calls/month. If you have 50 SKUs and check each twice a month, that's exactly 100 calls — the Free limit. Add one more SKU or one more check and you'll hit the cap.

Managing 200+ SKUs? Basic is $2/month for 1,000 calls. That covers 200 SKUs checked 5 times a month — plenty of room to re-check after edits.

Plan Calls / month Price Good for
Free 100 calls $0 Evaluation & small catalogues (≤50 SKUs)
Basic 1,000 calls $2/month Growing catalogues (50–200 SKUs)
Pro 10,000 calls $9/month Established sellers (200–2,000 SKUs)
Scale Unlimited $29/month Large catalogues & agencies

Upgrade takes 30 seconds on RapidAPI — switch plans any time, no contract.

Upgrade on RapidAPI Compare all plans

First Paid Batch

The Free plan (100 calls/month) is well-suited for prototyping one listing at a time. When you have a catalogue of SKUs ready for Amazon DE, process them in a loop — one POST /localize call per listing, all results collected for review before you publish.

JavaScript — batch loop
const RAPIDAPI_KEY = process.env.RAPIDAPI_KEY;

const skus = [
  { title: "Wireless Headphones Model XB-900", brand: "SoundCo",
    material: "Plastic", size: "One Size", color: "black", quantity: 1 },
  { title: "USB-C Cable 2m Type AB-100", brand: "CableCo",
    material: "Nylon",   size: "2m",      color: "black", quantity: 1 },
  { title: "Travel Adapter Model TA-300", brand: "PowerCo",
    material: "ABS",     size: "Universal", color: "white", quantity: 1 },
];

const results = [];
for (const sku of skus) {
  const res = await fetch("https://listloco.p.rapidapi.com/localize", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "X-RapidAPI-Key": RAPIDAPI_KEY,
      "X-RapidAPI-Host": "listloco.p.rapidapi.com"
    },
    body: JSON.stringify({
      marketplace: "amazon",
      sourceLang: "en",
      targetLang: "de",
      listing: sku
    })
  });
  const data = await res.json();
  results.push({ title: sku.title, pass: data.pass, violations: data.violations });
}

const needsReview = results.filter(r => !r.pass);
console.log(`${results.length} checked, ${needsReview.length} need attention:`);
console.log(needsReview);
curl — sequential batch
# Two listings checked one after another
for sku_json in \
  '{"title":"Wireless Headphones Model XB-900","brand":"SoundCo","material":"Plastic","size":"One Size","color":"black","quantity":1}' \
  '{"title":"USB-C Cable 2m Type AB-100","brand":"CableCo","material":"Nylon","size":"2m","color":"black","quantity":1}'; do
  curl -s -X POST "https://listloco.p.rapidapi.com/localize" \
    -H "Content-Type: application/json" \
    -H "X-RapidAPI-Key: <YOUR_RAPIDAPI_KEY>" \
    -H "X-RapidAPI-Host: listloco.p.rapidapi.com" \
    --data "{\"marketplace\":\"amazon\",\"sourceLang\":\"en\",\"targetLang\":\"de\",\"listing\":${sku_json}}"
  echo
done

The Basic plan ($2/month, 1,000 calls) covers 200 SKUs checked five times each. Upgrade takes 30 seconds on RapidAPI — no contract, switch plans any time.

Upgrade on RapidAPI — from $2/month Compare all plans

Using the npm Package?

The listloco-checker npm package runs banned-word and title-length checks locally with no network calls. When you need full English→German localization, back-translation divergence scoring, or batch processing for 50+ listings, the Hosted API adds those capabilities on top of the same deterministic gate logic.

Local Checker vs Hosted API →