Skip to content

docs: add style_profile_id to POST /v2/translate - #437

Closed
lawl-dev wants to merge 7 commits into
DeepL:mainfrom
lawl-dev:docs/translate-style-profile-id
Closed

lawl-dev wants to merge 7 commits into
DeepL:mainfrom
lawl-dev:docs/translate-style-profile-id

Conversation

@lawl-dev

Copy link
Copy Markdown
Contributor

Builds on #427 (style profile endpoints) and shows its commits until that merges; only the last commit is new here.

Documents style_profile_id on POST /v2/translate (JSON and form-encoded): the profile is applied per text once the source language is known, components that do not fit a text's language pair are left out without an error, and the parameter cannot be combined with customizations or the individual customization parameters (400). Unknown or inaccessible profiles return 404; accounts without style profiles get 403. Adds the style profiles row to the customize overview.

openapi.json regenerated from the YAML.

Maxim Brunnmeier added 7 commits September 1, 2026 14:05
Add API reference for the /v3/style_profiles endpoints: list, retrieve,
create, partially update, and delete. A style profile bundles glossaries,
style rule lists, translation memories, and example documents behind a
single style_profile_id, so one ID stands for a whole translation
configuration.

Adds the ManageStyleProfiles tag, the StyleProfile and StyleProfileId
schemas, five endpoint pages, and the matching navigation group.
Character limits are stated in prose in the field descriptions rather
than encoded in the schema, per the OpenAPI conventions in CLAUDE.md.

openapi.json was regenerated with:
yq -o=json '.' api-reference/openapi.yaml > api-reference/openapi.json
Add spoken_terms_id to the style profile schema and to the create and
update request bodies. A style profile links at most one Spoken Terms
collection, applied when the profile is used for speech rather than text,
and the tag description explains why the field is singular.

Document the error path: a spoken_terms_id sent on a plan without DeepL
Voice returns 403, and a value that is not a valid UUID, or that names a
collection the account cannot access, returns 400 naming the field. On
update an empty string unlinks the collection. Deleting a style profile
unlinks the collection rather than deleting it, like the rest of the
bundle.

openapi.json was regenerated with:
yq -o=json '.' api-reference/openapi.yaml > api-reference/openapi.json
…language

The one-translation-memory-per-source-language rule was documented but its
counterpart for style rule lists was not, so a caller linking two lists for
the same target language only learned about the limit from a 400.

openapi.json was regenerated with:
yq -o=json '.' api-reference/openapi.yaml > api-reference/openapi.json
The field is being removed from the product surface, so it should not be
documented on the style profile endpoints. Removed from the create and update
request bodies, the StyleProfile schema and its required list, and every
example.

openapi.json was regenerated with:
yq -o=json '.' api-reference/openapi.yaml > api-reference/openapi.json
`spoken_terms_id` becomes `spoken_terms_ids`, an array, so the field does not
have to change shape when a style profile is allowed to link more than one
Spoken Terms collection. Unlinking is now an empty array, like the other
component lists, rather than an empty string.

`glossary_priority_enabled` becomes `glossary_priority_order_enabled`, which
says that the order of `glossary_ids` is what sets the priority rather than
that glossaries outrank the other components.

Only the style profile endpoints and schema change; the `/v3/spoken-terms`
resource and the `/v3/voice/realtime` parameter keep their own naming.

openapi.json was regenerated with:
yq -o=json '.' api-reference/openapi.yaml > api-reference/openapi.json
The field is in StyleProfile.required and the API always returns it, but the
second profile in the list example omitted it, so that example did not
validate against its own schema.

openapi.json was regenerated with:
yq -o=json '.' api-reference/openapi.yaml > api-reference/openapi.json
A request names a style profile instead of listing its components. Documents how the profile is applied per text once the source language is known, that components which do not fit a text's language pair are left out, the exclusivity with the customizations object and the individual parameters (400), unknown profiles (404), and accounts without style profiles (403). Adds the style profiles row to the customize overview.
@lawl-dev

Copy link
Copy Markdown
Contributor Author

Recreated from a branch in this repository, stacked on #427.

@lawl-dev lawl-dev closed this Sep 14, 2026
@lawl-dev
lawl-dev deleted the docs/translate-style-profile-id branch September 14, 2026 12:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant