Sevil Turan LLC · listingtool

Credential Architecture

The short version: the Etsy app secret lives on one server I control, and no desktop installation — mine included — ever contains it. This page shows the mechanism and where it stands today.

What listingtool does

listingtool is a desktop app that turns a seller's own artwork and product photos into a finished Etsy listing: it composites the design onto the photos, writes a title, tags and description, and creates a draft in the seller's own shop for them to review before anything goes live.

How seller credentials are handled

Every request to Etsy's API needs two things: an x-api-key built from the app's keystring and shared secret, and a bearer token proving a specific seller authorised access. The secret identifies the app; the token identifies the shop. A desktop installation only ever needs to prove itself to my server — never to Etsy directly.

Etsy consent page seller approves access opens browser redirect + code Desktop app yours, or a future seller's installation listingtool relay holds the app secret — the only place that does Etsy API the seller's shop Bearer: relay token x-api-key: app secret + seller's Etsy token
Dashed: once per seller, to connect a shop — a browser redirect between the seller, Etsy and the relay that the desktop app never participates in. Solid: every API call after that — the relay is the only place the app secret is ever added, and the desktop side of every request carries nothing but its own relay token.

One consequence worth stating plainly: this is not how the app worked when I first applied for API access. The earlier version held the keystring and shared secret directly on each installation, because it had no server to keep them on. That is the shape of thing Etsy's terms ask developers to avoid, and it is why this page exists — the relay above replaced it.

Status today

Verified live

The relay is deployed and reachable over HTTPS. My own shop, RoseGiftShopUS, is connected through it — not through a locally stored keystring — and a real draft listing has been created on Etsy end to end through that path, image upload included.

Etsy API access today is a Personal App, approved for RoseGiftShopUS only. No other shop is connected, and none can be — the relay exists so that if and when I request Commercial Access, the answer to “how would another seller's credentials be handled” is this page, not a promise.

What this is not, yet

  • Not open to other sellers. The relay currently serves one shop: mine.
  • Not a Commercial Access application. This page is background for a Personal App already in place, ahead of a Commercial Access request I plan to make once there's a real usage record to point to.
  • Not asking anyone to trust a diagram alone. The status above is checkable: the relay's health endpoint and the shop connection are both live right now.