Skip to content

docs: pipeline-generated pages (?, Languages, Voice) - #447

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
docs/pipeline-20260922-112908
Open

github-actions[bot] wants to merge 1 commit into
mainfrom
docs/pipeline-20260922-112908

Conversation

@github-actions

Copy link
Copy Markdown

Summary

Generated documentation pages from the agentic docs pipeline (run 20260922-112908).

Families: Languages, Voice, unknown
Model: claude-sonnet-4-6

Pages added/updated

  • docs/voice/translate-a-pre-recorded-audio-file.mdx — missing_group_coverage
  • docs/languages/query-supported-languages-for-a-deepl-api-resource.mdx — missing_group_coverage
  • docs/learning-how-tos/cookbook/google-sheets — expanded thin page

Quality checks

  • Generation errors: 1
    • [Errno 21] Is a directory: '/home/runner/work/api-docs/api-docs/docs/resources/breaking-changes-change-notices'

How to review

  1. Check out this branch and run mint dev to preview locally
  2. Review each page for accuracy and tone
  3. Verify navigation in docs.json makes sense

Generated by the agentic docs pipeline (pipeline/generate.py)

Generated 3 pages for: Languages, Voice, unknown
  - docs/voice/translate-a-pre-recorded-audio-file.mdx: No guide (tutorial or how-to) covers the 'Translate Audio Files' endpoints
  - docs/languages/query-supported-languages-for-a-deepl-api-resource.mdx: No guide (tutorial or how-to) covers the 'Languages' endpoints
  - docs/learning-how-tos/cookbook/google-sheets: docs/learning-how-tos/cookbook/google-sheets has under 100 words
@mintlify

mintlify Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
deepl-c950b784 🟢 Ready View Preview Sep 22, 2026, 11:35 AM

💡 Tip: Enable Automations to automatically generate PRs for you.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pipeline review: 11 finding(s) from review-report.json.

"usable_as_target": true,
"features": {
"formality": { "status": "stable" },
"glossary": { "status": "stable" },

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Numbered steps imply strict sequence; steps 3-4 are independent filters

Steps 3 and 4 are presented as sequential but they are independent operations (filter source/target vs. check feature availability). A developer building only a language selector doesn't need step 4, and vice versa. The numbered step format implies a strict linear workflow, which may mislead readers.

Suggested fix: Restructure step 4 as a separate H2 section ('Check feature availability') rather than a numbered step in the same sequence, or add a brief note after step 2 clarifying that steps 3 and 4 are independent follow-ons the reader can use based on their needs.

}
},
{
"lang": "en-US",

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Python examples use different API key placeholder styles

The curl examples use [yourAuthKey] (line 40, 130, 143) while the Python examples use "YOUR_API_KEY" (lines 83, 96). Placeholder styles should be consistent across all examples in the same document.

Suggested fix: Standardize to one placeholder style throughout. Using YOUR_API_KEY (no brackets) in both curl and Python examples is idiomatic and consistent: change [yourAuthKey] in curl examples to YOUR_API_KEY.


_, targets = get_languages("YOUR_API_KEY", "translate_text")
print(supports_formality("de", targets)) # True
print(supports_formality("en-US", targets)) # False

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Step 5 contains two separate curl examples without explanation of when to combine parameters

The two curl examples in step 5 show include=beta alone and then include=beta&include=external together, but don't explain that include is a repeatable parameter or why the second example uses both. A reader may not realize they can combine these independently.

Suggested fix: Add one sentence before or between the two examples explaining that include is a repeatable query parameter and can be combined, e.g. 'You can combine multiple include values by repeating the parameter.'

<Info>
`GET /v3/languages` replaces the deprecated `GET /v2/languages` endpoint. If you're currently using `/v2/languages`, see the [migration guide](/docs/languages/migrating-from-v2-languages).
</Info>

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Info box references a migration guide that may not exist yet

The <Info> block links to /docs/languages/migrating-from-v2-languages. If this page doesn't exist, the link will be broken. The Next steps section also links to it.

Suggested fix: Verify the migration guide exists before publishing. If it doesn't exist yet, remove the link or replace with a placeholder note and file a ticket to create the page.


- A DeepL API key. Get one from [your account page](https://www.deepl.com/your-account/keys).
- If you're on the Free plan, replace `https://api.deepl.com` with `https://api-free.deepl.com` in all examples.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Prerequisites block mixes account setup with request configuration

The Prerequisites section contains two items: getting an API key (one-time account setup) and swapping the base URL for Free plan users (a per-request concern). Mixing these could cause Free plan users to miss the URL swap if they already have an API key.

Suggested fix: Move the Free plan base URL note into a <Note> or <Tip> callout placed just before the first curl example, keeping prerequisites focused on what you need before you start (the API key only).

After your file is uploaded, DeepL begins processing. Check the job status by polling the status endpoint with your `job_id`.

```bash
curl https://api.deepl.com/v1/jobs/voice/translate/a74d88fb-ed2a-4943-a664-a4512398b994 \

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Status lifecycle mention could link to reference for completeness

The status transition sequence ('pending → uploaded → processing → complete') is described inline but there is no link to the API reference for the full list of terminal states or error codes. Developers debugging failures will want more detail.

Suggested fix: Add a parenthetical link after the status lifecycle description: 'See the Get Job Status reference for all possible status values and error codes.'


Save the `job_id` — you'll need it to poll for status. The `upload_url` is a pre-signed URL; save that too.

<Warning>

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Step 2 upload request omits the Signature header if required

The create-job response includes a signature field alongside the upload_url, but the Step 2 curl example does not use it. If the signature must be passed as a header or query parameter during upload, the example is incomplete and non-runnable. If it is not needed for upload (only for download), the guide should explicitly say what the signature is for.


```json
{
"job_id": "a74d88fb-ed2a-4943-a664-a4512398b994",

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No guidance on what to do if the upload window expires

The Warning notes that the 5-minute upload window can expire but only says 'you'll need to create a new one.' Adding one sentence on what state the original job will be in (and whether it can be queried) would help developers clean up correctly.

Suggested fix: Append to the Warning: 'The expired job's status will reflect the abandonment; you can discard the original job_id.'

## The four-step workflow

Translating a file always follows the same four steps:

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

API Free plan base URL note is repeated context, not progressive

The note about api-free.deepl.com is mentioned here but likely appears in other docs in the same section. If there is a shared prerequisites or getting-started page that covers this, a link there would be cleaner than repeating it inline.

Poll every 5–10 seconds with exponential backoff until all results reach a terminal status (`complete`, `failed`, or `downloaded`). For files close to the 3-hour or 1 GB limit, allow up to 30 minutes of polling before treating the job as stalled.

When a target completes, its result entry gains a `download_url` and `signature`:

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Handling partial failures section is brief and could be more actionable

The 'Handling partial failures' section is only two sentences and doesn't show an example of the error structure or give guidance on which error messages are retryable vs. permanent.

Suggested fix: Expand with one concrete example: show an error object with a realistic message, and note whether any error types indicate a retryable condition (e.g., transient vs. permanent failures). Alternatively, link to the reference for the error schema.

This branch was successfully deployed

1 active deployment
staging — 97336ecb Deployed Sep 22, 2026 by mintlify[bot]
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.

0 participants