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

# List Project Documents

> List the guideline, glossary, and character-list documents of a single project

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](/apis/ollang-api-reference/attach-project-document) or [Upload Project Document](/apis/ollang-api-reference/upload-project-document). Their `projectId` is set and `folderId` is `null`.
* The current documents of the project's folder. These are the [folder documents](/apis/ollang-api-reference/list-folder-documents) themselves, with their latest content: `folderId` is set and `projectId` is `null`.

Folder documents you have [removed from this project](/apis/ollang-api-reference/delete-project-document) are not listed. A folder document whose file is identical to one of the project's own documents (same URL) is listed only once.

Only these three document types are returned. Source files such as the project's video or document are not included; use [Get Project by ID](/apis/ollang-api-reference/get-project-by-id) for those.

```bash cURL theme={null}
curl -X GET "https://api-integration.ollang.com/integration/project/60b8d6f1e1b9b1d8c6c0d8e3/docs" \
  -H "X-Api-Key: $OLLANG_API_KEY"
```

```javascript JavaScript theme={null}
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`);
```

```python Python theme={null}
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})")
```

```php PHP theme={null}
$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);
```

```go Go theme={null}
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))
}
```

```java Java theme={null}
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`

The examples read the key from the `OLLANG_API_KEY` environment variable; set it before running them.

You can obtain your API key from your [Ollang dashboard](https://lab.ollang.com).

## Path Parameters

**projectId** `string` *required*

The unique identifier of the project. Retrieve project IDs with [Retrieve All
Projects](/apis/ollang-api-reference/retrieve-all-projects).

## Response

An array of project document objects, oldest first.

**id** `string`

Unique identifier of the document. Pass this to [Update Project
Document](/apis/ollang-api-reference/update-project-document) or [Remove
Project Document](/apis/ollang-api-reference/delete-project-document).

**name** `string`

Display name of the document.

**type** `string`

One of `guideline`, `guideline_glossary`, or `character_list`.

**url** `string`

A pre-signed download link for the stored document, valid for 12 hours.

**size** `number`

Size of the document in bytes. May be `null`.

**sourceLanguage** `string`

Language of the document. Defaults to the project's source language.

**projectId** `string`

Identifier of the project, for a document attached to the project itself.
`null` for a folder document.

**folderId** `string`

Identifier of the project's folder, for a folder document. `null` for a
document attached to the project itself.

**clientId** `string`

Identifier of the account that owns the document.

**createdAt** `string`

When the document was attached, in ISO 8601 format.

**updatedAt** `string`

When the document was last updated, in ISO 8601 format.

```json 200 theme={null}
[
  {
    "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"
  }
]
```

```json 401 theme={null}
{
  "error": "Unauthorized",
  "message": "Invalid or missing API key",
  "code": "UNAUTHORIZED"
}
```

```json 404 theme={null}
{
  "statusCode": 404,
  "message": "Project not found",
  "error": "Not Found"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.