Confluence Connector
CleanAccess Atlassian Confluence with managed OAuth to create, read, update, and search pages, spaces, and content using the Confluence REST API.
SKILL.md
---
name: confluence-connector
description: "Access Atlassian Confluence with managed OAuth. Create, read, update, and search pages, spaces, and content. Use when the user wants to create a Confluence page, search wiki content, read documentation, update pages, or manage Confluence spaces."
metadata:
polly:
polly_managed_connector: true
auth:
- env: CONFLUENCE_ACCESS_TOKEN
type: oauth2
integration_id: confluence
description: Confluence OAuth access
scopes:
- read:confluence-content.all
- write:confluence-content
- read:confluence-space.summary
- write:confluence-space
- write:confluence-file
- read:confluence-user
- search:confluence
- offline_access
primaryEnv: CONFLUENCE_ACCESS_TOKEN
---
# Confluence Connector
Access Atlassian Confluence through the Confluence REST API using managed OAuth.
## First-Time Setup
If Confluence is not connected yet, run:
`manage_auth(action="connect", integration_id="confluence", auth_env="CONFLUENCE_ACCESS_TOKEN")`
## Auth & Security
- Authentication is managed by Polly + Nango from `metadata.polly.auth`
- Never ask users to paste tokens in chat
- Never print or log token values
- If auth fails, reconnect with:
`manage_auth(action="connect", integration_id="confluence", auth_env="CONFLUENCE_ACCESS_TOKEN")`
## Base URL
First, get your Cloud ID:
```bash
curl -sS \
-H "Authorization: Bearer $CONFLUENCE_ACCESS_TOKEN" \
"https://api.atlassian.com/oauth/token/accessible-resources"
```
Then use: `https://api.atlassian.com/ex/confluence/{cloudId}/wiki/rest/api`
All requests include:
`Authorization: Bearer $CONFLUENCE_ACCESS_TOKEN`
## Quick Usage
Get accessible resources (to find your Cloud ID):
```bash
curl -sS \
-H "Authorization: Bearer $CONFLUENCE_ACCESS_TOKEN" \
"https://api.atlassian.com/oauth/token/accessible-resources"
```
Search content:
```bash
curl -sS \
-H "Authorization: Bearer $CONFLUENCE_ACCESS_TOKEN" \
"https://api.atlassian.com/ex/confluence/<cloudId>/wiki/rest/api/content/search?cql=type=page+AND+text~%22search+term%22&limit=10"
```
Get a page:
```bash
curl -sS \
-H "Authorization: Bearer $CONFLUENCE_ACCESS_TOKEN" \
"https://api.atlassian.com/ex/confluence/<cloudId>/wiki/rest/api/content/<pageId>?expand=body.storage"
```
Create a page:
```bash
curl -sS -X POST \
-H "Authorization: Bearer $CONFLUENCE_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"type":"page","title":"New Page","space":{"key":"SPACEKEY"},"body":{"storage":{"value":"<p>Hello world</p>","representation":"storage"}}}' \
"https://api.atlassian.com/ex/confluence/<cloudId>/wiki/rest/api/content"
```
Update a page:
```bash
curl -sS -X PUT \
-H "Authorization: Bearer $CONFLUENCE_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"type":"page","title":"Updated Title","version":{"number":2},"body":{"storage":{"value":"<p>Updated content</p>","representation":"storage"}}}' \
"https://api.atlassian.com/ex/confluence/<cloudId>/wiki/rest/api/content/<pageId>"
```
List spaces:
```bash
curl -sS \
-H "Authorization: Bearer $CONFLUENCE_ACCESS_TOKEN" \
"https://api.atlassian.com/ex/confluence/<cloudId>/wiki/rest/api/space?limit=25"
```
## Rules
- Always retrieve the Cloud ID first via `/oauth/token/accessible-resources` before making API calls
- When updating a page, include the current `version.number + 1` in the request body
- CQL (Confluence Query Language) is used for search — URL-encode the query string
- For pagination, use `start` and `limit` parameters
- On API errors, surface status + response body clearly
- On 401/403, reconnect with `manage_auth(action="connect", integration_id="confluence", auth_env="CONFLUENCE_ACCESS_TOKEN")`
- Never log, echo, or expose credential values in any output
Authorstella
Downloads6
Versions2
Published1d ago
Auth Requirements
CONFLUENCE_ACCESS_TOKENoauth2integration: confluence
Version History
SHA-256 (latest)
604e8e245673a411f764874d42cf212e010f9a0bf12e231e9ac16382707b1e70