> ## Documentation Index
> Fetch the complete documentation index at: https://developers.deepl.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

## Get an API key and get started

New user? Follow these quick steps to get started with the DeepL API.

<Steps>
  <Step title="Sign up for the API" titleSize="h3">
    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>
  </Step>

  <Step title="Step 2: Test your API key with a request" titleSize="h3">
    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.

    <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 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!"
            }
          ]
        }
        ```
      </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 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!"
            }
          ]
        }
        ```
      </Tab>

      <Tab title="Python">
        ```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!
        ```

        <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 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!

        ```

        <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 theme={null}
        composer require deeplcom/deepl-php
        ```

        ```php Sample request theme={null}
        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 theme={null}
        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 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!
        ```

        <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 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!
        ```

        <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 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!
        ```

        <Tip>
          In production code, it's safer to store your API key in an environment variable.
        </Tip>
      </Tab>
    </Tabs>
  </Step>

  <Step title="Step 3: Keep building with our client libraries and how-to guides" titleSize="h3">
    [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).
  </Step>
</Steps>

## Keep exploring

* [**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
* [Translation: a beginner's guide](/docs/learning-how-tos/examples-and-guides/translation-beginners-guide) - A detailed guide to fundamental translation features
* [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

<CardGroup cols={2}>
  <Card icon="circle-question" horizontal href="https://support.deepl.com/">
    Support Center
  </Card>

  <Card icon="bridge" horizontal href="https://www.deepl-bridges.com/">
    DeepL Bridges - Developer Community
  </Card>

  <Card icon="signal-stream" horizontal href="https://www.deeplstatus.com/">
    Status Page
  </Card>

  <Card icon="notes" horizontal href="/docs/resources/release-notes">
    Release Notes
  </Card>
</CardGroup>
