Skip to main content
POST
/
api
/
v2
/
styleguides
Create a Style Guide (v2)
curl --request POST \
  --url https://eu.phrase.com/styleguide/api/v2/styleguides \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --form file='@example-file'
import requests

url = "https://eu.phrase.com/styleguide/api/v2/styleguides"

files = { "file": ("example-file", open("example-file", "rb")) }
headers = {"Authorization": "Bearer <token>"}

response = requests.post(url, files=files, headers=headers)

print(response.text)
const form = new FormData();
form.append('file', '<string>');

const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};

options.body = form;

fetch('https://eu.phrase.com/styleguide/api/v2/styleguides', 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/styleguide/api/v2/styleguides",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);

$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/styleguide/api/v2/styleguides"

payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Bearer <token>")

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/styleguide/api/v2/styleguides")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
.asString();
require 'uri'
require 'net/http'

url = URI("https://eu.phrase.com/styleguide/api/v2/styleguides")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--"

response = http.request(request)
puts response.read_body
{
  "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
{
"code": "<string>",
"message": "<string>",
"detail": "<string>"
}
{
"code": "<string>",
"message": "<string>",
"detail": "<string>"
}
{
"code": "<string>",
"message": "<string>",
"detail": "<string>"
}
{
"code": "<string>",
"message": "<string>",
"detail": "<string>"
}
{
"code": "<string>",
"message": "<string>",
"detail": "<string>"
}
{
"code": "<string>",
"message": "<string>",
"detail": "<string>"
}

Authorizations

Authorization
string
header
required

JWT from IDM (Authorization: Bearer )

Query Parameters

language
string
required

Language locale code (e.g., en, en-GB, sv-SE)

Minimum string length: 1
name
string
required

Name for the initial version

Maximum string length: 50
description
string

Description for the initial version

Maximum string length: 250
includeVersions
boolean
default:false

Whether to include versions in the Style Guide response when polling the async create job status

contentGroupId
string
required

ID of the Content Group to be associated with the Style Guide.

Minimum string length: 1

Body

multipart/form-data
file
file
required

Style Guide file in Markdown format. Maximum size: 150 KiB.

Response

Job accepted

Accepted response for an async Style Guide operation

jobId
string
required

Job identifier; use this to poll the job-status endpoint

Example:

"a1b2c3d4-e5f6-7890-abcd-ef1234567890"