# Introduction
> Welcome to the developer home of DeepL API.
## Get an API key and get started
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.
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).
Find your API key [here](https://www.deepl.com/your-account/keys).
Then try making a simple translation request in one of these ways:
* cURL or an HTTP request
* with [our client libraries](/docs/getting-started/client-libraries) for [Python](https://www.github.com/deeplcom/deepl-python), [JavaScript](https://www.github.com/deeplcom/deepl-node), [PHP](https://www.github.com/deeplcom/deepl-php), [.NET](https://www.github.com/deeplcom/deepl-dotnet), [Java](https://www.github.com/deeplcom/deepl-java), or [Ruby](https://www.github.com/deeplcom/deepl-rb)
* [in our playground](https://developers.deepl.com/api-reference/translate/request-translation?playground=open)
* [in Postman](/docs/getting-started/test-your-api-requests-with-postman)
If you use the sample code below, be sure to replace `{YOUR_API_KEY}` with your own API key.
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`.
```http Sample request theme={null}
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 theme={null}
{
"translations": [
{
"detected_source_language": "EN",
"text": "Hallo, Welt!"
}
]
}
```
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`.
```sh Set the API key theme={null}
export API_KEY={YOUR_API_KEY}
```
```sh Sample request theme={null}
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 theme={null}
{
"translations": [
{
"detected_source_language": "EN",
"text": "Hallo, Welt!"
}
]
}
```
```sh Install client library theme={null}
pip install deepl
```
```py Sample request theme={null}
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 theme={null}
Hallo, Welt!
```
In production code, it's safer to store your API key in an environment variable.
```sh Install client library theme={null}
npm install deepl-node
```
```javascript Sample request theme={null}
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 theme={null}
Hallo, Welt!
```
In production code, it's safer to store your API key in an environment variable.
```sh Install client library theme={null}
composer require deeplcom/deepl-php
```
```php Sample request theme={null}
require_once 'vendor/autoload.php';
use DeepL\Translator;
$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 theme={null}
Hallo, Welt!
```
In production code, it's safer to store your API key in an environment variable.
```sh Install client library theme={null}
dotnet add package DeepL.net
```
```csharp Sample request theme={null}
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 theme={null}
Hallo, Welt!
```
In production code, it's safer to store your API key in an environment variable.
```java Install client library theme={null}
// For instructions on installing the DeepL Java library,
// see https://github.com/DeepLcom/deepl-java?tab=readme-ov-file#installation
```
```java Sample request theme={null}
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 theme={null}
Hallo, Welt!
```
In production code, it's safer to store your API key in an environment variable.
```sh Install client library theme={null}
gem install deepl-rb
```
```ruby Sample request theme={null}
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 theme={null}
Hallo, Welt!
```
In production code, it's safer to store your API key in an environment variable.
[Our official client libraries](/docs/getting-started/client-libraries) let you use the API with six popular programming languages - [Python](https://www.github.com/deeplcom/deepl-python), [JavaScript](https://www.github.com/deeplcom/deepl-node), [PHP](https://www.github.com/deeplcom/deepl-php), [.NET](https://www.github.com/deeplcom/deepl-dotnet), [Java](https://www.github.com/deeplcom/deepl-java), or [Ruby](https://www.github.com/deeplcom/deepl-rb). The DeepL community has [contributed client libraries](https://github.com/DeepLcom/awesome-deepl?tab=readme-ov-file#community-libraries--sdks) for other languages, including [Dart](https://github.com/komape/deepl_dart), [Go](https://github.com/candy12t/go-deepl), and [Rust](https://github.com/Avimitin/deepl-rs). You may also wish to check out [these examples and guides](/docs/learning-how-tos/examples-and-guides).
## Keep exploring
* [Your first API request](/docs/getting-started/your-first-api-request) - With just a few lines of code, make your first request to the DeepL Translate or Write API
* [**DeepL 101**](/docs/learning-how-tos/examples-and-guides/first-things-to-try-with-the-deepl-api) - 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
* [Cookbook](/docs/learning-how-tos/cookbook) - Explore short tutorials, examples, projects, and use cases
* [Guides](/docs/learning-how-tos/examples-and-guides) - Discover in-depth explanations for API features and real-world applications
## Community and Support
Support Center
DeepL Bridges - Developer Community
Status Page
Release Notes
---
> To find navigation and other pages in this documentation, fetch the llms.txt file at: https://developers.deepl.com/llms.txt