curl -X GET "https://api-integration.ollang.com/integration/project/60b8d6f1e1b9b1d8c6c0d8e3/docs" \
-H "X-Api-Key: $OLLANG_API_KEY"
const projectId = "60b8d6f1e1b9b1d8c6c0d8e3";
const response = await fetch(
`https://api-integration.ollang.com/integration/project/${projectId}/docs`,
{
method: "GET",
headers: {
"X-Api-Key": process.env.OLLANG_API_KEY,
},
},
);
const docs = await response.json();
const ownDocs = docs.filter((doc) => !doc.folderId);
console.log(`${ownDocs.length} of ${docs.length} documents attached to the project itself`);
import os
import requests
project_id = "60b8d6f1e1b9b1d8c6c0d8e3"
response = requests.get(
f"https://api-integration.ollang.com/integration/project/{project_id}/docs",
headers={"X-Api-Key": os.environ["OLLANG_API_KEY"]},
)
for doc in response.json():
origin = "folder" if doc.get("folderId") else "project"
print(doc["type"], doc["name"], f"({origin})")
$projectId = '60b8d6f1e1b9b1d8c6c0d8e3';
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-integration.ollang.com/integration/project/{$projectId}/docs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'X-Api-Key: ' . getenv('OLLANG_API_KEY')
),
));
$response = curl_exec($curl);
$docs = json_decode($response, true);
curl_close($curl);
echo "Project documents: " . count($docs);
package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
"os"
)
func main() {
projectID := "60b8d6f1e1b9b1d8c6c0d8e3"
url := "https://api-integration.ollang.com/integration/project/" + projectID + "/docs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("X-Api-Key", os.Getenv("OLLANG_API_KEY"))
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var docs []map[string]interface{}
json.Unmarshal(body, &docs)
fmt.Println("Project documents:", len(docs))
}
String projectId = "60b8d6f1e1b9b1d8c6c0d8e3";
HttpResponse<String> response = Unirest
.get("https://api-integration.ollang.com/integration/project/" + projectId + "/docs")
.header("X-Api-Key", System.getenv("OLLANG_API_KEY"))
.asString();
JSONArray docs = new JSONArray(response.getBody());
System.out.println("Project documents: " + docs.length());
[
{
"id": "60b8d6f1e1b9b1d8c6c0d8f5",
"name": "Episode 5 slang notes.pdf",
"type": "guideline",
"url": "https://ollang-docs.s3.eu-central-1.amazonaws.com/60b8d6f1e1b9b1d8c6c0d8e5/episode-5-slang-notes.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Signature=...",
"size": 90211,
"sourceLanguage": "en",
"projectId": "60b8d6f1e1b9b1d8c6c0d8e3",
"folderId": null,
"parentDocId": null,
"clientId": "60b8d6f1e1b9b1d8c6c0d8e5",
"createdAt": "2026-10-21T08:02:51.104Z",
"updatedAt": "2026-10-21T08:02:51.104Z"
},
{
"id": "60b8d6f1e1b9b1d8c6c0d8f1",
"name": "Brand guideline v3",
"type": "guideline",
"url": "https://ollang-docs.s3.eu-central-1.amazonaws.com/60b8d6f1e1b9b1d8c6c0d8e5/brand-guideline-v3.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Signature=...",
"size": 481203,
"sourceLanguage": "en",
"projectId": null,
"folderId": "60b8d6f1e1b9b1d8c6c0d8e1",
"parentDocId": null,
"clientId": "60b8d6f1e1b9b1d8c6c0d8e5",
"createdAt": "2026-09-02T10:14:22.511Z",
"updatedAt": "2026-09-02T10:14:22.511Z"
},
{
"id": "60b8d6f1e1b9b1d8c6c0d8f2",
"name": "Product terminology",
"type": "guideline_glossary",
"url": "https://ollang-docs.s3.eu-central-1.amazonaws.com/60b8d6f1e1b9b1d8c6c0d8e5/product-terminology.xlsx?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Signature=...",
"size": 20418,
"sourceLanguage": "en",
"projectId": null,
"folderId": "60b8d6f1e1b9b1d8c6c0d8e1",
"parentDocId": null,
"clientId": "60b8d6f1e1b9b1d8c6c0d8e5",
"createdAt": "2026-09-02T10:16:03.882Z",
"updatedAt": "2026-09-02T10:16:03.882Z"
}
]
{
"error": "Unauthorized",
"message": "Invalid or missing API key",
"code": "UNAUTHORIZED"
}
{
"statusCode": 404,
"message": "Project not found",
"error": "Not Found"
}
Ollang API Reference
List Project Documents
List the guideline, glossary, and character-list documents of a single project
GET
/
integration
/
project
/
{projectId}
/
docs
curl -X GET "https://api-integration.ollang.com/integration/project/60b8d6f1e1b9b1d8c6c0d8e3/docs" \
-H "X-Api-Key: $OLLANG_API_KEY"
const projectId = "60b8d6f1e1b9b1d8c6c0d8e3";
const response = await fetch(
`https://api-integration.ollang.com/integration/project/${projectId}/docs`,
{
method: "GET",
headers: {
"X-Api-Key": process.env.OLLANG_API_KEY,
},
},
);
const docs = await response.json();
const ownDocs = docs.filter((doc) => !doc.folderId);
console.log(`${ownDocs.length} of ${docs.length} documents attached to the project itself`);
import os
import requests
project_id = "60b8d6f1e1b9b1d8c6c0d8e3"
response = requests.get(
f"https://api-integration.ollang.com/integration/project/{project_id}/docs",
headers={"X-Api-Key": os.environ["OLLANG_API_KEY"]},
)
for doc in response.json():
origin = "folder" if doc.get("folderId") else "project"
print(doc["type"], doc["name"], f"({origin})")
$projectId = '60b8d6f1e1b9b1d8c6c0d8e3';
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-integration.ollang.com/integration/project/{$projectId}/docs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'X-Api-Key: ' . getenv('OLLANG_API_KEY')
),
));
$response = curl_exec($curl);
$docs = json_decode($response, true);
curl_close($curl);
echo "Project documents: " . count($docs);
package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
"os"
)
func main() {
projectID := "60b8d6f1e1b9b1d8c6c0d8e3"
url := "https://api-integration.ollang.com/integration/project/" + projectID + "/docs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("X-Api-Key", os.Getenv("OLLANG_API_KEY"))
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var docs []map[string]interface{}
json.Unmarshal(body, &docs)
fmt.Println("Project documents:", len(docs))
}
String projectId = "60b8d6f1e1b9b1d8c6c0d8e3";
HttpResponse<String> response = Unirest
.get("https://api-integration.ollang.com/integration/project/" + projectId + "/docs")
.header("X-Api-Key", System.getenv("OLLANG_API_KEY"))
.asString();
JSONArray docs = new JSONArray(response.getBody());
System.out.println("Project documents: " + docs.length());
[
{
"id": "60b8d6f1e1b9b1d8c6c0d8f5",
"name": "Episode 5 slang notes.pdf",
"type": "guideline",
"url": "https://ollang-docs.s3.eu-central-1.amazonaws.com/60b8d6f1e1b9b1d8c6c0d8e5/episode-5-slang-notes.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Signature=...",
"size": 90211,
"sourceLanguage": "en",
"projectId": "60b8d6f1e1b9b1d8c6c0d8e3",
"folderId": null,
"parentDocId": null,
"clientId": "60b8d6f1e1b9b1d8c6c0d8e5",
"createdAt": "2026-10-21T08:02:51.104Z",
"updatedAt": "2026-10-21T08:02:51.104Z"
},
{
"id": "60b8d6f1e1b9b1d8c6c0d8f1",
"name": "Brand guideline v3",
"type": "guideline",
"url": "https://ollang-docs.s3.eu-central-1.amazonaws.com/60b8d6f1e1b9b1d8c6c0d8e5/brand-guideline-v3.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Signature=...",
"size": 481203,
"sourceLanguage": "en",
"projectId": null,
"folderId": "60b8d6f1e1b9b1d8c6c0d8e1",
"parentDocId": null,
"clientId": "60b8d6f1e1b9b1d8c6c0d8e5",
"createdAt": "2026-09-02T10:14:22.511Z",
"updatedAt": "2026-09-02T10:14:22.511Z"
},
{
"id": "60b8d6f1e1b9b1d8c6c0d8f2",
"name": "Product terminology",
"type": "guideline_glossary",
"url": "https://ollang-docs.s3.eu-central-1.amazonaws.com/60b8d6f1e1b9b1d8c6c0d8e5/product-terminology.xlsx?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Signature=...",
"size": 20418,
"sourceLanguage": "en",
"projectId": null,
"folderId": "60b8d6f1e1b9b1d8c6c0d8e1",
"parentDocId": null,
"clientId": "60b8d6f1e1b9b1d8c6c0d8e5",
"createdAt": "2026-09-02T10:16:03.882Z",
"updatedAt": "2026-09-02T10:16:03.882Z"
}
]
{
"error": "Unauthorized",
"message": "Invalid or missing API key",
"code": "UNAUTHORIZED"
}
{
"statusCode": 404,
"message": "Project not found",
"error": "Not Found"
}
Returns the guideline documents that apply to one project: guidelines, guideline glossaries, and character lists. These are the documents Ollang uses for the project’s orders.
The list contains two kinds of document, the project’s own first:
- Documents attached to the project itself, with Attach Project Document or Upload Project Document. Their
projectIdis set andfolderIdisnull. - The current documents of the project’s folder. These are the folder documents themselves, with their latest content:
folderIdis set andprojectIdisnull.
curl -X GET "https://api-integration.ollang.com/integration/project/60b8d6f1e1b9b1d8c6c0d8e3/docs" \
-H "X-Api-Key: $OLLANG_API_KEY"
const projectId = "60b8d6f1e1b9b1d8c6c0d8e3";
const response = await fetch(
`https://api-integration.ollang.com/integration/project/${projectId}/docs`,
{
method: "GET",
headers: {
"X-Api-Key": process.env.OLLANG_API_KEY,
},
},
);
const docs = await response.json();
const ownDocs = docs.filter((doc) => !doc.folderId);
console.log(`${ownDocs.length} of ${docs.length} documents attached to the project itself`);
import os
import requests
project_id = "60b8d6f1e1b9b1d8c6c0d8e3"
response = requests.get(
f"https://api-integration.ollang.com/integration/project/{project_id}/docs",
headers={"X-Api-Key": os.environ["OLLANG_API_KEY"]},
)
for doc in response.json():
origin = "folder" if doc.get("folderId") else "project"
print(doc["type"], doc["name"], f"({origin})")
$projectId = '60b8d6f1e1b9b1d8c6c0d8e3';
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-integration.ollang.com/integration/project/{$projectId}/docs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'X-Api-Key: ' . getenv('OLLANG_API_KEY')
),
));
$response = curl_exec($curl);
$docs = json_decode($response, true);
curl_close($curl);
echo "Project documents: " . count($docs);
package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
"os"
)
func main() {
projectID := "60b8d6f1e1b9b1d8c6c0d8e3"
url := "https://api-integration.ollang.com/integration/project/" + projectID + "/docs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("X-Api-Key", os.Getenv("OLLANG_API_KEY"))
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var docs []map[string]interface{}
json.Unmarshal(body, &docs)
fmt.Println("Project documents:", len(docs))
}
String projectId = "60b8d6f1e1b9b1d8c6c0d8e3";
HttpResponse<String> response = Unirest
.get("https://api-integration.ollang.com/integration/project/" + projectId + "/docs")
.header("X-Api-Key", System.getenv("OLLANG_API_KEY"))
.asString();
JSONArray docs = new JSONArray(response.getBody());
System.out.println("Project documents: " + docs.length());
Authorizations
This endpoint requires API key authentication. Include your API key in the request header:- Header name:
X-Api-Key - Header value: Your API key from the Ollang dashboard
- Format:
X-Api-Key: your-api-key-here
OLLANG_API_KEY environment variable; set it before running them.
You can obtain your API key from your Ollang dashboard.
Path Parameters
string
required
The unique identifier of the project. Retrieve project IDs with Retrieve All
Projects.
Response
An array of project document objects, oldest first.string
Unique identifier of the document. Pass this to Update Project
Document or Remove
Project Document.
string
Display name of the document.
string
One of
guideline, guideline_glossary, or character_list.string
A pre-signed download link for the stored document, valid for 12 hours.
number
Size of the document in bytes. May be
null.string
Language of the document. Defaults to the project’s source language.
string
Identifier of the project, for a document attached to the project itself.
null for a folder document.string
Identifier of the project’s folder, for a folder document.
null for a
document attached to the project itself.string
Identifier of the account that owns the document.
string
When the document was attached, in ISO 8601 format.
string
When the document was last updated, in ISO 8601 format.
[
{
"id": "60b8d6f1e1b9b1d8c6c0d8f5",
"name": "Episode 5 slang notes.pdf",
"type": "guideline",
"url": "https://ollang-docs.s3.eu-central-1.amazonaws.com/60b8d6f1e1b9b1d8c6c0d8e5/episode-5-slang-notes.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Signature=...",
"size": 90211,
"sourceLanguage": "en",
"projectId": "60b8d6f1e1b9b1d8c6c0d8e3",
"folderId": null,
"parentDocId": null,
"clientId": "60b8d6f1e1b9b1d8c6c0d8e5",
"createdAt": "2026-10-21T08:02:51.104Z",
"updatedAt": "2026-10-21T08:02:51.104Z"
},
{
"id": "60b8d6f1e1b9b1d8c6c0d8f1",
"name": "Brand guideline v3",
"type": "guideline",
"url": "https://ollang-docs.s3.eu-central-1.amazonaws.com/60b8d6f1e1b9b1d8c6c0d8e5/brand-guideline-v3.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Signature=...",
"size": 481203,
"sourceLanguage": "en",
"projectId": null,
"folderId": "60b8d6f1e1b9b1d8c6c0d8e1",
"parentDocId": null,
"clientId": "60b8d6f1e1b9b1d8c6c0d8e5",
"createdAt": "2026-09-02T10:14:22.511Z",
"updatedAt": "2026-09-02T10:14:22.511Z"
},
{
"id": "60b8d6f1e1b9b1d8c6c0d8f2",
"name": "Product terminology",
"type": "guideline_glossary",
"url": "https://ollang-docs.s3.eu-central-1.amazonaws.com/60b8d6f1e1b9b1d8c6c0d8e5/product-terminology.xlsx?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Signature=...",
"size": 20418,
"sourceLanguage": "en",
"projectId": null,
"folderId": "60b8d6f1e1b9b1d8c6c0d8e1",
"parentDocId": null,
"clientId": "60b8d6f1e1b9b1d8c6c0d8e5",
"createdAt": "2026-09-02T10:16:03.882Z",
"updatedAt": "2026-09-02T10:16:03.882Z"
}
]
{
"error": "Unauthorized",
"message": "Invalid or missing API key",
"code": "UNAUTHORIZED"
}
{
"statusCode": 404,
"message": "Project not found",
"error": "Not Found"
}
Was this page helpful?