localization

POST /v1/i18n/sources

Register translatable source fields (batch).

כל נקודות הקצה מסוג localization

כל תיעוד המפתחים

אימות

שלח מפתח API כטוקן Bearer. נקודת קצה זו אינה מציינת הרשאת ספציפית במפרט, לכן הקצה למפתח שלך את המינימום הנדרש ובדוק את התגובה במקום להניח הנחות.

נקודת קצה זו אינה דורשת מזהה ארגון. המפתח שלך כבר מזהה את הארגון שאליו הוא שייך, והתגובה מוגבלת אליו בלבד.

נסה זאת

החלף כל דבר בסוגריים זוויתיים בערכים משלך, ואת מציין מיקום המפתח במפתח מלוח הבקרה שלך.

curl -X POST https://api.zinndigital.com/v1/i18n/sources \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{  }'

מחובר? קונסולת ה-API בלוח הבקרה שלך מזינה את מזהה הארגון האמיתי שלך ואת המפתח שלך, ומריצה את הבקשה מול ה-API הפיזי כך שתוכל לראות את התגובה בפועל. פתח נקודת קצה זו במסוף ה-API

פרטים

Registers (or updates) source fields for auto-translation into every enabled locale (CLAUDE.md §2.19, docs/28). Each item is keyed by (surface, object_ref, field) within the calling organization; the org is taken from the credential and can never be set from the body. Batched by design. One CMS page save touches on the order of 150 translatable fields (body blocks, meta title/description, OpenGraph, JSON-LD text, alt text, breadcrumb labels, the slug). A per-field request would turn a single editorial save into 150 round-trips, so the endpoint takes up to 200 items per call; more than that is a 422 asking the caller to split the batch. Intrinsically idempotent — an Idempotency-Key is accepted but not needed. Registration is keyed on a SHA-256 of the source text: when the content hash is unchanged the call is a complete no-op (nothing is marked stale, no re-translation event is emitted, changed comes back false). Replaying the same batch therefore costs nothing and changes nothing, so unlike every other unsafe endpoint here this one needs no replay protection to be safe. The header is still accepted so that clients and generated SDKs can send it uniformly across all writes. Translation runs asynchronously afterwards — a successful response means the source is recorded and (if it changed) queued, never that any locale is translated yet. Poll GET /v1/i18n/bundles/{locale} or watch the translation.completed events.

פרמטרים

שםסוגנדרשמה זה
Idempotency-Key (header)stringלאClient-generated key that makes an unsafe request replay-safe: the server stores the first response and returns it verbatim for repeats.

גוף הבקשה

שםסוגנדרשמה זה
itemsTranslationSourceItem[]לאThe source fields to register. Capped at 200 per request — a larger batch is a 422 telling the caller to split it. Optional so that a RETIREMENT-ONLY request is expressible: the…
pruneTranslationPruneScopeלאRetire every registered source inside this scope that is NOT named in items — the de-registration path (#735). Without it, a key deleted from the caller's catalogue leaves its…
prune_namespaceTranslationNamespacePruneלאRetire every registered DOCUMENT under ref_prefix that is not named in expected_refs. TranslationPruneScope retires fields inside one document; this retires documents that…

תשובה

שםסוגנדרשמה זה
resultsTranslationSourceResult[]כןOne result per submitted item, in the order submitted.
retiredTranslationField[]לאField names deleted by prune, sorted. Empty when prune was absent or nothing was stale. Reported rather than assumed: a destructive operation that returns no number is…
retired_refsObjectRef[]לאobject_refs deleted by prune_namespace, sorted. Empty when prune_namespace was absent or nothing was dead. Kept separate from retired on purpose: a count of retired FIELDS…

שגיאות שנקודה קצה זו עשויה להחזיר

401 · 403 · 422 · 429