Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@
"docs/learning-how-tos/cookbook/google-sheets",
"docs/learning-how-tos/cookbook/automating-indie-game-localization-with-the-deepl-api-and-godot",
"docs/learning-how-tos/cookbook/java-document-translator",
"docs/learning-how-tos/cookbook/usage-analytics-dashboard"
"docs/learning-how-tos/cookbook/usage-analytics-dashboard",
"docs/learning-how-tos/cookbook/nodejs-proxy"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion docs/best-practices/cors-requests.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ If you realize your API authentication key has been compromised, log in to your

To safely use the DeepL API on your website or application, you can route your requests through your own backend servers. This keeps your credentials hidden and allows you to specify CORS policies and rate limits as required by your use case.

DeepL's official open-source [client libraries](/docs/getting-started/client-libraries) can help you create these backend implementations.
DeepL's official open-source [client libraries](/docs/getting-started/client-libraries) can help you create these backend implementations. For prototyping and frontend testing, you can use the [DeepL API Node.js Proxy](https://github.com/DeepLcom/deepl-api-nodejs-proxy/), a lightweight ready-to-use proxy server that handles CORS and keeps your API key secure.
5 changes: 5 additions & 0 deletions docs/learning-how-tos/cookbook.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,9 @@ public: true

Updated on 2025-12-17
</Card>
<Card title="Node.js Proxy Server" icon="server" href="/docs/learning-how-tos/cookbook/nodejs-proxy">
A ready-to-use proxy server for secure browser-based API calls

Updated on 2024-10-30
</Card>
</CardGroup>
36 changes: 36 additions & 0 deletions docs/learning-how-tos/cookbook/nodejs-proxy.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
title: "Node.js Proxy Server"
description: "A lightweight local proxy for the DeepL API that enables browser-based applications to bypass CORS restrictions."
public: true
---

<Card title="GitHub - DeepLcom/deepl-api-nodejs-proxy" icon="github" horizontal href="https://github.com/DeepLcom/deepl-api-nodejs-proxy">
DeepL API Node.js Proxy on GitHub
</Card>


## Overview

This lightweight proxy server lets you call the DeepL API directly from browser-based applications. In simpler terms, it lets you make DeepL API calls from your client-side JavaScript without running into browser security restrictions.

Since the DeepL API doesn't allow direct browser requests (see [CORS requests documentation](/docs/best-practices/cors-requests)), this proxy handles CORS headers and keeps your API key secure. Perfect for hackathons, demos, and quick prototypes where you need to get up and running fast.

Built with Node.js and Express with minimal dependencies. Supports all DeepL API endpoints including text translation, document translation, and glossaries. Includes an interactive web demo for testing translations right in your browser.

<Note>
This proxy is intended for prototyping and frontend testing. For production environments, consider implementing your own backend service with additional security measures and rate limiting.
</Note>

## Quick Start

The proxy includes an interactive setup wizard to get you started quickly. Clone the repo, run the setup, and start sending requests from your browser. Check out the [GitHub repository](https://github.com/DeepLcom/deepl-api-nodejs-proxy) for full setup instructions and Docker support.

## Screenshots

<Frame>
<img src="https://raw.githubusercontent.com/DeepLcom/deepl-api-nodejs-proxy/main/assets/proxy-running.png" alt="Node.js proxy server running and ready to accept requests" />
</Frame>

<Frame>
<img src="https://raw.githubusercontent.com/DeepLcom/deepl-api-nodejs-proxy/main/assets/dashboard-demo.png" alt="Interactive web demo interface for testing translations" />
</Frame>