> ## Documentation Index
> Fetch the complete documentation index at: https://deepl-c950b784-docs-style-profiles-api.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a style profile

> Learn how to rename a style profile, clear its description or industry, and replace the set of components it links.



## OpenAPI

````yaml patch /v3/style_profiles/{style_profile_id}
openapi: 3.0.3
info:
  title: DeepL API Documentation
  description: >-
    The DeepL API provides programmatic access to DeepL’s language AI
    technology.


    Note: this OpenAPI spec is embedded into our API documentation and has
    shortened descriptions.
  termsOfService: https://www.deepl.com/pro-license
  contact:
    name: DeepL - Contact us
    url: https://www.deepl.com/contact-us
  version: 3.13.0
servers:
  - url: https://api.deepl.com
    description: DeepL API Pro
  - url: https://api-free.deepl.com
    description: DeepL API Free
security: []
tags:
  - name: beta
    description: >-
      Experimental features that are under testing and not yet intended for
      production use.
  - name: TranslateText
    description: >-
      The text-translation API currently consists of a single endpoint,
      `translate`, which is described below.
  - name: TranslateDocuments
    description: >-
      The document translation API allows you to translate whole documents and
      supports the following file types and extensions:
        * `docx` - Microsoft Word Document
        * `pptx` - Microsoft PowerPoint Document
        * `xlsx` - Microsoft Excel Document
        * `pdf` - Portable Document Format
        * `htm / html` - HTML Document
        * `txt` - Plain Text Document
        * `xlf / xliff` - XLIFF Document (versions 1.2, 2.0, and 2.1)
        * `srt` - SRT Document
        * `idml` - Adobe InDesign Markup Language
        * `xml` - XML Document
        * `json` - JSON Document
        * `dita` - DITA topic (Darwin Information Typing Architecture)
        * `mif` - Adobe FrameMaker Interchange Format
        * `jpeg` / `jpg` / `png` - Image (currently in beta)
  - name: RephraseText
    description: >-
      The `rephrase` endpoint  is used to make corrections and adjustments to
      texts based on style or tone.
  - name: CorrectText
    description: >-
      The `correct` endpoint fixes spelling and grammar errors without broader
      rephrasing. Use it when you want

      a minimal-change correction pass rather than the broader rewriting
      performed by `rephrase`.
  - name: ManageSpokenTerms
    description: >-
      The *Spoken Terms* functions allow you to create, inspect, edit and delete
      Spoken Terms collections.

      Spoken Terms improve speech recognition in the Voice API: they ensure
      specific words and phrases,

      such as company names, acronyms, and product names, are transcribed
      correctly. A collection contains

      one or more term lists, each holding terms for a single language, and is
      applied to a voice session

      via the `spoken_terms_id` parameter.
  - name: ManageMultilingualGlossaries
    description: >-
      The *glossary* functions allow you to create, inspect, edit and delete
      glossaries.

      Glossaries created with the glossary function can be used in translate
      requests by specifying the

      `glossary_id` parameter. A glossary contains (several) dictionaries.

      A dictionary is a mapping of source phrases to target phrases for a single
      language pair.

      If you encounter issues, please let us know at support@DeepL.com.


      Currently you can create glossaries with any of the languages DeepL
      supports (with the exception of Thai).


      The maximum size limit for a glossary is 10 MiB = 10485760 bytes and each
      source/target text,

      as well as the name of the glossary, is limited to 1024 UTF-8 bytes.

      A total of 1000 glossaries are allowed per account.


      When creating a dictionary with target language `EN`, `PT`, or `ZH`, it's
      not necessary to specify a variant

      (e.g. `EN-US`, `EN-GB`, `PT-PT`, `PT-BR`, or `ZH-HANS`).

      Dictionaries with target language `EN` can be used in translations with
      either English variant.

      Similarly `PT`, and `ZH` dictionaries can be used in translations with
      their corresponding variants.

      (When you provide the ID of a glossary to a translation, the appropriate
      dictionary is automatically applied. Currently glossaries can not yet be
      used with source language detection.)


      Glossaries created via the DeepL API are now unified with glossaries
      created via the DeepL website and DeepL apps.

      Please only use the v3 glossary API in conjunction with multilingual or
      edited glossaries from the website.
  - name: ManageGlossaries
    description: >-
      Please note that this is the spec for the (old) v2 glossary endpoint.

      We recommend users switch to the newer v3 glossary endpoints, which
      support editability and multilinguality.


      The *glossary* functions allow you to create, inspect, and delete
      glossaries.

      Glossaries created with the glossary function can be used in translate
      requests by specifying the

      `glossary_id` parameter.

      If you encounter issues, please let us know at support@DeepL.com.


      Currently you can create glossaries with any of the languages DeepL
      supports (with the exception of Thai).
  - name: ManageStyleProfiles
    description: >-
      The style profile functions allow you to create, inspect, edit and delete
      style profiles.

      A style profile bundles your other customizations, glossaries, style rule
      lists, translation memories

      and example documents, behind a single ID, so one `style_profile_id`
      stands for a whole translation

      configuration instead of a list of individual parameters.


      Every component list is optional. A style profile can hold nothing but a
      name, and you can link

      components to it later with a partial update. Within each list, the order
      of the IDs is the order in

      which the components are applied, and a style profile can reference at
      most one translation memory per

      source language.


      A style profile can also link one Spoken Terms collection, which is
      applied when the profile is used

      for speech rather than text instead of the text-only components. A profile
      links at most one

      collection: collections are deliberately small so that transcription stays
      fast (see

      [Spoken Terms requirements](/docs/customize/spoken-terms-requirements)),
      and stacking several against

      one profile would work against that. Manage collections with the

      [Spoken Terms
      endpoints](/api-reference/spoken-terms/list-all-spoken-terms).


      Deleting a style profile only unlinks its components. The glossaries,
      style rule lists, translation

      memories, example documents and Spoken Terms collection themselves are
      left in place and can be reused

      in another style profile.
  - name: MetaInformation
    description: Information about API usage and value ranges
  - name: TranslationMemories
    description: >-
      The translation memory endpoints allow you to manage your account's
      translation memories, used to store

      and reuse previously created translations. You can list and retrieve
      translation memories, page through

      their stored segments, create one by importing a TMX file, export one back
      to TMX, and delete one.

      Editing the contents of an existing translation memory is not supported;
      import a new one instead.


      Importing and exporting run as background jobs. Create the job, then poll

      `GET /v3/translation_memories/jobs/{job_id}` until it reports `completed`.


      Translation memories can be used in text translation requests by

      specifying the `translation_memory_id` parameter to denote a specific
      translation memory and the

      `translation_memory_threshold` which defines the minimum matching
      percentage required for a translation memory

      segment to be applied (recommended to be 75% or higher). A translation
      request fails with `404` if the

      translation memory does not exist or does not cover the requested language
      pair.
  - name: VoiceAPI
    description: >-
      The Voice API provides real-time voice transcription and translation
      services.

      Use a two-step flow: first request a streaming URL via REST, then
      establish a WebSocket connection for streaming audio and receiving
      transcriptions.
  - name: VoiceTranslateJob
    description: >-
      **Alpha.** Async voice translation jobs. This API may change without
      notice.
  - name: AdminApi
    description: >-
      Endpoints for organization administrators to manage API keys and retrieve
      usage analytics.
  - name: QualityEvaluation
    description: >-
      **Closed alpha.** Evaluate translation quality. Submit source/target
      segment pairs and retrieve per-segment quality issues categorized by error
      type and severity, with character spans pointing to where each issue
      occurs.
externalDocs:
  description: DeepL Pro - Plans and pricing
  url: https://www.deepl.com/pro#developer
paths:
  /v3/style_profiles/{style_profile_id}:
    patch:
      tags:
        - ManageStyleProfiles
      summary: Update a style profile
      description: >-
        Update a style profile. Fields you leave out of the request body are
        left unchanged, so you can

        send only what you want to change.


        Each component list you send replaces that linked set in full rather
        than adding to it. To add one

        glossary to a profile that already has two, send all three IDs. To
        unlink every component in a

        list, send an empty list.


        Requires an API key with the `style_profiles:write` scope.
      operationId: updateStyleProfile
      parameters:
        - name: style_profile_id
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/StyleProfileId'
          description: The ID of the style profile to update.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: >-
                    A new name for the style profile. At most 255 characters. A
                    style profile always has a

                    name, so an empty string is rejected with `400 Bad Request`
                    rather than clearing it.
                  type: string
                  example: Legal, German (2026)
                description:
                  description: >-
                    A new description for the style profile. At most 1000
                    characters. Send an empty string

                    to clear it.
                  type: string
                  example: Contract wording for the German market, 2026 revision.
                industry:
                  description: >-
                    A new industry for the style profile. At most 255
                    characters. Send an empty string to

                    clear it.
                  type: string
                  example: Legal
                glossary_ids:
                  description: >-
                    The IDs of the glossaries to link, in the order they should
                    be applied. Replaces the

                    linked glossaries in full. Send an empty list to unlink all
                    of them.
                  type: array
                  items:
                    type: string
                    format: uuid
                  example:
                    - 4d0a2e1c-6b93-4f7a-8d15-2c6e9a3b7f81
                style_rule_ids:
                  description: >-
                    The IDs of the style rule lists to link, in the order they
                    should be applied. At

                    most one style rule list per target language. Replaces the
                    linked style rule

                    lists in full. Send an empty list to unlink all of them.
                  type: array
                  items:
                    type: string
                    format: uuid
                  example:
                    - bd0a38f3-1831-440b-a8dd-2c702e2325ab
                translation_memory_ids:
                  description: >-
                    The IDs of the translation memories to link, in the order
                    they should be applied. At

                    most one translation memory per source language. Replaces
                    the linked translation

                    memories in full. Send an empty list to unlink all of them.
                  type: array
                  items:
                    type: string
                    format: uuid
                  example:
                    - a74d88fb-ed2a-4943-a664-a4512398b994
                example_document_ids:
                  description: >-
                    The IDs of the example documents to link, in the order they
                    should be applied. A

                    document must be fully imported before it can be linked.
                    Replaces the linked example

                    documents in full. Send an empty list to unlink all of them.
                  type: array
                  items:
                    type: string
                    format: uuid
                  example:
                    - 9e7b41c2-58da-4a03-b6f1-3c85e0d97a26
                spoken_terms_id:
                  description: >-
                    The ID of the Spoken Terms collection to link, applied when
                    the style profile is used

                    for speech rather than text. A style profile links at most
                    one collection, so a new ID

                    replaces the current link. Send an empty string to unlink
                    the collection, the same way

                    an empty string clears `description` and `industry`.


                    Requires a plan that includes DeepL Voice. Sending a
                    `spoken_terms_id` on a plan

                    without it is rejected with `403 Forbidden` and the style
                    profile is not changed. A

                    value that is not a valid UUID, or that names a collection
                    your account cannot access,

                    is rejected with `400 Bad Request` naming the field.
                  type: string
                  format: uuid
                  example: def3a26b-3e84-45b3-84ae-0c0aaf3525f7
                glossary_priority_enabled:
                  description: >-
                    Whether the glossaries linked to this style profile take
                    priority over its other

                    components.
                  type: boolean
                  example: true
            examples:
              RenameOnly:
                summary: Rename only
                value:
                  name: Legal, German (2026)
              ClearTheDescription:
                summary: Clear the description
                value:
                  description: ''
              ReplaceTheLinkedGlossaries:
                summary: Replace the linked glossaries
                value:
                  glossary_ids:
                    - 4d0a2e1c-6b93-4f7a-8d15-2c6e9a3b7f81
                    - 7b2f6d84-3c15-4e90-8a72-d5e1490bc637
              UnlinkAllExampleDocuments:
                summary: Unlink all example documents
                value:
                  example_document_ids: []
              UnlinkTheSpokenTermsCollection:
                summary: Unlink the Spoken Terms collection
                value:
                  spoken_terms_id: ''
      responses:
        '200':
          description: Returns the updated style profile.
          headers:
            X-Trace-ID:
              $ref: '#/components/headers/X-Trace-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StyleProfile'
              examples:
                Basic:
                  value:
                    style_profile_id: 3f1c9d0e-7a24-4b58-9c31-8f0e5d2a1b47
                    name: Legal, German (2026)
                    description: Contract wording for the German market.
                    industry: Legal
                    glossary_ids:
                      - 4d0a2e1c-6b93-4f7a-8d15-2c6e9a3b7f81
                      - 7b2f6d84-3c15-4e90-8a72-d5e1490bc637
                    style_rule_ids:
                      - bd0a38f3-1831-440b-a8dd-2c702e2325ab
                    translation_memory_ids:
                      - a74d88fb-ed2a-4943-a664-a4512398b994
                    example_document_ids: []
                    spoken_terms_id: def3a26b-3e84-45b3-84ae-0c0aaf3525f7
                    glossary_priority_enabled: true
                    creation_time: '2026-04-01T16:34:25.223Z'
                    updated_time: '2026-08-20T13:47:51.902Z'
        '400':
          description: >-
            The request was rejected and the style profile was not changed. This
            is returned for a

            malformed request body, for an empty `name`, for a value that is
            longer than the field allows,

            and for a component ID that cannot be used. A component ID that is
            not a valid UUID, or that

            names a component your account cannot access, is reported per field,
            so the message names the

            list, or `spoken_terms_id`, that the bad ID was passed in.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                UnusableComponentId:
                  summary: Unusable component ID
                  value:
                    message: One or more IDs in example_document_ids could not be used
                EmptyName:
                  summary: Empty name
                  value:
                    message: name must not be empty
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: >-
            Authorization failed. Please supply a valid `DeepL-Auth-Key` via the
            `Authorization` header.

            This error is also returned when the API key is scoped but does not
            include the

            `style_profiles:write` scope, and when the request sends a
            `spoken_terms_id` but your plan

            does not include DeepL Voice.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: >-
            The style profile could not be found. This is also returned for a
            style profile the account

            cannot see, so a `404` does not confirm that the ID is unused.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      security:
        - auth_header: []
components:
  schemas:
    StyleProfileId:
      type: string
      format: uuid
      description: A unique ID assigned to a style profile.
      example: 3f1c9d0e-7a24-4b58-9c31-8f0e5d2a1b47
    StyleProfile:
      type: object
      required:
        - style_profile_id
        - name
        - glossary_ids
        - style_rule_ids
        - translation_memory_ids
        - example_document_ids
        - glossary_priority_enabled
        - creation_time
        - updated_time
      properties:
        style_profile_id:
          $ref: '#/components/schemas/StyleProfileId'
        name:
          description: >-
            Name associated with the style profile. At most 255 characters. A
            style profile always has a

            name, so it cannot be cleared once it is set.
          type: string
          example: Legal, German
        description:
          description: >-
            Free-text description of the style profile. At most 1000 characters.
            Omitted from the response

            when the style profile has no description.
          type: string
          example: Contract wording for the German market.
        industry:
          description: >-
            The industry the style profile is written for. At most 255
            characters. Omitted from the response

            when the style profile has no industry.
          type: string
          example: Legal
        glossary_ids:
          description: >-
            The IDs of the glossaries linked to the style profile, in the order
            they are applied.
          type: array
          items:
            type: string
            format: uuid
          example:
            - 4d0a2e1c-6b93-4f7a-8d15-2c6e9a3b7f81
        style_rule_ids:
          description: >-
            The IDs of the style rule lists linked to the style profile, in the
            order they are applied.
          type: array
          items:
            type: string
            format: uuid
          example:
            - bd0a38f3-1831-440b-a8dd-2c702e2325ab
        translation_memory_ids:
          description: >-
            The IDs of the translation memories linked to the style profile, in
            the order they are applied.

            A style profile links at most one translation memory per source
            language.
          type: array
          items:
            type: string
            format: uuid
          example:
            - a74d88fb-ed2a-4943-a664-a4512398b994
        example_document_ids:
          description: >-
            The IDs of the example documents linked to the style profile, in the
            order they are applied.
          type: array
          items:
            type: string
            format: uuid
          example:
            - 9e7b41c2-58da-4a03-b6f1-3c85e0d97a26
        spoken_terms_id:
          description: >-
            The ID of the Spoken Terms collection linked to the style profile,
            applied when the profile is

            used for speech rather than text. A style profile links at most one
            collection. Omitted from

            the response when no collection is linked. Collections are managed
            with the

            [Spoken Terms
            endpoints](/api-reference/spoken-terms/list-all-spoken-terms).
          type: string
          format: uuid
          example: def3a26b-3e84-45b3-84ae-0c0aaf3525f7
        glossary_priority_enabled:
          description: >-
            Whether the glossaries linked to the style profile take priority
            over its other components.
          type: boolean
          example: true
        creation_time:
          description: >-
            The creation time of the style profile in the ISO 8601-1:2019 format
            (e.g.: `2021-08-03T14:16:18.329Z`).
          type: string
          format: date-time
          example: '2026-04-01T16:34:25.223Z'
        updated_time:
          description: >-
            The time of the last update to the style profile in the ISO
            8601-1:2019 format (e.g.: `2021-08-03T14:16:18.329Z`).
          type: string
          format: date-time
          example: '2026-08-06T09:12:44.108Z'
    ErrorResponse:
      type: object
      required:
        - message
      properties:
        message:
          type: string
          description: A human-readable description of the error.
        code:
          type: string
          description: >-
            A machine-readable identifier for the error, when available. Clients
            should match on this value rather than on `message` when branching
            on error types.
          example: invalid_content_type
  headers:
    X-Trace-ID:
      description: >-
        A unique identifier for the request that can be included in bug reports
        to DeepL support.
      schema:
        type: string
      example: 501c3d93cc0c4f11ae2f60a226c2f0f0
  responses:
    Unauthorized:
      description: >-
        Authorization failed. Please supply a valid `DeepL-Auth-Key` via the
        `Authorization` header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Too many requests. Please wait and resend your request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: Internal error.
    ServiceUnavailable:
      description: Resource currently unavailable. Try again later.
  securitySchemes:
    auth_header:
      type: apiKey
      description: >
        Authentication with `Authorization` header and `DeepL-Auth-Key`
        authentication scheme. Example: `DeepL-Auth-Key <api-key>`
      name: Authorization
      in: header
      x-default: 'DeepL-Auth-Key '

````