BizKitHub
DocsAPI ReferencePost/bff/post/translation-analytics
getPostAdmin BFF

/bff/post/translation-analytics

Aggregated counters powering the "Překlady" tab: default locale, enabled locales, live-post total, per-locale coverage (fresh vs. stale vs. missing vs. partial-by-length), canonical-route counts + orphaned-route indicator, and history coverage. stale uses the content__post_locale.source_history_idcontent__post_history.id invariant introduced alongside the auto-translate refresh flow. Partial-by-length mirrors the terminal post list heuristic (source ≥ 200 plain chars, target < 30 %). Purely read-only.

PostgetBffPostTranslation-analytics

Parameters

No parameters required

This endpoint takes no path, query, header or body parameters.

Response schema

1 status code documented

200Success
defaultLocaleobjectRequired
idnumberRequired
codestringRequired

Locale code, e.g. "cs", "en".

enabledLocalesobject[]Required
Each array item:
idnumberRequired
codestringRequired
isSourcebooleanRequired

True for the org's primary (source) locale — everything is translated FROM this one.

totalsobjectRequired
livePostsnumberRequired

Non-deleted posts of kind="post".

fullyTranslatedPostsnumberRequired

Post has an OK translation in every enabled non-source locale. Single-locale orgs count as fully translated.

partiallyTranslatedPostsnumberRequired

Post has at least one OK translation AND at least one missing / partial locale.

untranslatedPostsnumberRequired

Post has no translation in any non-source locale.

perLocaleobject[]Required
Each array item:
localeIdnumberRequired
localestringRequired
isSourcebooleanRequired
postsWithTranslationnumberRequired

Live posts with a content__post_locale row for this locale (any state).

postsMissingnumberRequired

Live posts with no row for this locale. Always 0 for the source locale.

postsStalenumberRequired

Row exists but source_history_id is NULL or points at an older source-history entry. Always 0 for the source locale.

postsFreshnumberRequired

Row exists and source_history_id matches the newest source-history entry. Legacy posts without any source history also count here.

postsPartialByLengthnumberRequired

Row exists but plain-text content < 30 % of source (source ≥ 200 plain chars). Diagnostic — overlaps with fresh / stale, does not double-count.

canonicalRoutesnumberRequired

Number of canonical article routes in core__route for this locale.

orphanedRoutesnumberRequired

Canonical routes whose referenced post no longer has a content__post_locale row in this locale.

historyCoverageobjectRequired
postsWithHistorynumberRequired

Live posts with at least one content__post_history entry in any locale.

postsWithoutHistorynumberRequired

Live posts predating the content__post_history table — stale detection cannot fire for these, admin should trigger auto-translate once to seed a snapshot.

avgHistoryEntriesPerPostnumberRequired

Average number of history entries per post that has any, across all locales.

Response example

application/json
{
  "defaultLocale": {
    "id": 0,
    "code": "example_code"
  },
  "enabledLocales": [
    {
      "id": 0,
      "code": "example_code",
      "isSource": false
    }
  ],
  "totals": {
    "livePosts": 0,
    "fullyTranslatedPosts": 0,
    "partiallyTranslatedPosts": 0,
    "untranslatedPosts": 0
  },
  "perLocale": [
    {
      "localeId": 0,
      "locale": "example_locale",
      "isSource": false,
      "postsWithTranslation": 0,
      "postsMissing": 0,
      "postsStale": 0,
      "postsFresh": 0,
      "postsPartialByLength": 0,
      "canonicalRoutes": 0,
      "orphanedRoutes": 0
    }
  ],
  "historyCoverage": {
    "postsWithHistory": 0,
    "postsWithoutHistory": 0,
    "avgHistoryEntriesPerPost": 0
  }
}

Request example

GET /bff/post/translation-analytics

get
curl -X GET "https://api.bizkithub.com/bff/post/translation-analytics" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY"

Need an API key?

All BizKitHub public API endpoints require authentication via API key.

Get API Key