Two curl commands — one per auth method — are all you need to localize an English product listing for Amazon Germany, apply the marketplace rule template, and return a quality-gated JSON result.
Subscribe on RapidAPI See request body See responseListLoco is distributed via RapidAPI. Subscribe to the free or paid plan on RapidAPI and copy your X-RapidAPI-Key from the dashboard. No separate backend credential is needed for the RapidAPI path.
Use case: an English-language listing for Amazon.com that you want to publish on Amazon DE. The API enforces Amazon Germany's title character limit, banned keyword list, required attributes, and number/model-number preservation in a single deterministic pass — the same rules that cause suppressed listings when violated. The output is English to German localized copy that is ready to verify before submission.
1 Via RapidAPI (recommended)
Replace <YOUR_RAPIDAPI_KEY> with the key from your
RapidAPI dashboard. The host listloco.p.rapidapi.com is
fixed — copy it exactly.
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": "Cordless drill AB-1200 with 8.5 kg battery and 2 m cable",
"description": "Cordless drill AB-1200 with a 8.5 kg battery and a 2 m cable.",
"brand": "Bosch",
"material": "Metall",
"size": "M",
"color": "blue",
"quantity": 1
},
"glossary": { "preserve": ["Bosch"] },
"dictionary": {
"cordless": "kabellos",
"drill": "Bohrmaschine",
"with": "mit",
"and": "und",
"a": "ein",
"battery": "Akku",
"cable": "Kabel",
"blue": "blau"
}
}'
2 Direct API (self-hosted / local dev)
For local development or self-hosted deployments where
LISTLOCO_API_KEYS is configured. Pass the backend key via
x-api-key or Authorization: Bearer. This
path is not available through the public RapidAPI
gateway.
curl -s -X POST https://listloco.hayasaka.app/localize \
-H "Content-Type: application/json" \
-H "x-api-key: <YOUR_API_KEY>" \
--data '{
"marketplace": "amazon",
"sourceLang": "en",
"targetLang": "de",
"listing": {
"title": "Cordless drill AB-1200 with 8.5 kg battery and 2 m cable",
"description": "Cordless drill AB-1200 with a 8.5 kg battery and a 2 m cable.",
"brand": "Bosch",
"material": "Metall",
"size": "M",
"color": "blue",
"quantity": 1
},
"glossary": { "preserve": ["Bosch"] },
"dictionary": {
"cordless": "kabellos",
"drill": "Bohrmaschine",
"with": "mit",
"and": "und",
"a": "ein",
"battery": "Akku",
"cable": "Kabel",
"blue": "blau"
}
}'
All fields are required unless marked optional. The marketplace,
sourceLang, and targetLang select the rule template —
currently only "amazon" / "en" / "de"
is supported. The glossary.preserve array locks brand names and
model numbers so they survive translation and the
preservation gate does not flag them as corrupted.
The dictionary map provides known word translations and
is the primary mechanism for consistent Amazon DE listing localization
from English to German.
{
"marketplace": "amazon", // required — rule template selector
"sourceLang": "en", // required — source language code
"targetLang": "de", // required — target language code
"listing": {
"title": "...", // required — plain-text title
"description": "...", // required — plain-text description
"brand": "...", // required — brand name
"material": "...", // required — material
"size": "...", // required — size
"color": "...", // required — color
"quantity": 1 // required — integer quantity
},
"glossary": {
"preserve": ["Bosch", "AB-1200"] // optional — strings never altered by translation
},
"dictionary": { // optional — source→target word map
"cordless": "kabellos",
"drill": "Bohrmaschine"
}
}
A successful request returns HTTP 200 with a JSON body containing
the localized listing fields, gate results for all six quality checks,
a violations array (empty when all gates pass), and a
top-level pass boolean. A pass: false result
means at least one gate failed — check violations for the
exact field and reason. Common causes: title exceeds Amazon Germany's
character limit, a banned keyword appeared in the
German copy, a model number or unit was altered during translation
(preservation gate), or the back-translation divergence score exceeded
the threshold.
{
"localized": {
"title": "Kabellose Bohrmaschine AB-1200 mit 8,5-kg-Akku und 2-m-Kabel",
"description": "Kabellose Bohrmaschine AB-1200 mit einem 8,5-kg-Akku und einem 2-m-Kabel.",
"brand": "Bosch",
"material": "Metall",
"size": "M",
"color": "blau",
"quantity": 1
},
"gates": {
"titleLength": { "pass": true, "length": 67, "limit": 200 },
"bannedWords": { "pass": true },
"requiredAttributes": { "pass": true },
"preservation": { "pass": true },
"glossary": { "pass": true },
"backTranslation": { "pass": true, "score": 0.12, "threshold": 0.25 }
},
"violations": [],
"pass": true
}
Every response runs six deterministic checks. The same input always returns the same result — no random variation.
glossary.preserve appears verbatim in the localized output.Subscribe to a plan on RapidAPI and paste your key into the curl command above. The OpenAPI spec documents every field and error code. The blog covers common Amazon DE localization problems — suppressed listings, banned keywords, and model-number preservation — with worked examples.
Subscribe on RapidAPI See plans and pricing OpenAPI spec Read the blog