translations

List Translations

get/v1/projects/{project_id}/translations

Request

  • Base URL: https://api.sonenta.dev
  • URL: https://api.sonenta.dev/v1/projects/{project_id}/translations
  • Auth: none declared

Path parameters

project_idstring required

Query parameters

language_idstring required

language uuid (required)

namespace_idstring nullable
version_idstring nullable

Filter by version uuid. Omitted = production version.

status'missing' | 'draft' | 'translated' | 'reviewed' | 'approved' | 'rejected' nullable
author'ai' | 'human' nullable

Filter by last-writer kind. Orthogonal to status; only matches rows that have a translation.

pending_reviewboolean

Shortcut for status=translated AND author=ai (AI translations awaiting human review).

confidencestring nullable

Filter by the AGENT's stated confidence on the value (high|medium|low). Only matches rows carrying one (agent-proposed, not yet human-edited).

taskstring nullable

Restrict to the exact keys a task points at (its payload.key_uuids), addressed by the task's uuid or #number. Scopes the editor to that task's work.

qstring nullable

substring match on key name

typestring[] nullable

filter by key type(s) (repeatable)

surfacestring

Which overlay to list (task 1482). 'base' (default) = the normal translation value (unchanged behaviour). An a11y surface (aria_label|alt_text|screen_reader|plain_language) lists that surface's VALUE per target language for keys where the surface is type-relevant AND a source value exists; status=missing => target untranslated, otherwise the override status. a11y MODERATION stays in the a11y review queue.

overrides_onlyboolean

Overlay locales only: keep only keys whose OWN value differs from the resolved parent (parity with coverage override_count). Ignored for base languages (no fallback).

include_sourceboolean

Attach source_value (the source-language value, joined by key_uuid) to each item — aligned to the filtered set in one call.

has_sourceboolean nullable

Filter by SOURCE-language value presence (orthogonal to status, which is the TARGET status). has_source=false keeps only source-missing keys (empty/absent source value); true keeps only keys with a present source. Applied server-side so total + cursor stay correct across pages.

orphanboolean nullable

Code-occurrences ORPHAN filter. true = ONLY orphan keys (the scan FOUND them and they then DISAPPEARED from the code — a gone occurrence and NO present one), false = only non-orphans, absent = all. A key never seen by a scan (manual add) is NOT an orphan. Server-side (injected into the key query) so total + cursor stay correct. Meaningful only when the response's measured is true (else nothing is an orphan).

include_ratingsboolean

Attach the end-user 5-star aggregate (avg_rating + rating_count) per key+language. Requires the feedback module to be active (else 403).

min_avg_starsnumber nullable

Keep only items whose avg_rating >= this (implies include_ratings).

max_avg_starsnumber nullable

Keep only items whose avg_rating <= this (implies include_ratings).

include_deletedboolean

Include keys in the recycle bin (soft-deleted, task 781). Default FALSE excludes trashed keys — aligned with GET /keys + coverage, so the editor never lists a trashed key (which would 404 on /variants). The founder override-matrix 404 bug (client-admin propose).

include_overlaysboolean

Attach overlays (device surfaces + a11y treatments present) per key, joined by key_uuid in ONE aggregation (no per-key N+1). Lets the 2-line row render overlay icons without calling /variants + /a11y-signals per key. Scope via overlays_scope.

overlays_scope'all' | 'language'

Scope of overlays presence (only when include_overlays). 'all' (default, founder/master UX) = the key carries the overlay in ANY language; 'language' = only overlays in the requested language_id. Both are one indexed aggregation.

cursorstring nullable
limitinteger

Response

Successful Response

cursor_nextstring nullable required
totalinteger required
measuredboolean

Changes

No recorded changes to this operation across all 1 revision of this API.