Skip to main content
cURL
Cost: 1 API credit per write.
Changes the live listing on Etsy. Send all three fields; "tags": [] for none. Needs the listings:write scope and the Listing optimization workspace permission. Send dry_run=true to see the planned write without sending it.

Which languages

The language must be one of the shop’s languages (Get shop) other than the listing’s own language. Tags follow Etsy’s limits for the language: at most 13, each at most 20 characters for English and 30 for other languages. Longer is 400.

The answer

Revert change restores the translation from before the change. A translation the change created can’t be removed: Etsy has no translation delete. Send an Idempotency-Key with every write: see Idempotency. Another write to the listing in flight answers 409 listing_busy. Credits and limits says when a write is charged.

Authorizations

Authorization
string
header
required

An API key: Authorization: Bearer alura_sk_....

Headers

Idempotency-Key
string

Makes a retry safe: the same key with the same request within 24 hours answers from the first write (with Idempotent-Replayed: true) and never writes to Etsy twice; a write that failed with nothing written (Retry-After set) is tried again under it. The same key with a different request is a 409 conflict; while the first request still runs, 409 idempotency_processing (or the same 202). Required for relative changes such as adjust_price, and to add a listing file, image or video, or to change the alt text of an image (each uploads to Etsy, so a blind retry would upload again); a dry_run=true needs none.

Required string length: 1 - 255

Path Parameters

id
string
required

The Etsy listing ID. A listing outside the workspace is 404.

Pattern: ^[0-9]{1,20}$
Example:

"1834720561"

language
string
required

One of the shop's languages (GET /v1/workspace/shops/{shop_id} languages) other than the listing's own (its language), for example de.

Pattern: ^[A-Za-z]{2}(?:-[A-Za-z]{2})?$
Example:

"de"

Query Parameters

dry_run
boolean

true: plan the write and send nothing: what it would change, the Etsy calls it would make, and nothing reserved, charged or recorded. Free; counts toward the per-minute write limit.

Body

application/json
title
string
required

The title in this language, at most 140 characters.

Required string length: 1 - 140
description
string
required

The description in this language.

Required string length: 1 - 50000
tags
string[]
required

The tags in this language, at most 13; each at most 20 characters for English and 30 for other languages. [] for none.

Maximum array length: 13
Minimum string length: 1

Response

OK: the write landed on Etsy (or, with dry_run=true, what it would do).

object
string
required
Allowed value: "workspace.listing_translation"
listing_id
string
required

Etsy ID, as a string.

shop_id
string
required

Etsy ID, as a string.

language
string
required

The translation language, as the shop names it.

title
string | null
required

The title in this language as Etsy holds it after the write; null when Etsy's answer was not readable.

description
string | null
required

The description in this language after the write; null when Etsy's answer was not readable.

tags
string[] | null
required

The tags in this language after the write; null when Etsy's answer was not readable.

as_of
string
required

When Etsy answered the write.

change
object
required

The write: its change ID and what landed.

notices
object[]
required

Why a part of the answer is unknown; empty when nothing is.