- Jira admin account (or Personal Access Token)
curl,python3(orjq)
curl -s -u 'admin:password' \
"https://your-jira.com/rest/plugins/1.0/" \
-o plugins.jsonOr with a Personal Access Token (PAT):
curl -s -H "Authorization: Bearer YOUR_PAT_TOKEN" \
"https://your-jira.com/rest/plugins/1.0/" \
-o plugins.jsonNote: Do NOT set an
Acceptheader — the default response is JSON. SettingAccept: application/jsonreturns406.
python3 -c "
import json
data = json.load(open('plugins.json'))
plugins = data.get('plugins', [])
user_installed = [p for p in plugins if p.get('userInstalled')]
print(f'Total: {len(plugins)}, User-installed: {len(user_installed)}')
print()
for p in user_installed:
print(f\" {p['key']} v{p.get('version', '-')}\")
"Or with jq:
jq -r '.plugins[] | select(.userInstalled) | "\(.key) v\(.version)"' plugins.jsonPLUGIN_KEY="com.example.my-plugin"
curl -s -u 'admin:password' \
"https://your-jira.com/rest/plugins/1.0/${PLUGIN_KEY}-key/binary" \
-o "${PLUGIN_KEY}.jar"With PAT:
curl -s -H "Authorization: Bearer YOUR_PAT_TOKEN" \
"https://your-jira.com/rest/plugins/1.0/${PLUGIN_KEY}-key/binary" \
-o "${PLUGIN_KEY}.jar"mkdir -p jars
python3 -c "
import json
data = json.load(open('plugins.json'))
for p in data.get('plugins', []):
if p.get('userInstalled'):
print(p['key'])
" | while read key; do
echo "Downloading ${key}..."
curl -s -u 'admin:password' \
"https://your-jira.com/rest/plugins/1.0/${key}-key/binary" \
-o "jars/${key}.jar"
done# Get UPM token first
UPM_TOKEN=$(curl -sI -u 'admin:password' \
"https://target-jira.com/rest/plugins/1.0/" \
-H "Accept: application/vnd.atl.plugins+json" \
| grep -i 'upm-token' | awk '{print $2}' | tr -d '\r')
# Upload JAR
curl -u 'admin:password' \
"https://target-jira.com/rest/plugins/1.0/?token=${UPM_TOKEN}" \
-F "plugin=@my-plugin.jar"| Endpoint | Method | Description |
|---|---|---|
/rest/plugins/1.0/ |
GET | List all plugins |
/rest/plugins/1.0/{key}-key |
GET | Plugin details |
/rest/plugins/1.0/{key}-key/binary |
GET | Download plugin JAR |
/rest/plugins/1.0/?token={upm} |
POST | Upload/install plugin JAR |
/rest/plugins/1.0/{key}-key |
DELETE | Uninstall plugin |
Works on Jira Server and Data Center (7.x — 9.x). Not applicable to Jira Cloud.