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.
Bring your own key. This API needs your own DeepL API Documentation key - get one from the provider, add it once below, and the proxy injects it on every call. Your OmniStream plan covers the unified SDK, key storage, and proxy - the provider's own rate limits still apply to your key.
This is a community listing. If you own this API, you can request ownership.
npm install omnistream-sdkimport { OmniClient } from "omnistream-sdk";
const omni = new OmniClient({ token: process.env.OMNI_KEY! });
// One key reaches every API on the marketplace.
const data = await omni.call("deepl-api-documentation/translateText");One install, one key - the same client calls every API on the marketplace.
Request Translation
Upload and Translate a Document
Check Document Status
Download Translated Document
List all Glossaries
Create a Glossary
Retrieve Glossary Details
/**
* DeepLAPIDocumentation - generated by OmniStream from DeepL API Documentation's OpenAPI spec.
* One typed method per endpoint. A single Omni key reaches the API.
*/
const DEFAULT_BASE = "https://grid.skinvaults.online/v1/proxy/deepl-api-documentation";
export class DeepLAPIDocumentationError extends Error {
status: number;
code?: string;
constructor(status: number, code: string | undefined, message?: string) {
super(message || `DeepLAPIDocumentation error ${status}`);
this.name = "DeepLAPIDocumentationError";
this.status = status;
this.code = code;
}
}
export interface DeepLAPIDocumentationOptions {
baseUrl?: string;
fetch?: typeof fetch;
timeoutMs?: number;
}
export class DeepLAPIDocumentation {
/** @param token Your OmniStream key (one key for every API). */
constructor(private token: string, private opts: DeepLAPIDocumentationOptions = {}) {
if (!token) throw new Error("DeepLAPIDocumentation: token is required");
}
rateLimit: { remainingMinute?: number; remainingDay?: number } | null = null;
private async _request(method: string, path: string, { params, body }: { params?: Record<string, unknown>; body?: unknown } = {}): Promise<any> {
const f = this.opts.fetch ?? globalThis.fetch;
const url = new URL((this.opts.baseUrl ?? DEFAULT_BASE).replace(/\/+$/, "") + path);
if (params) for (const [k, v] of Object.entries(params)) if (v != null) url.searchParams.set(k, String(v));
const headers: Record<string, string> = { "x-omni-key": this.token };
if (body !== undefined) headers["content-type"] = "application/json";
const res = await f(url, { method, headers, body: body !== undefined ? JSON.stringify(body) : undefined });
this.rateLimit = {
remainingMinute: Number(res.headers.get("x-ratelimit-remaining-minute")) || undefined,
remainingDay: Number(res.headers.get("x-ratelimit-remaining-day")) || undefined,
};
const data = await res.json().catch(() => ({}));
if (!res.ok) throw new DeepLAPIDocumentationError(res.status, data?.error?.code, data?.error?.message);
return data.data ?? data;
}
/** Request Translation */
translateText(body: unknown): Promise<any> {
return this._request("POST", "/v2/translate", { body });
}
/** Upload and Translate a Document */
translateDocument(): Promise<any> {
return this._request("POST", "/v2/document", { });
}
/** Check Document Status */
getDocumentStatus(body: unknown, params: { "document_id": string }): Promise<any> {
return this._request("POST", "/v2/document/{document_id}", { body, params });
}
/** Download Translated Document */
downloadDocument(body: unknown, params: { "document_id": string }): Promise<any> {
return this._request("POST", "/v2/document/{document_id}/result", { body, params });
}
/** List all Glossaries */
listMultilingualGlossaries(): Promise<any> {
return this._request("GET", "/v3/glossaries", {});
}
/** Create a Glossary */
createMultilingualGlossary(body: unknown): Promise<any> {
return this._request("POST", "/v3/glossaries", { body });
}
/** Retrieve Glossary Details */
getMultilingualGlossary(params: { "glossary_id": string }): Promise<any> {
return this._request("GET", "/v3/glossaries/{glossary_id}", { params });
}
/** Edit glossary details */
patchMultilingualGlossary(body: unknown, params: { "glossary_id": string }): Promise<any> {
return this._request("PATCH", "/v3/glossaries/{glossary_id}", { body, params });
}
/** Delete a Glossary */
deleteMultilingualGlossary(params: { "glossary_id": string }): Promise<any> {
return this._request("DELETE", "/v3/glossaries/{glossary_id}", { params });
}
/** Retrieve Glossary Entries */
getMultilingualGlossaryEntries(params: { "glossary_id": string; "source_lang": string; "target_lang": string }): Promise<any> {
return this._request("GET", "/v3/glossaries/{glossary_id}/entries", { params });
}
/** Replaces or creates a dictionary in the glossary with the specified entries. */
replaceDictionary(body: unknown, params: { "glossary_id": string }): Promise<any> {
return this._request("PUT", "/v3/glossaries/{glossary_id}/dictionaries", { body, params });
}
/** Deletes the dictionary associated with the given language pair with the given glossary ID. */
deleteDictionary(params: { "glossary_id": string; "source_lang": string; "target_lang": string }): Promise<any> {
return this._request("DELETE", "/v3/glossaries/{glossary_id}/dictionaries", { params });
}
/** List all Glossaries */
listGlossaries(): Promise<any> {
return this._request("GET", "/v2/glossaries", {});
}
/** Create a Glossary */
createGlossary(body: unknown): Promise<any> {
return this._request("POST", "/v2/glossaries", { body });
}
/** Retrieve Glossary Details */
getGlossary(params: { "glossary_id": string }): Promise<any> {
return this._request("GET", "/v2/glossaries/{glossary_id}", { params });
}
/** Delete a Glossary */
deleteGlossary(params: { "glossary_id": string }): Promise<any> {
return this._request("DELETE", "/v2/glossaries/{glossary_id}", { params });
}
/** Retrieve Glossary Entries */
getGlossaryEntries(params: { "glossary_id": string; "Accept"?: string }): Promise<any> {
return this._request("GET", "/v2/glossaries/{glossary_id}/entries", { params });
}
/** Improve text */
rephraseText(body: unknown): Promise<any> {
return this._request("POST", "/v2/write/rephrase", { body });
}
/** Correct text */
correctText(body: unknown): Promise<any> {
return this._request("POST", "/v2/write/correct", { body });
}
/** Check Usage and Limits */
getUsage(): Promise<any> {
return this._request("GET", "/v2/usage", {});
}
/** List all Spoken Terms collections */
listSpokenTerms(): Promise<any> {
return this._request("GET", "/v3/spoken-terms", {});
}
/** Create Spoken Terms collection */
createSpokenTerms(body: unknown): Promise<any> {
return this._request("POST", "/v3/spoken-terms", { body });
}
/** Retrieve Spoken Terms collection details */
getSpokenTerms(params: { "spoken_terms_id": string }): Promise<any> {
return this._request("GET", "/v3/spoken-terms/{spoken_terms_id}", { params });
}
/** Edit Spoken Terms collection details */
patchSpokenTerms(body: unknown, params: { "spoken_terms_id": string }): Promise<any> {
return this._request("PATCH", "/v3/spoken-terms/{spoken_terms_id}", { body, params });
}
/** Delete Spoken Terms collection */
deleteSpokenTerms(params: { "spoken_terms_id": string }): Promise<any> {
return this._request("DELETE", "/v3/spoken-terms/{spoken_terms_id}", { params });
}
/** Retrieve Spoken Terms entries */
getSpokenTermsEntries(params: { "spoken_terms_id": string; "lang": string }): Promise<any> {
return this._request("GET", "/v3/spoken-terms/{spoken_terms_id}/entries", { params });
}
/** Replace or create a term list */
putSpokenTermsList(body: unknown, params: { "spoken_terms_id": string }): Promise<any> {
return this._request("PUT", "/v3/spoken-terms/{spoken_terms_id}/term-lists", { body, params });
}
/** Delete a term list */
deleteSpokenTermsList(params: { "spoken_terms_id": string; "lang": string }): Promise<any> {
return this._request("DELETE", "/v3/spoken-terms/{spoken_terms_id}/term-lists", { params });
}
/** Retrieve Language Resources */
getLanguageResources(): Promise<any> {
return this._request("GET", "/v3/languages/resources", {});
}
/** Retrieve Languages */
getLanguages(params: { "resource": string; "include"?: unknown[] }): Promise<any> {
return this._request("GET", "/v3/languages", { params });
}
/** List translation memories */
listTranslationMemories(params: { "page"?: number; "page_size"?: number }): Promise<any> {
return this._request("GET", "/v3/translation_memories", { params });
}
/** Import a translation memory */
createTranslationMemoryImport(body: unknown): Promise<any> {
return this._request("POST", "/v3/translation_memories/import", { body });
}
/** Retrieve an import or export job */
getTranslationMemoryJob(params: { "job_id": string }): Promise<any> {
return this._request("GET", "/v3/translation_memories/jobs/{job_id}", { params });
}
/** Retrieve a translation memory */
getTranslationMemory(params: { "translation_memory_id": string }): Promise<any> {
return this._request("GET", "/v3/translation_memories/{translation_memory_id}", { params });
}
/** Delete a translation memory */
deleteTranslationMemory(params: { "translation_memory_id": string }): Promise<any> {
return this._request("DELETE", "/v3/translation_memories/{translation_memory_id}", { params });
}
/** List translation memory segments */
getTranslationMemorySegments(params: { "translation_memory_id": string; "page_size"?: number; "page_cursor"?: string; "filter_text"?: string; "filter_case_sensitive"?: boolean }): Promise<any> {
return this._request("GET", "/v3/translation_memories/{translation_memory_id}/segments", { params });
}
/** Export a translation memory */
createTranslationMemoryExport(params: { "translation_memory_id": string }): Promise<any> {
return this._request("POST", "/v3/translation_memories/{translation_memory_id}/export", { params });
}
/** Retrieve style rule lists */
getStyleRuleLists(params: { "page"?: number; "page_size"?: number; "detailed"?: boolean }): Promise<any> {
return this._request("GET", "/v3/style_rules", { params });
}
/** Create a style rule list */
createStyleRuleList(body: unknown): Promise<any> {
return this._request("POST", "/v3/style_rules", { body });
}
/** Get a style rule list */
getStyleRuleList(params: { "style_id": string }): Promise<any> {
return this._request("GET", "/v3/style_rules/{style_id}", { params });
}
/** Update a style rule list's name */
updateStyleRuleList(body: unknown, params: { "style_id": string }): Promise<any> {
return this._request("PATCH", "/v3/style_rules/{style_id}", { body, params });
}
/** Delete a style rule list */
deleteStyleRuleList(params: { "style_id": string }): Promise<any> {
return this._request("DELETE", "/v3/style_rules/{style_id}", { params });
}
/** Replace configured rules for a style rule list */
updateStyleRuleConfiguredRules(body: unknown, params: { "style_id": string }): Promise<any> {
return this._request("PUT", "/v3/style_rules/{style_id}/configured_rules", { body, params });
}
/** Create a custom instruction */
createCustomInstruction(body: unknown, params: { "style_id": string }): Promise<any> {
return this._request("POST", "/v3/style_rules/{style_id}/custom_instructions", { body, params });
}
/** Get a custom instruction */
getCustomInstruction(params: { "style_id": string; "instruction_id": string }): Promise<any> {
return this._request("GET", "/v3/style_rules/{style_id}/custom_instructions/{instruction_id}", { params });
}
/** Replace a custom instruction */
updateCustomInstruction(body: unknown, params: { "style_id": string; "instruction_id": string }): Promise<any> {
return this._request("PUT", "/v3/style_rules/{style_id}/custom_instructions/{instruction_id}", { body, params });
}
/** Delete a custom instruction */
deleteCustomInstruction(params: { "style_id": string; "instruction_id": string }): Promise<any> {
return this._request("DELETE", "/v3/style_rules/{style_id}/custom_instructions/{instruction_id}", { params });
}
/** Request Reconnection */
requestReconnection(params: { "token": string }): Promise<any> {
return this._request("GET", "/v3/voice/realtime", { params });
}
/** Get Streaming URL */
getVoiceStreamingUrl(body: unknown): Promise<any> {
return this._request("POST", "/v3/voice/realtime", { body });
}
/** Create a voice translation job */
createVoiceTranslateJob(body: unknown, params: { "include"?: unknown[] }): Promise<any> {
return this._request("POST", "/v1/jobs/voice/translate", { body, params });
}
/** Get voice translation job status */
getVoiceTranslateJobStatus(params: { "job_id": string; "include"?: unknown[] }): Promise<any> {
return this._request("GET", "/v1/jobs/voice/translate/{job_id}", { params });
}
/** Submit an evaluation job */
submitQualityEvaluation(body: unknown): Promise<any> {
return this._request("POST", "/v1/quality-evaluation", { body });
}
/** Poll for the evaluation result */
pollQualityEvaluation(params: { "job_id": string }): Promise<any> {
return this._request("GET", "/v1/quality-evaluation/{job_id}", { params });
}
}
export default DeepLAPIDocumentation;
No reviews yet. Be the first to rate this API.
Yes. DeepL API Documentation uses apiKey authentication, so you bring your own key from the provider. You store it once on OmniStream and the proxy injects it into every call, so your code only ever sends your Omni key.
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. It exposes 53 endpoints over POST, GET, PATCH, DELETE, PUT, including POST /v2/translate, POST /v2/document, POST /v2/document/{document_id}.
Install the OmniStream SDK for your language and call DeepL API Documentation through it. The client is generated from this API's OpenAPI spec, so parameters and responses are fully typed, and the same client also calls every other API in the marketplace.
You can start on the free plan. OmniStream charges for the unified SDK, key storage and proxy rather than for DeepL API Documentation itself, and DeepL API Documentation's own rate limits still apply to your provider key.
Free Dictionary: A free, keyless English dictionary API - definitions, phonetics, synonyms, antonyms, and example sentences.
Edit glossary details
Delete a Glossary
Retrieve Glossary Entries
Replaces or creates a dictionary in the glossary with the specified entries.
Deletes the dictionary associated with the given language pair with the given glossary ID.
List all Glossaries
Create a Glossary
Retrieve Glossary Details
Delete a Glossary
Retrieve Glossary Entries
Improve text
Correct text
Check Usage and Limits
List all Spoken Terms collections
Create Spoken Terms collection
Retrieve Spoken Terms collection details
Edit Spoken Terms collection details
Delete Spoken Terms collection
Retrieve Spoken Terms entries
Replace or create a term list
Delete a term list
Retrieve Language Resources
Retrieve Languages
List translation memories
Import a translation memory
Retrieve an import or export job
Retrieve a translation memory
Delete a translation memory
List translation memory segments
Export a translation memory
Retrieve style rule lists
Create a style rule list
Get a style rule list
Update a style rule list's name
Delete a style rule list
Replace configured rules for a style rule list
Create a custom instruction
Get a custom instruction
Replace a custom instruction
Delete a custom instruction
Request Reconnection
Get Streaming URL
Create a voice translation job
Get voice translation job status
Submit an evaluation job
Poll for the evaluation result