You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用DeepL免费API的curl命令无返回,请求排查解决方法

DeepL API请求无返回且返回403状态码的排查方案

问题描述

我创建了DeepL免费账号并导出了API_KEY,执行以下curl命令后没有任何返回信息:

~$ echo $API_KEY
{mykey shows up here}

~$ curl -X POST https://api-free.deepl.com/v2/translate \
>   --header "Content-Type: application/json" \
>   --header "Authorization: DeepL-Auth-Key $API_KEY" \
>   --data '{"text": ["Hello world!"],"target_lang": "DE"}'
~$ 

编辑:添加-v参数后的命令执行结果如下,仍未得到翻译内容:

~$ curl -v -X POST https://api-free.deepl.com/v2/translate \
>  --header "Content-Type: application/json" \
>  --header "Authorization: DeepL-Auth-Key "$API_KEY \
>  --data '{"text": ["Hello world!"],"target_lang": "DE"}'


Note: Unnecessary use of -X or --request, POST is already inferred.
* Host api-free.deepl.com:443 was resolved.
* IPv6: (none)
* IPv4: 172.65.225.25
*   Trying 172.65.225.25:443...
* Connected to api-free.deepl.com (172.65.225.25) port 443
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / X25519 / id-ecPublicKey
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=deepl.com
*  start date: Feb 16 09:06:48 2025 GMT
*  expire date: May 17 09:06:47 2025 GMT
*  subjectAltName: host "api-free.deepl.com" matched cert's "*.deepl.com"
*  issuer: C=US; O=Let's Encrypt; CN=E6
*  SSL certificate verify ok.
*   Certificate level 0: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 1: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://api-free.deepl.com/v2/translate
* [HTTP/2] [1] [:method: POST]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: api-free.deepl.com]
* [HTTP/2] [1] [:path: /v2/translate]
* [HTTP/2] [1] [user-agent: curl/8.5.0]
* [HTTP/2] [1] [accept: */*]
* [HTTP/2] [1] [content-type: application/json]
* [HTTP/2] [1] [authorization: DeepL-Auth-Key {keyhidden}]
* [HTTP/2] [1] [content-length: 46]
> POST /v2/translate HTTP/2
> Host: api-free.deepl.com
> User-Agent: curl/8.5.0
> Accept: */*
> Content-Type: application/json
> Authorization: DeepL-Auth-Key {keyhidden}
> Content-Length: 46
> 
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
< HTTP/2 403 
< date: Tue, 18 Mar 2025 18:28:57 GMT
< access-control-allow-origin: *
< strict-transport-security: max-age=63072000; includeSubDomains; preload
< server-timing: l7_lb_tls;dur=360, l7_lb_idle;dur=7, l7_lb_receive;dur=0, l7_lb_total;dur=361
< access-control-expose-headers: Server-Timing, X-Trace-ID
< x-trace-id: 74a2bd30b113472d92df2b1141698ab0
< 
* Connection #0 to host api-free.deepl.com left intact

问题分析与解决

从-v输出的< HTTP/2 403可以明确,服务器返回了403 Forbidden,这是核心问题,以下是可能的原因和对应解决方案:

  • API密钥格式错误或无效
    免费版DeepL API密钥以free-开头,检查你的密钥是否符合格式。如果密钥已过期、被封禁或未正确复制(比如多了空格/换行),都会触发403。重新登录DeepL账号的API设置页面,复制完整的密钥替换当前的$API_KEY。

  • Authorization头格式问题
    编辑后的命令中,Authorization头的写法有问题:"Authorization: DeepL-Auth-Key "$API_KEY,这里的引号导致$API_KEY和前面的字符串之间可能出现空格,或者变量解析异常。正确的写法应该是把整个头内容放在一对引号里:

    --header "Authorization: DeepL-Auth-Key $API_KEY"
    
  • 免费版API端点使用错误
    确认你使用的是免费版端点https://api-free.deepl.com/v2/translate,如果误用到付费版端点https://api.deepl.com/v2/translate,也会返回403(免费密钥无法访问付费端点)。

  • IP地址被限制
    DeepL免费API会对请求IP进行限制,如果你的IP在DeepL的黑名单中,或者短时间内请求次数超过免费额度(免费版每月50万字符),会触发403。检查你的请求频率,或者切换网络环境测试。

  • 请求数据格式问题
    虽然当前的--data内容看起来正确,但确保JSON格式没有语法错误,比如引号是否配对、逗号是否正确。可以用JSON校验工具检查你的请求体。


内容的提问来源于stack exchange,提问作者user603749

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 18:34:55