Features
Websites & publishingPortfolio engineMedia & deliveryConservation & fieldworkClient deliveryCoursesCommerce & operationsTeam & workflow
FoundationSolutionsPricing
DocumentationDeveloper APISoftwareGuides
About
AboutCommitmentNewsroom
Sign In
ArtInStack

The creative operating system

Product

  • Features overview
  • Websites
  • Portfolio
  • Media
  • Conservation
  • Client delivery
  • Courses
  • Commerce
  • Team
  • Solutions

Resources

  • Guides
  • Software
  • Documentation
  • Developer API
  • Platform foundation
  • Pricing
  • Changelog
  • Roadmap

About

  • About
  • Commitment
  • Newsroom
  • Status
  • Talk to us

Customer login

© 2026 ArtInStack. All rights reserved.

Privacy policyTerms of service

ArtInStack Developer Platform

Build custom integrations, automate workflows, and connect official clients like Lightroom Classic using the ArtInStack HTTP API. Open API reference.

Developer API
  • Overview
  • Authentication
  • OAuth 2.0
  • Personal access tokens
  • Scopes
  • Errors
  • Idempotency
  • Media
  • Portfolios
  • Lightroom Classic
  • Capture One
  • Photoshop
  • Developer settings
API reference
Developer API

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
  • .ccx from Software

Install

  1. Download ArtInStack-Photoshop-latest.ccx from Software
  2. Double-click the .ccx (or open it with Creative Cloud Desktop) to install into Photoshop
  3. Restart Photoshop if the panel does not appear
  4. 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).

  1. In the ArtInStack panel, click Connect
  2. The plugin requests a device code and opens /oauth/device in your browser
  3. Sign in if prompted, enter the user code shown in the panel (if asked), then approve scopes
  4. The plugin polls /api/oauth/token until approved, then stores access + refresh tokens
  5. 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

  1. After Connect, the panel loads GET /api/v1/portfolios
  2. Choose the portfolio for this publish
  3. Create portfolios in the ArtInStack dashboard. The plugin does not create them

Publish

  1. Open the document you want to publish
  2. Click Publish. The plugin exports the active document for upload (JPEG today)
  3. Upload via POST /api/v1/media with Idempotency-Key and portfolio_id
  4. 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

SymptomCheck
Connect stalls / deniedComplete consent on /oauth/device; Device Grant enabled for the Photoshop OAuth client
Empty portfolio listportfolios:read granted; portfolio exists in same workspace as consent; Connect completed
Upload 403Missing media:write or portfolios:write
File type rejectedKeep the active document open; plugin export must succeed
File too largeFlatten / resize; platform max image size applies
Duplicate uploads on retryStable Idempotency-Key per publish. Safe to Publish again

Disconnect

Use Disconnect in the panel or Revoke access under Connected apps in the dashboard.