---
title: "Creates or updates the storefront (Artist Storefront) of a track."
method: PUT
path: "/tracks/{track_urn}/storefront"
tags: ["tracks"]
---

# Creates or updates the storefront (Artist Storefront) of a track.

`PUT /tracks/{track_urn}/storefront`

## Request

- Base URL: `https://api.soundcloud.com`
- URL: `https://api.soundcloud.com/tracks/{track_urn}/storefront`
- Auth: one of:
  - API key in header `Authorization`
  - OAuth 2
    - Authorization code: `https://secure.soundcloud.com/authorize`
    - Client credentials
    - Token URL: `https://secure.soundcloud.com/oauth/token`
- TypeScript: <https://skmtc.dev/soundcloud/apis/soundcloud-public-api-specification/docs/tracks/:track_urn/storefront/put.ts> (a function with typed inputs; its response is checked against the schema)

Creates or updates the storefront module shown on the track page. The request replaces
the whole storefront: optional fields (link_title, description, price) are cleared when
omitted, so always send every value the storefront should keep. The request fails with
403 when the authenticated user does not own the track, and also when the user does not
hold a creator subscription that includes external purchase options. The storefront
links to an external page — no payment is processed by SoundCloud.

## Path parameters

- `track_urn` string, required

## Request body

- StorefrontUpdateRequest: Creates or updates the storefront (Artist Storefront / buy module) of a track. The request replaces the whole storefront - omitted optional fields are cleared, so always send every value the storefront should keep.
  - `title` string, required: Card title shown on the storefront module.
  - `type` 'digital' | 'vinyl' | 'cd' | 'cassette' | 'apparel' | 'sample_pack' | 'subscription' | 'live_event' | 'live_stream' | 'other', required: The type of item offered.
  - `link` string, required: External http(s) URL the storefront button opens.
  - `link_title` string: Label of the storefront button. Omit to clear.
  - `description` string: Description shown on the storefront module. Omit to clear.
  - `price` string: Display-only price text shown next to the item type. No payment is processed by SoundCloud. Omit to clear.

## Response `200`

Success

- Storefront: A track's storefront (Artist Storefront / buy module) shown on the track page.
  - `track_urn` string: The urn of the track the storefront belongs to.
  - `title` string: Card title shown on the storefront module.
  - `type` 'digital' | 'vinyl' | 'cd' | 'cassette' | 'apparel' | 'sample_pack' | 'subscription' | 'live_event' | 'live_stream' | 'other': The type of item offered.
  - `link` string: External URL the storefront button opens.
  - `link_title` string, nullable: Label of the storefront button.
  - `description` string, nullable: Description shown on the storefront module.
  - `image_url` string, nullable: Image shown on the storefront module. Read-only; managed on soundcloud.com.
  - `price` string, nullable: Display-only price text shown next to the item type. No payment is processed by SoundCloud.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found

## Changes

- **2026-07-17** `ab7b2ffc0193`: 2 breaking, 4 info
  - the `errors/items/` response's property type changed from `string` to `object` for status `403`
  - the `errors/items/` response's property type changed from `string` to `object` for status `404`
  - added the optional property `errors/items/error_message` to the response with the `400` status
  - added the optional property `errors/items/error_message` to the response with the `401` status
  - …2 more
- **2026-07-15** `a163bff454e6`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/soundcloud/apis/soundcloud-public-api-specification/changes/tracks/:track_urn/storefront/put.md)

---

[API](https://skmtc.dev/soundcloud/apis/soundcloud-public-api-specification.md) - [All operations](https://skmtc.dev/soundcloud/apis/soundcloud-public-api-specification/llms.txt) - [OpenAPI document](https://skmtc.dev/soundcloud/apis/soundcloud-public-api-specification/revisions/0d057017b405?raw)
