openapi: 3.0.2 info: title: Etsy Open API v3 BuyerTaxonomy ShopListing Video API description:

Etsy's Open API provides a simple RESTful interface for various Etsy.com features.

If you'd like to report an issue or provide feedback on the API design, please add an issue in Github.

© 2021-2026 Etsy, Inc. All Rights Reserved. Use of this code is subject to Etsy's API Developer Terms of Use. termsOfService: https://www.etsy.com/legal/api contact: email: developers@etsy.com version: 3.0.0 x-generated-from: https://www.etsy.com/openapi/generated/oas/3.0.0.json x-last-validated: '2026-05-30' servers: - url: https://openapi.etsy.com description: Etsy Open API v3 base URL (per Etsy developer documentation; live calls also resolve at https://api.etsy.com/v3/application). security: - api_key: [] tags: - name: ShopListing Video paths: /v3/application/shops/{shop_id}/listings/{listing_id}/videos/{video_id}: delete: operationId: deleteListingVideo description: '
General ReleaseReport bug
Open API V3 endpoint to delete a listing video. A copy of the video remains on our servers, and so a deleted video may be re-associated with the listing without re-uploading the original video; see uploadListingVideo.' tags: - ShopListing Video parameters: - name: shop_id in: path description: The unique positive non-zero numeric ID for an Etsy Shop. required: true schema: type: integer description: The unique positive non-zero numeric ID for an Etsy Shop. format: int64 minimum: 1 example: 123456 - name: listing_id in: path description: The numeric ID for the [listing](/documentation/reference#tag/ShopListing) associated to this transaction. required: true schema: type: integer description: The numeric ID for the [listing](/documentation/reference#tag/ShopListing) associated to this transaction. format: int64 minimum: 1 example: 123456789 - name: video_id in: path description: The unique ID of a video associated with a listing. required: true schema: type: integer description: The unique ID of a video associated with a listing. format: int64 minimum: 1 example: 1 responses: '404': description: A resource could not be found. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: DeleteListingVideo404Example: summary: Default deleteListingVideo 404 response x-microcks-default: true value: error: example string '400': description: There was a problem with the request data. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: DeleteListingVideo400Example: summary: Default deleteListingVideo 400 response x-microcks-default: true value: error: example string '401': description: The request lacks valid authentication credentials. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: DeleteListingVideo401Example: summary: Default deleteListingVideo 401 response x-microcks-default: true value: error: example string '403': description: The request attempted to perform an operation it is not allowed to. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: DeleteListingVideo403Example: summary: Default deleteListingVideo 403 response x-microcks-default: true value: error: example string '204': description: The ListingVideo resource was correctly deleted '500': description: The server encountered an internal error. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: DeleteListingVideo500Example: summary: Default deleteListingVideo 500 response x-microcks-default: true value: error: example string security: - api_key: [] oauth2: - listings_w x-microcks-operation: delay: 0 dispatcher: FALLBACK summary: Etsy Delete Listing Video /v3/application/listings/{listing_id}/videos/{video_id}: get: operationId: getListingVideo description: '
General ReleaseReport bug
Retrieves a single video associated with the given listing. Requesting a video from a listing returns an empty result.' tags: - ShopListing Video parameters: - name: video_id in: path description: The unique ID of a video associated with a listing. required: true schema: type: integer description: The unique ID of a video associated with a listing. format: int64 minimum: 1 example: 1 - name: listing_id in: path description: The numeric ID for the [listing](/documentation/reference#tag/ShopListing) associated to this transaction. required: true schema: type: integer description: The numeric ID for the [listing](/documentation/reference#tag/ShopListing) associated to this transaction. format: int64 minimum: 1 example: 123456789 responses: '200': description: The metadata for a video associated with a listing. content: application/json: schema: $ref: '#/components/schemas/ListingVideo' examples: GetListingVideo200Example: summary: Default getListingVideo 200 response x-microcks-default: true value: video_id: 1 height: 1 width: 1 thumbnail_url: https://www.etsy.com/listing/123456789 video_url: https://www.etsy.com/listing/123456789 video_state: active '404': description: A resource could not be found. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: GetListingVideo404Example: summary: Default getListingVideo 404 response x-microcks-default: true value: error: example string '400': description: There was a problem with the request data. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: GetListingVideo400Example: summary: Default getListingVideo 400 response x-microcks-default: true value: error: example string '403': description: The request attempted to perform an operation it is not allowed to. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: GetListingVideo403Example: summary: Default getListingVideo 403 response x-microcks-default: true value: error: example string '401': description: The request lacks valid authentication credentials. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: GetListingVideo401Example: summary: Default getListingVideo 401 response x-microcks-default: true value: error: example string '500': description: The server encountered an internal error. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: GetListingVideo500Example: summary: Default getListingVideo 500 response x-microcks-default: true value: error: example string x-microcks-operation: delay: 0 dispatcher: FALLBACK summary: Etsy Get Listing Video /v3/application/listings/{listing_id}/videos: get: operationId: getListingVideos description: '
General ReleaseReport bug
Retrieves all listing video resources for a listing with a specific listing ID.' tags: - ShopListing Video parameters: - name: listing_id in: path description: The numeric ID for the [listing](/documentation/reference#tag/ShopListing) associated to this transaction. required: true schema: type: integer description: The numeric ID for the [listing](/documentation/reference#tag/ShopListing) associated to this transaction. format: int64 minimum: 1 example: 123456789 responses: '200': description: A list of videos for a listing content: application/json: schema: $ref: '#/components/schemas/ListingVideos' examples: GetListingVideos200Example: summary: Default getListingVideos 200 response x-microcks-default: true value: count: 1 results: - null '404': description: A resource could not be found. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: GetListingVideos404Example: summary: Default getListingVideos 404 response x-microcks-default: true value: error: example string '400': description: There was a problem with the request data. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: GetListingVideos400Example: summary: Default getListingVideos 400 response x-microcks-default: true value: error: example string '403': description: The request attempted to perform an operation it is not allowed to. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: GetListingVideos403Example: summary: Default getListingVideos 403 response x-microcks-default: true value: error: example string '500': description: The server encountered an internal error. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: GetListingVideos500Example: summary: Default getListingVideos 500 response x-microcks-default: true value: error: example string x-microcks-operation: delay: 0 dispatcher: FALLBACK summary: Etsy Get Listing Videos /v3/application/shops/{shop_id}/listings/{listing_id}/videos: post: operationId: uploadListingVideo description: '
General ReleaseReport bug
Uploads a new video for a listing, or associates an existing video with a specific listing. You must either provide the `video_id` of an existing video, or the name and binary file data for a video to upload. If providing a `video_id`, the video must already be associated with the same shop as the listing, but it does not need to be currently associated with the listing. ' tags: - ShopListing Video parameters: - name: shop_id in: path description: The unique positive non-zero numeric ID for an Etsy Shop. required: true schema: type: integer description: The unique positive non-zero numeric ID for an Etsy Shop. format: int64 minimum: 1 example: 123456 - name: listing_id in: path description: The numeric ID for the [listing](/documentation/reference#tag/ShopListing) associated to this transaction. required: true schema: type: integer description: The numeric ID for the [listing](/documentation/reference#tag/ShopListing) associated to this transaction. format: int64 minimum: 1 example: 123456789 requestBody: content: multipart/form-data: schema: type: object properties: video_id: type: integer description: The unique ID of a video associated with a listing. format: int64 minimum: 1 video: type: string description: A video file to upload. format: binary nullable: true name: type: string description: The file name string for the video to upload. responses: '201': description: The metadata for a file associated with a digital listing. content: application/json: schema: $ref: '#/components/schemas/ListingVideo' examples: UploadListingVideo201Example: summary: Default uploadListingVideo 201 response x-microcks-default: true value: video_id: 1 height: 1 width: 1 thumbnail_url: https://www.etsy.com/listing/123456789 video_url: https://www.etsy.com/listing/123456789 video_state: active '404': description: A resource could not be found. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: UploadListingVideo404Example: summary: Default uploadListingVideo 404 response x-microcks-default: true value: error: example string '400': description: There was a problem with the request data. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: UploadListingVideo400Example: summary: Default uploadListingVideo 400 response x-microcks-default: true value: error: example string '403': description: The request attempted to perform an operation it is not allowed to. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: UploadListingVideo403Example: summary: Default uploadListingVideo 403 response x-microcks-default: true value: error: example string '401': description: The request lacks valid authentication credentials. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: UploadListingVideo401Example: summary: Default uploadListingVideo 401 response x-microcks-default: true value: error: example string '409': description: There was a request conflict with the current state of the target resource. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: UploadListingVideo409Example: summary: Default uploadListingVideo 409 response x-microcks-default: true value: error: example string '500': description: The server encountered an internal error. See the error message for details. content: application/json: schema: $ref: '#/components/schemas/ErrorSchema' examples: UploadListingVideo500Example: summary: Default uploadListingVideo 500 response x-microcks-default: true value: error: example string security: - api_key: [] oauth2: - listings_w x-microcks-operation: delay: 0 dispatcher: FALLBACK summary: Etsy Upload Listing Video components: schemas: ErrorSchema: type: object x-resource-id: ErrorSchema required: - error properties: error: type: string example: example string ListingVideo: type: object x-resource-id: ListingVideo description: Reference urls and metadata for a video associated with a specific listing. properties: video_id: type: integer description: The unique ID of a video associated with a listing. format: int64 minimum: 1 example: 1 height: type: integer description: The video height dimension in pixels. example: 1 width: type: integer description: The video width dimension in pixels. example: 1 thumbnail_url: type: string description: The url of the video thumbnail. example: https://www.etsy.com/listing/123456789 video_url: type: string description: The url of the video file. example: https://www.etsy.com/listing/123456789 video_state: type: string description: The current state of a given video. Value is one of `active`, `inactive`, `deleted` or `flagged`. enum: - active - inactive - deleted - flagged default: active example: active ListingVideos: type: object x-resource-id: ListingVideos description: Represents a list of listing video resources, each of which contains the reference URLs for the videos. properties: count: type: integer description: The number of results. minimum: 0 example: 1 results: type: array description: The list of requested resources. items: description: The list of requested resources. oneOf: - $ref: '#/components/schemas/ListingVideo' securitySchemes: api_key: type: apiKey name: x-api-key in: header description: Every request to a v3 API endpoint must include this data in the format `keystring:shared_secret`. Your keystring and shared secret are available on the [Your Apps](https://www.etsy.com/developers/your-apps) page. oauth2: type: oauth2 description: Open API v3 supports authenticating via OAuth 2.0. More information about Etsy's specific implementation of OAuth2 can be found [here](/documentation/essentials/oauth2). flows: authorizationCode: authorizationUrl: https://www.etsy.com/oauth/connect tokenUrl: https://openapi.etsy.com/v3/public/oauth/token scopes: address_r: see billing and shipping addresses address_w: update billing and shipping addresses billing_r: see all billing statement data cart_r: read shopping carts cart_w: add/remove from shopping carts email_r: read a user profile favorites_r: see private favorites favorites_w: add/remove favorites feedback_r: see purchase info in feedback listings_d: delete listings listings_r: see all listings (including expired etc) listings_w: create/edit listings profile_r: see all profile data profile_w: update user profile, avatar, etc recommend_r: see recommended listings recommend_w: accept/reject recommended listings shops_r: see private shop info shops_w: update shop transactions_r: see all checkout/payment data transactions_w: update receipts x-tagGroups: - name: Listing Management tags: - BuyerTaxonomy - SellerTaxonomy - ShopListing - ShopListing File - ShopListing Image - ShopListing Inventory - ShopListing Offering - ShopListing Personalization - ShopListing Product - ShopListing Translation - ShopListing VariationImage - ShopListing Video - name: Other tags: - Other - name: Payment Management tags: - Ledger Entry - Payment - name: Receipt Management tags: - Shop Receipt - Shop Receipt Transactions - name: Review Management tags: - Review - name: Shipping Management tags: - Shop HolidayPreferences - Shop ProcessingProfiles - Shop ShippingProfile - name: Shop Management tags: - Shop - Shop ProductionPartner - Shop Section - name: Shop Policy Management tags: - Shop Return Policy - name: User Management tags: - User - UserAddress