Features
WebsitesPortfolioMediaConservationClient deliveryCoursesCommerceTeam
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

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 (the master)
  2. Adjust Export settings in the panel if needed (defaults match Lightroom / Capture One web sizing)
  3. Click Publish active document. The plugin prepares a JPEG and uploads 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. The panel publishes JPEG only today.

Export settings (v0.1.1+)

SettingDefaultNotes
ResizeOn — 2048 pxLonger side (alternatives: shorter side, width, height, custom px)
Convert to sRGBOnWeb/portfolio color
Embed profileOnWith sRGB convert
Duplicate imageOnWork on a copy; master is never modified
Convert to 8-bitOnJPEG path
SharpeningLightLight or Screen Smart Sharpen on a stamped layer; None to skip
JPEG qualityHigh (~10)UXP scale 1–12

What happens when you publish (Duplicate on)

  1. Photoshop duplicates the active document and runs export steps on the copy only (8-bit, sRGB, resize, merge visible, optional sharpen stamp)
  2. The plugin writes {document-basename}-copy.jpg and uploads it
  3. The processed copy stays open so you can inspect layers, tweak sharpen opacity in the Layers panel (ArtInStack sharpen), or Save As locally
  4. The copy opens at 100% zoom, or Fit on Screen when the canvas is larger than the view
  5. Publish again while that copy is still frontmost → re-upload only (no second duplicate). Activate the master to prepare a fresh copy or change export settings

Upload title uses the document name; multipart filename uses {basename}-copy.jpg (e.g. Tiger-Edit-copy.jpg). Masters whose names already contain copy get an extra -copy suffix on export — that is expected.

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 largeEnable Resize or lower JPEG quality; platform max image size applies
Export settings changed errorActivate the master and publish again (prepared copy was built with different settings)
Duplicate uploads on retryStable Idempotency-Key per prepared document. Safe to Publish again from the same open copy

Disconnect

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