Claude
Skills
Sign in
Back

atlassian

Included with Lifetime
$97 forever

Atlassian API for Confluence and Jira. Use when user mentions "Confluence page", "Atlassian", or asks about wiki/documentation management.

Backend & APIs

What this skill does


## Troubleshooting

If requests fail, run `zero doctor check-connector --env-name ATLASSIAN_TOKEN` or `zero doctor check-connector --url https://your-domain.atlassian.net/rest/api/3/myself --method GET`

## Jira — User

### Get Current User

```bash
curl -s "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/myself" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json"
```

### Search Users

```bash
curl -s -G "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/user/search" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json" \
  --data-urlencode "query=john"
```

## Jira — Projects

### List Projects

```bash
curl -s "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/project" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json"
```

### Get Project

```bash
curl -s "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/project/<project-key>" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json"
```

## Jira — Issues

### Search Issues (JQL)

```bash
curl -s -X POST "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/search/jql" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  -d "{\"jql\": \"project = PROJ AND status != Done ORDER BY created DESC\", \"maxResults\": 10, \"fields\": [\"key\", \"summary\", \"status\", \"assignee\", \"priority\"]}"
```

Common JQL: `project = PROJ`, `assignee = currentUser()`, `status = 'In Progress'`, `created >= -7d`, `labels = bug`, `priority = High`.

### Get Issue

```bash
curl -s "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/issue/<issue-key>" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json"
```

### Create Issue

Jira v3 uses Atlassian Document Format (ADF) for rich text fields.

```bash
curl -s -X POST "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/issue" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  -d "{\"fields\": {\"project\": {\"key\": \"PROJ\"}, \"summary\": \"Bug: Login button not responding\", \"description\": {\"type\": \"doc\", \"version\": 1, \"content\": [{\"type\": \"paragraph\", \"content\": [{\"type\": \"text\", \"text\": \"The login button is not responding.\"}]}]}, \"issuetype\": {\"name\": \"Bug\"}, \"priority\": {\"name\": \"High\"}, \"labels\": [\"mobile\"]}}"
```

### Update Issue

```bash
curl -s -X PUT "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/issue/<issue-key>" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  -d "{\"fields\": {\"summary\": \"Updated summary\", \"priority\": {\"name\": \"Highest\"}}}"
```

### Delete Issue

```bash
curl -s -X DELETE "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/issue/<issue-key>" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN"
```

### Assign Issue

```bash
curl -s -X PUT "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/issue/<issue-key>/assignee" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Content-Type: application/json" \
  -d "{\"accountId\": \"<account-id>\"}"
```

### Get Transitions

```bash
curl -s "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/issue/<issue-key>/transitions" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json"
```

### Transition Issue (Change Status)

```bash
curl -s -X POST "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/issue/<issue-key>/transitions" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Content-Type: application/json" \
  -d "{\"transition\": {\"id\": \"31\"}}"
```

### Add Comment

```bash
curl -s -X POST "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/issue/<issue-key>/comment" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Content-Type: application/json" \
  -d "{\"body\": {\"type\": \"doc\", \"version\": 1, \"content\": [{\"type\": \"paragraph\", \"content\": [{\"type\": \"text\", \"text\": \"Found the root cause. Working on a fix.\"}]}]}}"
```

### Get Comments

```bash
curl -s "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/issue/<issue-key>/comment" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json"
```

### Add Labels

```bash
curl -s -X PUT "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/issue/<issue-key>" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Content-Type: application/json" \
  -d "{\"update\": {\"labels\": [{\"add\": \"urgent\"}, {\"add\": \"backend\"}]}}"
```

### Add Attachment

```bash
curl -s -X POST "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/issue/<issue-key>/attachments" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "X-Atlassian-Token: no-check" \
  -F "[email protected]"
```

### Get Worklogs

```bash
curl -s "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/issue/<issue-key>/worklog" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json"
```

### Add Worklog

```bash
curl -s -X POST "https://$ATLASSIAN_DOMAIN.atlassian.net/rest/api/3/issue/<issue-key>/worklog" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Content-Type: application/json" \
  -d "{\"timeSpentSeconds\": 3600, \"comment\": {\"type\": \"doc\", \"version\": 1, \"content\": [{\"type\": \"paragraph\", \"content\": [{\"type\": \"text\", \"text\": \"Investigated and fixed the issue.\"}]}]}}"
```

## Confluence — Spaces (v2)

### List Spaces

```bash
curl -s "https://$ATLASSIAN_DOMAIN.atlassian.net/wiki/api/v2/spaces?limit=25" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json"
```

### Get Space

```bash
curl -s "https://$ATLASSIAN_DOMAIN.atlassian.net/wiki/api/v2/spaces/<space-id>" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json"
```

### List Pages in Space

```bash
curl -s "https://$ATLASSIAN_DOMAIN.atlassian.net/wiki/api/v2/spaces/<space-id>/pages?limit=25" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json"
```

### Get Space Labels

```bash
curl -s "https://$ATLASSIAN_DOMAIN.atlassian.net/wiki/api/v2/spaces/<space-id>/labels" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json"
```

### Get Space Permissions

```bash
curl -s "https://$ATLASSIAN_DOMAIN.atlassian.net/wiki/api/v2/spaces/<space-id>/permissions" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json"
```

## Confluence — Pages (v2)

### List Pages

```bash
curl -s "https://$ATLASSIAN_DOMAIN.atlassian.net/wiki/api/v2/pages?limit=25" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json"
```

Params: `space-id`, `title`, `status` (current/draft/archived), `body-format` (storage/atlas_doc_format/view), `limit`, `cursor`.

### Get Page

```bash
curl -s "https://$ATLASSIAN_DOMAIN.atlassian.net/wiki/api/v2/pages/<page-id>?body-format=storage" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Accept: application/json"
```

Body format: `storage` (XHTML), `atlas_doc_format` (ADF), `view` (rendered HTML).

### Create Page

```bash
curl -s -X POST "https://$ATLASSIAN_DOMAIN.atlassian.net/wiki/api/v2/pages" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Content-Type: application/json" \
  -d "{\"spaceId\": \"<space-id>\", \"status\": \"current\", \"title\": \"My New Page\", \"body\": {\"representation\": \"storage\", \"value\": \"<p>Page content in <strong>XHTML</strong> format.</p>\"}}"
```

### Create Child Page

```bash
curl -s -X POST "https://$ATLASSIAN_DOMAIN.atlassian.net/wiki/api/v2/pages" \
  -u "$ATLASSIAN_EMAIL:$ATLASSIAN_TOKEN" \
  --header "Content-Type: application/json" \
  -d "{\"spaceId\": \"<space-id>\", \"status\": \"current\", \"title\": \"Child Page\", \"parentId\": \"<parent-page-id>\", \"body\": {\"representation\": \"storage\", \"value\": \"<p>Child p
Files: 1
Size: 15.5 KB
Complexity: 18/100
Category: Backend & APIs

Related in Backend & APIs