Skip to main content
cURL
Cost: 1 API credit per write.
Send holiday_id, as Get holiday settings lists it, and is_working. One holiday per call, as Etsy changes them. Etsy keeps holiday settings for shops in the US and Canada only. ?shop_id= is optional when the workspace has one connected shop; a shop outside the workspace answers 404. Needs the shop:write scope and the owner or admin role in the workspace. REST only: there is no MCP tool for it. Send an Idempotency-Key so a retry never writes twice (Idempotency).
This changes your live Etsy shop’s holiday settings. The change is recorded but cannot be reverted through the API.

The answer

  • 200: the holiday as Etsy returned it, in holidays, with its change. A field Etsy’s answer lacked is null, and notices says so.
  • 202: the change, while Etsy is still answering. Follow it with Get change.
dry_run=true shows what the write would send and the Etsy calls it would make. It sends, charges and records nothing, but counts toward the per-minute write limit. A write that fails is not 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

Query Parameters

shop_id
string

The Etsy shop ID of one of the workspace's connected shops; optional when the workspace has one. A shop outside the workspace is 404.

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

"22841907"

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
holiday_id
string
required

Etsy's holiday ID, as GET /v1/workspace/holiday-settings lists it. One holiday per call.

Pattern: ^[1-9][0-9]{0,9}$
is_working
boolean
required

Whether the shop processes orders on this holiday.

Response

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

object
string
required
Allowed value: "workspace.holiday_settings"
shop_id
string
required

The Etsy shop ID, as a string.

holidays
object[]
required

The holiday this write changed, as Etsy answered it.

fetched_at
string
required

When Etsy answered this write: the object is as of then.

as_of
string
required

Equal to fetched_at.

change
object
required

The write: its change ID and what landed.

notices
object[]
required

Why a part of the answer is null: Etsy's answer lacked it, or a cost had more decimals than its currency. Empty when nothing is.