curl --request POST \
--url https://eu.phrase.com/connectors/contentful2/v1/async/download-xliff-file \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Webhook: <x-webhook>' \
--data '
{
"connectorUuid": "4282fec0-d2e9-4266-8733-3e634feb7b59",
"configuration": {
"tags": [
"translate-me"
],
"includeReferences": true
},
"path": {
"pathType": "ROOT"
},
"sourceLocal": "en-US"
}
'import requests
url = "https://eu.phrase.com/connectors/contentful2/v1/async/download-xliff-file"
payload = {
"connectorUuid": "4282fec0-d2e9-4266-8733-3e634feb7b59",
"configuration": {
"tags": ["translate-me"],
"includeReferences": True
},
"path": { "pathType": "ROOT" },
"sourceLocal": "en-US"
}
headers = {
"X-Webhook": "<x-webhook>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Webhook': '<x-webhook>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
connectorUuid: '4282fec0-d2e9-4266-8733-3e634feb7b59',
configuration: {tags: ['translate-me'], includeReferences: true},
path: {pathType: 'ROOT'},
sourceLocal: 'en-US'
})
};
fetch('https://eu.phrase.com/connectors/contentful2/v1/async/download-xliff-file', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://eu.phrase.com/connectors/contentful2/v1/async/download-xliff-file",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'connectorUuid' => '4282fec0-d2e9-4266-8733-3e634feb7b59',
'configuration' => [
'tags' => [
'translate-me'
],
'includeReferences' => true
],
'path' => [
'pathType' => 'ROOT'
],
'sourceLocal' => 'en-US'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-Webhook: <x-webhook>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eu.phrase.com/connectors/contentful2/v1/async/download-xliff-file"
payload := strings.NewReader("{\n \"connectorUuid\": \"4282fec0-d2e9-4266-8733-3e634feb7b59\",\n \"configuration\": {\n \"tags\": [\n \"translate-me\"\n ],\n \"includeReferences\": true\n },\n \"path\": {\n \"pathType\": \"ROOT\"\n },\n \"sourceLocal\": \"en-US\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Webhook", "<x-webhook>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://eu.phrase.com/connectors/contentful2/v1/async/download-xliff-file")
.header("X-Webhook", "<x-webhook>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"connectorUuid\": \"4282fec0-d2e9-4266-8733-3e634feb7b59\",\n \"configuration\": {\n \"tags\": [\n \"translate-me\"\n ],\n \"includeReferences\": true\n },\n \"path\": {\n \"pathType\": \"ROOT\"\n },\n \"sourceLocal\": \"en-US\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://eu.phrase.com/connectors/contentful2/v1/async/download-xliff-file")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Webhook"] = '<x-webhook>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"connectorUuid\": \"4282fec0-d2e9-4266-8733-3e634feb7b59\",\n \"configuration\": {\n \"tags\": [\n \"translate-me\"\n ],\n \"includeReferences\": true\n },\n \"path\": {\n \"pathType\": \"ROOT\"\n },\n \"sourceLocal\": \"en-US\"\n}"
response = http.request(request)
puts response.read_body{
"requestId": "e48eda63-928c-4155-bez9-fdbsaadc15f3",
"webHookUrl": "https://example.tld/my-webhook"
}{
"problemDetail": {
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"properties": {}
}
}Download xliff content asynchronously
Download Contentful entries as XLIFF 2.0, ready for translation. The connector applies its segmentation and serialization rules (rich-text handling, reference inlining, locale fallbacks).
Pair with upload-xliff-file once translated.
Async variant. This endpoint returns immediately with { requestId, webHookUrl }. The XLIFF is POSTed to the URL supplied in X-Webhook. X-Webhook is required.
curl --request POST \
--url https://eu.phrase.com/connectors/contentful2/v1/async/download-xliff-file \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Webhook: <x-webhook>' \
--data '
{
"connectorUuid": "4282fec0-d2e9-4266-8733-3e634feb7b59",
"configuration": {
"tags": [
"translate-me"
],
"includeReferences": true
},
"path": {
"pathType": "ROOT"
},
"sourceLocal": "en-US"
}
'import requests
url = "https://eu.phrase.com/connectors/contentful2/v1/async/download-xliff-file"
payload = {
"connectorUuid": "4282fec0-d2e9-4266-8733-3e634feb7b59",
"configuration": {
"tags": ["translate-me"],
"includeReferences": True
},
"path": { "pathType": "ROOT" },
"sourceLocal": "en-US"
}
headers = {
"X-Webhook": "<x-webhook>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Webhook': '<x-webhook>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
connectorUuid: '4282fec0-d2e9-4266-8733-3e634feb7b59',
configuration: {tags: ['translate-me'], includeReferences: true},
path: {pathType: 'ROOT'},
sourceLocal: 'en-US'
})
};
fetch('https://eu.phrase.com/connectors/contentful2/v1/async/download-xliff-file', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://eu.phrase.com/connectors/contentful2/v1/async/download-xliff-file",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'connectorUuid' => '4282fec0-d2e9-4266-8733-3e634feb7b59',
'configuration' => [
'tags' => [
'translate-me'
],
'includeReferences' => true
],
'path' => [
'pathType' => 'ROOT'
],
'sourceLocal' => 'en-US'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-Webhook: <x-webhook>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eu.phrase.com/connectors/contentful2/v1/async/download-xliff-file"
payload := strings.NewReader("{\n \"connectorUuid\": \"4282fec0-d2e9-4266-8733-3e634feb7b59\",\n \"configuration\": {\n \"tags\": [\n \"translate-me\"\n ],\n \"includeReferences\": true\n },\n \"path\": {\n \"pathType\": \"ROOT\"\n },\n \"sourceLocal\": \"en-US\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Webhook", "<x-webhook>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://eu.phrase.com/connectors/contentful2/v1/async/download-xliff-file")
.header("X-Webhook", "<x-webhook>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"connectorUuid\": \"4282fec0-d2e9-4266-8733-3e634feb7b59\",\n \"configuration\": {\n \"tags\": [\n \"translate-me\"\n ],\n \"includeReferences\": true\n },\n \"path\": {\n \"pathType\": \"ROOT\"\n },\n \"sourceLocal\": \"en-US\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://eu.phrase.com/connectors/contentful2/v1/async/download-xliff-file")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Webhook"] = '<x-webhook>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"connectorUuid\": \"4282fec0-d2e9-4266-8733-3e634feb7b59\",\n \"configuration\": {\n \"tags\": [\n \"translate-me\"\n ],\n \"includeReferences\": true\n },\n \"path\": {\n \"pathType\": \"ROOT\"\n },\n \"sourceLocal\": \"en-US\"\n}"
response = http.request(request)
puts response.read_body{
"requestId": "e48eda63-928c-4155-bez9-fdbsaadc15f3",
"webHookUrl": "https://example.tld/my-webhook"
}{
"problemDetail": {
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"properties": {}
}
}Authorizations
IDM-issued JWT. Obtain via the IDM authentication flow and pass as: Bearer
Headers
A logging ID of the request. It is propagated through Phrase systems, making it easier to connect logs from various services. If no ActionId is sent with a request, one will be generated by Bifrost and returned with the response.
Specify if the response should contain the processed object itself in an application/octet-stream body, or a application/json body with an ID that can be then used to retrieve the object using a /load-content endpoint. Note that for larger files (> 1 MB), it is advised to use the ID option which is also default.
Required on /async/... endpoints. Bifrost POSTs the operation result to this URL once the connector finishes processing.
Omitting this header on an async endpoint returns 400.
Body
Request body for downloading Contentful content as XLIFF 2.0. The connector loads its credentials from TMS using the supplied connectorUuid, then applies its segmentation and serialization rules to produce a translation-ready XLIFF.
UUID of a connector instance configured in TMS.
"4282fec0-d2e9-4266-8733-3e634feb7b59"
Contentful-specific behavior knobs (tag filter, reference inlining, asset handling, …).
Show child attributes
Show child attributes
Selector inside the Contentful space — entry, folder, or ROOT for the entire selection driven by configuration.
Show child attributes
Show child attributes
Source locale of the content (Contentful locale code). Note: field name is sourceLocal (typo retained for backwards compatibility).
"en-US"
Response
Successful operation. If X-ResponseType is set to 'ID' or no value is sent in the header, the file is saved and can be retrieved by sending a GET request to this endpoint. If X-ResponseType is set to 'OBJECT', the file is returned as a stream.
Was this page helpful?