Photoshop
Install the ArtInStack UXP plugin, Device Code Connect, pick a portfolio, and publish the active document from Adobe Photoshop.
This is the integration how-to for the official Photoshop UXP Plugin. API reference: OAuth, Media, Portfolios.
Prerequisites
- Adobe Photoshop 23+ (UXP)
- Creative Cloud Desktop (to install the
.ccx) - ArtInStack account with at least one portfolio created in the dashboard
.ccxfrom Software
Install
- Download
ArtInStack-Photoshop-latest.ccxfrom Software - Double-click the
.ccx(or open it with Creative Cloud Desktop) to install into Photoshop - Restart Photoshop if the panel does not appear
- Open Plugins → ArtInStack
Private beta / development: load manifest.json with UXP Developer Tools instead of the .ccx.
Connect (Device Code)
Photoshop UXP cannot bind a loopback HTTP listener, so the plugin uses OAuth 2.0 Device Authorization Grant (not Authorization Code + PKCE).
- In the ArtInStack panel, click Connect
- The plugin requests a device code and opens
/oauth/devicein your browser - Sign in if prompted, enter the user code shown in the panel (if asked), then approve scopes
- The plugin polls
/api/oauth/tokenuntil approved, then stores access + refresh tokens - Connected apps in Settings → Developer lists ArtInStack Photoshop after consent
For local API testing set Base URL in the panel to http://127.0.0.1:3000.
Pick a portfolio
- After Connect, the panel loads
GET /api/v1/portfolios - Choose the portfolio for this publish
- Create portfolios in the ArtInStack dashboard. The plugin does not create them
Publish
- Open the document you want to publish
- Click Publish. The plugin exports the active document for upload (JPEG today)
- Upload via
POST /api/v1/mediawithIdempotency-Keyandportfolio_id - On success, the photo appears in the dashboard portfolio; the panel log shows
media_id
Supported API types (JPEG, PNG, GIF, WebP, TIFF) are listed on Media.
Troubleshooting
| Symptom | Check |
|---|---|
| Connect stalls / denied | Complete consent on /oauth/device; Device Grant enabled for the Photoshop OAuth client |
| Empty portfolio list | portfolios:read granted; portfolio exists in same workspace as consent; Connect completed |
| Upload 403 | Missing media:write or portfolios:write |
| File type rejected | Keep the active document open; plugin export must succeed |
| File too large | Flatten / resize; platform max image size applies |
| Duplicate uploads on retry | Stable Idempotency-Key per publish. Safe to Publish again |
Disconnect
Use Disconnect in the panel or Revoke access under Connected apps in the dashboard.
