Table of Contents


Translation API Describe Endpoints

Describe endpoints return metadata about translatable content. Use them to discover which languages are active, which types exist, which entities are translatable, and which items within an entity can be translated. All describe endpoints are GET requests.


Get Languages

GET /api/3.0/translations/languages

Returns every configured language with its activation state.

Response:

[
  { "language": "fr", "label": "French - Français", "isActive": true },
  { "language": "de", "label": "German - Deutsch", "isActive": true },
  { "language": "es", "label": "Spanish - Español", "isActive": false }
]

Use this to drive language pickers in tooling, or to validate that a language is active before submitting translations.


Describe All Translation Types

GET /api/3.0/translations/describe

With no parameters, returns the 11 translation types with their descriptions and requirements.

Response (abbreviated):

[
  { "type": "entity", "description": "Entity labels (Label, PluralLabel)", "requiresEntity": true },
  { "type": "field", "description": "Field labels and help text", "requiresEntity": true },
  { "type": "picklist", "description": "Picklist value labels", "requiresEntity": true },
  { "type": "button", "description": "Button labels and confirmation messages", "requiresEntity": true },
  { "type": "layout", "description": "Layout section names, form titles, related list titles", "requiresEntity": true },
  { "type": "recordtype", "description": "Record type names and descriptions", "requiresEntity": true },
  { "type": "validationrule", "description": "Validation rule error messages", "requiresEntity": true },
  { "type": "lookupfilter", "description": "Lookup filter error and window messages", "requiresEntity": true },
  { "type": "app", "description": "Application names", "requiresEntity": false },
  { "type": "tab", "description": "Menu item labels", "requiresEntity": false },
  { "type": "customlabel", "description": "Custom label values", "requiresEntity": false }
]

See the Translation Types Reference for the full per-type behavior including aspects.


Describe Translatable Entities

GET /api/3.0/translations/describe?type=entity

Returns every translatable entity in the portal.

Response:

[
  {
    "relatedToId": "a0B000000001abc",
    "type": "Entity",
    "name": "Account",
    "aspects": [
      { "aspect": "Label", "masterValue": "Account" },
      { "aspect": "PluralLabel", "masterValue": "Accounts" }
    ]
  },
  {
    "relatedToId": "a0B000000002def",
    "type": "Entity",
    "name": "Lead",
    "aspects": [
      { "aspect": "Label", "masterValue": "Lead" },
      { "aspect": "PluralLabel", "masterValue": "Leads" }
    ]
  }
]

Describe Fields for an Entity

GET /api/3.0/translations/describe?type=field&entityName=Account
ParameterRequiredDescription
typeYesMust be field.
entityNameYesEntity API name (e.g., Account, Lead).

Response:

[
  {
    "relatedToId": "a0F000000001xyz",
    "type": "Field",
    "name": "AccountName",
    "aspects": [
      { "aspect": "Label", "masterValue": "Account Name" },
      { "aspect": "Help Text", "masterValue": "The primary name of the account" }
    ]
  },
  {
    "relatedToId": "a0F000000002abc",
    "type": "Field",
    "name": "Industry",
    "aspects": [
      { "aspect": "Label", "masterValue": "Industry" }
    ]
  }
]

The Help Text aspect appears only when the field has non-empty help text.


Describe Full Entity

GET /api/3.0/translations/describe?type=entity&entityName=Account

When both type=entity and entityName are provided, returns comprehensive metadata for the entire entity in a single call. Includes:

  • Entity aspects (Label, PluralLabel).
  • All fields with aspects and picklist values (where applicable).
  • Lookup filters per field.
  • Buttons with confirmation messages.
  • Validation rules.
  • Record types with descriptions.

This is the most complete describe call and avoids multiple round trips when building a full translation tool for one entity.

Response (abbreviated):

{
  "relatedToId": "a0B000000001abc",
  "type": "Entity",
  "name": "Account",
  "aspects": [
    { "aspect": "Label", "masterValue": "Account" },
    { "aspect": "PluralLabel", "masterValue": "Accounts" }
  ],
  "fields": [
    {
      "relatedToId": "a0F000000001xyz",
      "type": "Field",
      "name": "AccountName",
      "aspects": [ { "aspect": "Label", "masterValue": "Account Name" } ]
    },
    {
      "relatedToId": "a0F000000003ghi",
      "type": "Field",
      "name": "Rating",
      "aspects": [ { "aspect": "Label", "masterValue": "Rating" } ],
      "picklistValues": [
        { "relatedToId": "a0P001", "name": "Hot", "masterValue": "Hot" },
        { "relatedToId": "a0P002", "name": "Warm", "masterValue": "Warm" },
        { "relatedToId": "a0P003", "name": "Cold", "masterValue": "Cold" }
      ],
      "lookupFilter": {
        "relatedToId": "a0K000000001abc",
        "type": "LookupFilter",
        "aspects": [ { "aspect": "Error Message", "masterValue": "Invalid selection" } ]
      }
    }
  ],
  "buttons": [],
  "validationRules": [],
  "recordTypes": []
}

Describe Picklist Values

GET /api/3.0/translations/describe?type=picklist&entityName=Account&relatedId=FIELD_ID
ParameterRequiredDescription
typeYesMust be picklist.
entityNameYesEntity API name.
relatedIdNoField ID. With relatedId returns the picklist values; without it returns the list of picklist fields on the entity.

Response (with relatedId):

[
  { "relatedToId": "a0P000000001def", "type": "Picklist", "name": "Hot", "masterValue": "Hot" },
  { "relatedToId": "a0P000000001ghi", "type": "Picklist", "name": "Warm", "masterValue": "Warm" },
  { "relatedToId": "a0P000000001jkl", "type": "Picklist", "name": "Cold", "masterValue": "Cold" }
]

Response (without relatedId):

[
  { "fieldId": "a0F000000003ghi", "fieldName": "Rating", "type": "Picklist", "description": "Use 'relatedId' parameter with this field ID to get picklist values." },
  { "fieldId": "a0F000000004jkl", "fieldName": "Industry", "type": "Picklist", "description": "Use 'relatedId' parameter with this field ID to get picklist values." }
]

Describe Apps, Tabs, Custom Labels

These three types are global — no entity context is required.

GET /api/3.0/translations/describe?type=app
GET /api/3.0/translations/describe?type=tab
GET /api/3.0/translations/describe?type=customlabel

Response (Apps):

[
  { "relatedToId": "a0A000000001mno", "type": "App", "masterValue": "Partner Management" },
  { "relatedToId": "a0A000000002pqr", "type": "App", "masterValue": "Sales" }
]

Response (Tabs):

[
  { "relatedToId": "a0T000000001abc", "type": "Tab", "name": "home", "masterValue": "Home" },
  { "relatedToId": "a0T000000002def", "type": "Tab", "name": "accounts", "masterValue": "Accounts" }
]

Module-feature Menu Items (Articles, Training, etc.) are excluded from the Tab list because they are translated through their owning module's resource files.

Response (Custom Labels):

[
  { "relatedToId": "a0L000000001ghi", "type": "CustomLabel", "name": "WelcomeMessage", "masterValue": "Welcome to the portal" },
  { "relatedToId": "a0L000000002jkl", "type": "CustomLabel", "name": "FooterText", "masterValue": "All rights reserved" }
]

Common Error Responses

// Invalid type
{ "success": false, "errors": ["Invalid translation type: 'foo'."] }

// Entity not found
{ "success": false, "errors": ["Entity 'InvalidName' not found."] }

// Entity required for type
{ "success": false, "errors": ["Parameter 'entityName' is required for type 'field'"] }

<< Translation REST API v3 Overview | Get and Submit Translations >>

Last updated on 6/23/2026

Attachments