> ## 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.

# Confluence Integration

> Read and sync Confluence content into projects.

Confluence integrations pull pages and spaces into your workspace so they can be used as artifacts. **You must enable Confluence at the instance level first**—see the operator guide: [Confluence integration setup](/en/operator-manual/knowledge-base/confluence).

If the integration needs OAuth, use the login endpoints in [OpenID & OAuth](/en/developer-manual/build-with-zylon/workspace-api/authentication/openid).

## Basic request and response

Fetch integration configuration with `GET /api/v1/app/integration/confluence/{integrationId}/config`.

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

<Accordion title="Example response">
  ```json theme={null}
  {
    "space_key": "SUP",
    "base_url": "https://confluence.auroralabs.com"
  }
  ```
</Accordion>

## Start an ingest sync

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

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

## ConfluenceLocal endpoints

Use these endpoints when your deployment uses the `confluencelocal` provider with basic-auth credentials.

### Create a ConfluenceLocal integration

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

### Update a ConfluenceLocal integration

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

### Get ConfluenceLocal config

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

### Start ConfluenceLocal ingest

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

<Accordion title="Example integration response">
  ```json theme={null}
  {
    "id": "int_6d9a2b4c5e7f",
    "user_id": "user_4b7c2a1d9e5f3c8b",
    "org_id": "org_2f3a9d1c7b5e4a8f",
    "type": "ConfluenceLocalLegacy",
    "provider_data": {
      "username": "confluence_service"
    },
    "created_at": "2026-03-01T11:00:00Z",
    "updated_at": "2026-03-01T11:00:00Z"
  }
  ```
</Accordion>

## Common mistakes

* Using the OAuth-style Confluence endpoints with a `confluencelocal` integration ID.
* Forgetting to include JSON body fields (`username`, `password`) for create/update.
* Calling ingest before the integration is configured.

## Errors and edge cases

* **403**: integration not enabled or missing permissions.
* **404**: integration ID not found.
