| title | Quickstart |
|---|---|
| public | true |
| mode | wide |
New user? Follow these quick steps to get started with the DeepL API.
Visit [our plans page](https://www.deepl.com/pro-api#api-pricing), choose a plan, and sign up.<Tip>
If you already have a DeepL Translator account, you will need to log out and [create a new account for the DeepL API](https://support.deepl.com/hc/articles/360019358999-Change-plan).
</Tip>
If you use the sample code below, be sure to replace `{YOUR_API_KEY}` with your own API key.
<Tabs>
<Tab title="HTTP Request">
<Tip>
If you chose a free API plan and you are writing cURL or HTTP requests, replace `https://api.deepl.com` with `https://api-free.deepl.com`.
</Tip>
```http Sample request
POST /v2/translate HTTP/2
Host: api.deepl.com
Authorization: DeepL-Auth-Key [yourAuthKey]
User-Agent: YourApp/1.2.3
Content-Length: 45
Content-Type: application/json
{"text":["Hello, world!"],"target_lang":"DE"}
```
```json Sample response
{
"translations": [
{
"detected_source_language": "EN",
"text": "Hallo, Welt!"
}
]
}
```
</Tab>
<Tab title="cURL">
<Tip>
If you chose a free API plan and you are writing cURL or HTTP requests, replace `https://api.deepl.com` with `https://api-free.deepl.com`.
</Tip>
```sh Set the API key
export API_KEY={YOUR_API_KEY}
```
```sh Sample request
curl -X POST https://api.deepl.com/v2/translate \
--header "Content-Type: application/json" \
--header "Authorization: DeepL-Auth-Key $API_KEY" \
--data '{
"text": ["Hello world!"],
"target_lang": "DE"
}'
```
```json Sample response
{
"translations": [
{
"detected_source_language": "EN",
"text": "Hallo, Welt!"
}
]
}
```
</Tab>
<Tab title="Python">
```sh Install client library
pip install deepl
```
```py Sample request
import deepl
auth_key = "{YOUR_API_KEY}" # replace with your key
deepl_client = deepl.DeepLClient(auth_key)
result = deepl_client.translate_text("Hello, world!", target_lang="DE")
print(result.text)
```
```text Sample output
Hallo, Welt!
```
<Tip>
In production code, it's safer to store your API key in an environment variable.
</Tip>
</Tab>
<Tab title="JavaScript">
```sh Install client library
npm install deepl-node
```
```javascript Sample request
import * as deepl from 'deepl-node';
const authKey = "{YOUR_API_KEY}"; // replace with your key
const deeplClient = new deepl.DeepLClient(authKey);
(async () => {
const result = await deeplClient.translateText('Hello, world!', null, 'de');
console.log(result.text);
})();
```
```text Sample output
Hallo, Welt!
```
<Tip>
In production code, it's safer to store your API key in an environment variable.
</Tip>
</Tab>
<Tab title="PHP">
```sh Install client library
composer require deeplcom/deepl-php
```
```php Sample request
require_once 'vendor/autoload.php';
use DeepL\Client;
$authKey = "{YOUR_API_KEY}"; // replace with your key
$deeplClient = new DeepL\DeepLClient($authKey);
$result = $deeplClient->translateText('Hello, world!', null, 'de');
echo $result->text;
```
```text Sample output
Hallo, Welt!
```
<Tip>
In production code, it's safer to store your API key in an environment variable.
</Tip>
</Tab>
<Tab title="C#">
```sh Install client library
dotnet add package DeepL.net
```
```csharp Sample request
using DeepL; // this imports the DeepL namespace. Use the code below in your main program.
var authKey = "{YOUR_API_KEY}"; // replace with your key
var client = new DeepLClient(authKey);
var translatedText = await client.TranslateTextAsync(
"Hello, world!",
null,
LanguageCode.German);
Console.WriteLine(translatedText);
```
```text Sample output
Hallo, Welt!
```
<Tip>
In production code, it's safer to store your API key in an environment variable.
</Tip>
</Tab>
<Tab title="Java">
```java Install client library
// For instructions on installing the DeepL Java library,
// see https://github.com/DeepLcom/deepl-java?tab=readme-ov-file#installation
```
```java Sample request
import com.deepl.api.*;
public class Main {
public static void main(String[] args) throws DeepLException, InterruptedException {
String authKey = "{YOUR_API_KEY}"; // replace with your key
DeepLClient client = new DeepLClient(authKey);
TextResult result = client.translateText("Hello, world!", null, "de");
System.out.println(result.getText());
}
}
```
```text Sample output
Hallo, Welt!
```
<Tip>
In production code, it's safer to store your API key in an environment variable.
</Tip>
</Tab>
<Tab title="Ruby">
```sh Install client library
gem install deepl-rb
```
```ruby Sample request
require 'deepl'
DeepL.configure do |config|
config.auth_key = '{YOUR_API_KEY}' # replace with your key
end
translation = DeepL.translate 'Hello, world!', nil, 'de'
puts translation.text
```
```text Sample output
Hallo, Welt!
```
<Tip>
In production code, it's safer to store your API key in an environment variable.
</Tip>
</Tab>
</Tabs>
- Your first API request - With just a few lines of code, make your first request to the DeepL Translate or Write API
- DeepL 101 - A quick guide to text and document translation, using Postman to play with the API, client libraries for your favorite programming language, and joining our developer community
- Translation: a beginner's guide - A detailed guide to fundamental translation features
- Cookbook - Explore short tutorials, examples, projects, and use cases
- Guides - Discover in-depth explanations for API features and real-world applications
