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

# Filesystem Integration

> Sync files from a shared filesystem into your workspace.

The filesystem integration connects a shared directory to your workspace. **Enable the filesystem connector first** in the operator guide: [Filesystem integration setup](/en/operator-manual/knowledge-base/file-system).

## Basic request and response

Create a filesystem integration with `POST /api/v1/app/integration/filesystem`.

```bash theme={null}
curl -X POST "https://{BASE_URL}/api/v1/app/integration/filesystem" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "x-org: {org_slug}" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "{file_system_username}",
    "password": "{file_system_password}"
  }'
```

<Accordion title="Example response">
  ```json theme={null}
  {
    "id": "fs_9f8e7d6c5b4a3c2d",
    "user_id": "user_4b7c2a1d9e5f3c8b",
    "org_id": "org_2f3a9d1c7b5e4a8f",
    "type": "FileSystem",
    "created_at": "2026-02-08T14:10:00Z",
    "updated_at": "2026-02-08T14:10:00Z"
  }
  ```
</Accordion>

## Update integration credentials

```bash theme={null}
curl -X POST "https://{BASE_URL}/api/v1/app/integration/filesystem/{integrationID}" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "x-org: {org_slug}" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "{file_system_username}",
    "password": "{file_system_password}"
  }'
```

<Accordion title="Example response">
  ```json theme={null}
  {
    "id": "fs_9f8e7d6c5b4a3c2d",
    "user_id": "user_4b7c2a1d9e5f3c8b",
    "org_id": "org_2f3a9d1c7b5e4a8f",
    "type": "FileSystem",
    "created_at": "2026-02-08T14:10:00Z",
    "updated_at": "2026-02-08T15:02:00Z"
  }
  ```
</Accordion>

## Get integration config

```bash theme={null}
curl "https://{BASE_URL}/api/v1/app/integration/filesystem/{integrationID}/config" \
  -H "Authorization: Bearer {API_TOKEN}"
  -H "x-org: {org_slug}"
```

<Accordion title="Example response">
  ```json theme={null}
  {
    "path": "/mnt/shared/support"
  }
  ```
</Accordion>

## Validate credentials

```bash theme={null}
curl "https://{BASE_URL}/api/v1/app/integration/filesystem/validate?username={file_system_username}&password={file_system_password}" \
  -H "Authorization: Bearer {API_TOKEN}"
  -H "x-org: {org_slug}"
```

<Accordion title="Example response">
  ```json theme={null}
  true
  ```
</Accordion>

## List files

```bash theme={null}
curl "https://{BASE_URL}/api/v1/app/integration/filesystem/files?integrationId={integrationID}" \
  -H "Authorization: Bearer {API_TOKEN}"
  -H "x-org: {org_slug}"
```

<Accordion title="Example response">
  ```json theme={null}
  [
    {
      "path": "/mnt/shared/support/weekly-brief.pdf",
      "name": "weekly-brief.pdf",
      "size": 287104,
      "updated_at": "2026-02-07T19:22:10Z"
    }
  ]
  ```
</Accordion>

## Start an ingest sync

```bash theme={null}
curl -X POST "https://{BASE_URL}/api/v1/app/integration/filesystem/{integrationID}/ingest" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "x-org: {org_slug}" \
  -H "Content-Type: application/json"
```

<Accordion title="Example response">
  ```json theme={null}
  {
    "type": "sync_started",
    "current_artifact_count": 12,
    "integration_item_count": 48
  }
  ```
</Accordion>

## Errors and edge cases

* **403**: connector not enabled or missing permissions.
* **400**: invalid credentials.
* **404**: integration ID not found.
