> ## Documentation Index
> Fetch the complete documentation index at: https://docs.open.cx/llms.txt
> Use this file to discover all available pages before exploring further.

# Update macro settings

> Choose the languages every org-wide macro is translated into. The list replaces the current one; send an empty list to turn macro translation off.

## Choosing languages

`translation_languages` is the **full** list and replaces the current one. Read it with [Get macro settings](./get-settings) first and send every language you want to keep. Send at most 10 lower-case codes such as `es`, each one of `supported_translation_languages`, with no repeats; anything else is rejected with a `400`. An empty list turns macro translation off.

```json theme={"dark"}
{ "translation_languages": ["es", "fr", "de"] }
```

Choosing a language that was not chosen before translates every macro into it in the background. Languages that were already chosen are not translated again. Removing a language stops using it but keeps its translations, so adding it back is instant. Track progress per macro with [Get macro translations](./translations). Variables are never translated.

`suggestions_enabled` appears in the response but cannot be changed here. Turn suggested macros on or off for the workspace in **Settings → Workspace → Suggested macros**.


## OpenAPI

````yaml put /macros/settings
openapi: 3.1.0
info:
  title: OpenCX API
  description: >

    OpenCX is an AI-powered, all-in-one platform for customer support and
    outbound communications.


    Use this API to manage your OpenCX organization's AI agents, actions,
    conversations, contacts, and more.


    To get started, generate a new API key from the dashboard.


    ## Authentication

    All API endpoints require authentication using a Bearer token. You can
    generate an API key from your OpenCX dashboard.


    ## Rate Limiting

    API requests are rate limited to ensure fair usage. The current limits are:

    - 100 requests per minute for standard endpoints

    - 1000 requests per minute for streaming endpoints


    ## Error Handling

    The API uses standard HTTP status codes and returns detailed error messages
    in the response body.
  version: 1.0-beta
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: http://localhost:8080
    description: Development
  - url: https://api.open.cx
    description: Production
security:
  - bearerAuth: []
paths:
  /macros/settings:
    put:
      summary: Update macro settings
      description: >-
        Choose the languages every org-wide macro is translated into. Choosing a
        language translates every org-wide macro into it; languages that are
        already chosen are not translated again. Translations are read-only
        generated copies: edit the macro and they refresh. Variables are never
        translated. Whether suggested macros are on for the workspace is
        read-only here (`suggestions_enabled` in the response); it is changed in
        Settings → Workspace. Returns the new settings.
      operationId: updateMacroSettings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateMacroSettingsDto'
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MacroSettingsDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
components:
  schemas:
    UpdateMacroSettingsDto:
      $schema: https://json-schema.org/draft/2020-12/schema
      $id: '#/components/schemas/UpdateMacroSettingsDtoInput'
      type: object
      properties:
        translation_languages:
          maxItems: 10
          type: array
          items:
            type: string
          description: >-
            The full list of language codes (lower-case, such as `es`; at most
            10, each from `supported_translation_languages`, no repeats) to
            translate every org-wide macro into. It replaces the current list,
            so send every language you want to keep. `[]` turns macro
            translation off.
      required:
        - translation_languages
    MacroSettingsDto:
      $schema: https://json-schema.org/draft/2020-12/schema
      $id: '#/components/schemas/MacroSettingsDto'
      type: object
      properties:
        translation_languages:
          type: array
          items:
            type: string
          description: >-
            Language codes (lower-case, such as `es`) every org-wide macro is
            translated into, in the order they were chosen. Empty means macro
            translation is off.
        max_translation_languages:
          type: number
          description: The most languages that can be chosen.
        supported_translation_languages:
          type: array
          items:
            type: string
          description: The language codes that can be chosen.
        suggestions_enabled:
          type: boolean
          description: >-
            Whether suggested macros are on for the workspace. When off, no
            agent sees them.
      required:
        - translation_languages
        - max_translation_languages
        - supported_translation_languages
        - suggestions_enabled
      additionalProperties: false
    ErrorDto:
      type: object
      properties:
        statusCode:
          type: integer
        message:
          type: string
        error:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.