productivity
Etsy CLI for AI Agents
Use the Etsy CLI from KosmoKrator to call Etsy tools headlessly, return JSON, inspect schemas, and automate workflows from coding agents, scripts, and CI.Etsy CLI Setup
Etsy can be configured headlessly with `kosmokrator integrations:configure etsy`.
# Install KosmoKrator first if it is not available on PATH.
curl -fsSL https://raw.githubusercontent.com/OpenCompanyApp/kosmokrator/main/install.sh | bash
# Configure and verify this integration.
kosmokrator integrations:configure etsy --set access_token="$ETSY_ACCESS_TOKEN" --set shop_id="$ETSY_SHOP_ID" --enable --read allow --write ask --json
kosmokrator integrations:doctor etsy --json
kosmokrator integrations:status --json Credentials
Authentication type: Manual OAuth token oauth2_manual_token. Configure credentials once, then reuse the same stored profile from scripts, coding CLIs, Lua, and MCP.
| Key | Env var | Type | Required | Label |
|---|---|---|---|---|
access_token | ETSY_ACCESS_TOKEN | Secret secret | yes | OAuth Access Token |
api_key | ETSY_API_KEY | Secret secret | no | App API Key |
shop_id | ETSY_SHOP_ID | Text string | yes | Shop ID |
base_url | ETSY_BASE_URL | URL url | no | Base URL |
Command Patterns
The generic command is stable across every integration. The provider shortcut is shorter for humans.
kosmo integrations:call etsy.etsy_get_shop '{}' --json kosmo integrations:etsy etsy_get_shop '{}' --json Discovery
These commands return structured output for coding agents that need to inspect capabilities before choosing a function.
kosmo integrations:docs etsy --json
kosmo integrations:docs etsy.etsy_get_shop --json
kosmo integrations:schema etsy.etsy_get_shop --json
kosmo integrations:search "Etsy" --json
kosmo integrations:list --json Automation Contexts
The same configured command surface works in these environments. The command does not change unless the host wrapper, credentials, or permissions change.
CLI Functions
Every function below can be called headlessly. Commands are highlighted, copyable, and scroll horizontally when payloads are long.
etsy.etsy_get_shop
Get configured Etsy shop profile.
read - Parameters
- none
kosmo integrations:call etsy.etsy_get_shop '{}' --json kosmo integrations:etsy etsy_get_shop '{}' --json etsy.etsy_list_listings
List all listings in the Etsy shop. Returns paginated results with optional state filtering (active, draft, inactive, expired).
read - Parameters
- state, limit, offset
kosmo integrations:call etsy.etsy_list_listings '{"state":"example_state","limit":1,"offset":1}' --json kosmo integrations:etsy etsy_list_listings '{"state":"example_state","limit":1,"offset":1}' --json etsy.etsy_get_listing
Get full details for a specific Etsy listing, including title, description, price, images, and state.
read - Parameters
- listing_id
kosmo integrations:call etsy.etsy_get_listing '{"listing_id":1}' --json kosmo integrations:etsy etsy_get_listing '{"listing_id":1}' --json etsy.etsy_create_listing
Create a new listing in the Etsy shop. Requires a title, description, price, quantity, and shipping profile ID.
write - Parameters
- title, description, price, quantity, shipping_profile_id, taxonomy_id, tags, who_made, when_made, is_supply
kosmo integrations:call etsy.etsy_create_listing '{"title":"example_title","description":"example_description","price":1,"quantity":1,"shipping_profile_id":1,"taxonomy_id":1,"tags":"example_tags","who_made":"example_who_made"}' --json kosmo integrations:etsy etsy_create_listing '{"title":"example_title","description":"example_description","price":1,"quantity":1,"shipping_profile_id":1,"taxonomy_id":1,"tags":"example_tags","who_made":"example_who_made"}' --json etsy.etsy_update_listing
Update a listing.
write - Parameters
- none
kosmo integrations:call etsy.etsy_update_listing '{}' --json kosmo integrations:etsy etsy_update_listing '{}' --json etsy.etsy_delete_listing
Delete a listing.
write - Parameters
- none
kosmo integrations:call etsy.etsy_delete_listing '{}' --json kosmo integrations:etsy etsy_delete_listing '{}' --json etsy.etsy_list_listing_images
List listing images.
read - Parameters
- none
kosmo integrations:call etsy.etsy_list_listing_images '{}' --json kosmo integrations:etsy etsy_list_listing_images '{}' --json etsy.etsy_upload_listing_image
Upload a listing image.
write - Parameters
- none
kosmo integrations:call etsy.etsy_upload_listing_image '{}' --json kosmo integrations:etsy etsy_upload_listing_image '{}' --json etsy.etsy_get_listing_inventory
Get the inventory (products, offerings, and pricing) for a specific Etsy listing.
read - Parameters
- listing_id
kosmo integrations:call etsy.etsy_get_listing_inventory '{"listing_id":1}' --json kosmo integrations:etsy etsy_get_listing_inventory '{"listing_id":1}' --json etsy.etsy_update_listing_inventory
Update listing inventory.
write - Parameters
- none
kosmo integrations:call etsy.etsy_update_listing_inventory '{}' --json kosmo integrations:etsy etsy_update_listing_inventory '{}' --json etsy.etsy_list_orders
List orders (receipts) for the Etsy shop. Returns paginated order data including buyer info, items, and totals.
read - Parameters
- limit, offset, was_paid, was_shipped
kosmo integrations:call etsy.etsy_list_orders '{"limit":1,"offset":1,"was_paid":true,"was_shipped":true}' --json kosmo integrations:etsy etsy_list_orders '{"limit":1,"offset":1,"was_paid":true,"was_shipped":true}' --json etsy.etsy_get_receipt
Get one receipt/order.
read - Parameters
- none
kosmo integrations:call etsy.etsy_get_receipt '{}' --json kosmo integrations:etsy etsy_get_receipt '{}' --json etsy.etsy_list_receipt_transactions
List receipt line items.
read - Parameters
- none
kosmo integrations:call etsy.etsy_list_receipt_transactions '{}' --json kosmo integrations:etsy etsy_list_receipt_transactions '{}' --json etsy.etsy_list_shop_sections
List shop sections.
read - Parameters
- none
kosmo integrations:call etsy.etsy_list_shop_sections '{}' --json kosmo integrations:etsy etsy_list_shop_sections '{}' --json etsy.etsy_list_shipping_profiles
List shop shipping profiles.
read - Parameters
- none
kosmo integrations:call etsy.etsy_list_shipping_profiles '{}' --json kosmo integrations:etsy etsy_list_shipping_profiles '{}' --json etsy.etsy_list_seller_taxonomy_nodes
List seller taxonomy nodes.
read - Parameters
- none
kosmo integrations:call etsy.etsy_list_seller_taxonomy_nodes '{}' --json kosmo integrations:etsy etsy_list_seller_taxonomy_nodes '{}' --json etsy.etsy_get_current_user
Get the profile of the currently authenticated Etsy user, including user ID and primary shop info.
read - Parameters
- none
kosmo integrations:call etsy.etsy_get_current_user '{}' --json kosmo integrations:etsy etsy_get_current_user '{}' --json etsy.etsy_api_get
Call an Etsy GET endpoint.
read - Parameters
- none
kosmo integrations:call etsy.etsy_api_get '{}' --json kosmo integrations:etsy etsy_api_get '{}' --json etsy.etsy_api_post
Call an Etsy POST endpoint.
write - Parameters
- none
kosmo integrations:call etsy.etsy_api_post '{}' --json kosmo integrations:etsy etsy_api_post '{}' --json etsy.etsy_api_put
Call an Etsy PUT endpoint.
write - Parameters
- none
kosmo integrations:call etsy.etsy_api_put '{}' --json kosmo integrations:etsy etsy_api_put '{}' --json etsy.etsy_api_delete
Call an Etsy DELETE endpoint.
write - Parameters
- none
kosmo integrations:call etsy.etsy_api_delete '{}' --json kosmo integrations:etsy etsy_api_delete '{}' --json Function Schemas
Use these parameter tables when building CLI payloads without calling integrations:schema first.
etsy.etsy_get_shop 0 parameters
kosmo integrations:schema etsy.etsy_get_shop --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
etsy.etsy_list_listings 3 parameters
kosmo integrations:schema etsy.etsy_list_listings --json | Parameter | Type | Required | Description |
|---|---|---|---|
state | string | no | Filter listings by state. Defaults to "active" if not provided. |
limit | integer | no | Number of listings to return per page (1-100, default: 25). |
offset | integer | no | Offset for pagination - pass the offset from a previous response to get the next page. |
etsy.etsy_get_listing 1 parameters
kosmo integrations:schema etsy.etsy_get_listing --json | Parameter | Type | Required | Description |
|---|---|---|---|
listing_id | integer | yes | The Etsy listing ID. |
etsy.etsy_create_listing 10 parameters
kosmo integrations:schema etsy.etsy_create_listing --json | Parameter | Type | Required | Description |
|---|---|---|---|
title | string | yes | Listing title (max 140 characters). |
description | string | yes | Listing description (max 500 characters for initial draft). |
price | number | yes | Listing price (must be greater than 0). |
quantity | integer | yes | Stock quantity (must be at least 1). |
shipping_profile_id | integer | yes | ID of the shipping profile to assign to this listing. |
taxonomy_id | integer | no | Etsy taxonomy (category) ID for the listing. |
tags | array | no | Tags for the listing (up to 13 tags, max 20 characters each). |
who_made | string | no | Who made this item. Defaults to "i_did" if not specified. |
when_made | string | no | When the item was made (e.g., "made_to_order", "2020_2024"). Defaults to "made_to_order". |
is_supply | boolean | no | Whether this listing is a supply (true) or a finished product (false). |
etsy.etsy_update_listing 0 parameters
kosmo integrations:schema etsy.etsy_update_listing --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
etsy.etsy_delete_listing 0 parameters
kosmo integrations:schema etsy.etsy_delete_listing --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
etsy.etsy_list_listing_images 0 parameters
kosmo integrations:schema etsy.etsy_list_listing_images --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
etsy.etsy_upload_listing_image 0 parameters
kosmo integrations:schema etsy.etsy_upload_listing_image --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
etsy.etsy_get_listing_inventory 1 parameters
kosmo integrations:schema etsy.etsy_get_listing_inventory --json | Parameter | Type | Required | Description |
|---|---|---|---|
listing_id | integer | yes | The Etsy listing ID. |
etsy.etsy_update_listing_inventory 0 parameters
kosmo integrations:schema etsy.etsy_update_listing_inventory --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
etsy.etsy_list_orders 4 parameters
kosmo integrations:schema etsy.etsy_list_orders --json | Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | no | Number of receipts to return per page (1-100, default: 25). |
offset | integer | no | Offset for pagination - pass the offset from a previous response to get the next page. |
was_paid | boolean | no | Filter to only paid receipts (true) or unpaid (false). |
was_shipped | boolean | no | Filter to only shipped receipts (true) or unshipped (false). |
etsy.etsy_get_receipt 0 parameters
kosmo integrations:schema etsy.etsy_get_receipt --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
etsy.etsy_list_receipt_transactions 0 parameters
kosmo integrations:schema etsy.etsy_list_receipt_transactions --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
etsy.etsy_list_shop_sections 0 parameters
kosmo integrations:schema etsy.etsy_list_shop_sections --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
etsy.etsy_list_shipping_profiles 0 parameters
kosmo integrations:schema etsy.etsy_list_shipping_profiles --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
etsy.etsy_list_seller_taxonomy_nodes 0 parameters
kosmo integrations:schema etsy.etsy_list_seller_taxonomy_nodes --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
etsy.etsy_get_current_user 0 parameters
kosmo integrations:schema etsy.etsy_get_current_user --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
etsy.etsy_api_get 0 parameters
kosmo integrations:schema etsy.etsy_api_get --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
etsy.etsy_api_post 0 parameters
kosmo integrations:schema etsy.etsy_api_post --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
etsy.etsy_api_put 0 parameters
kosmo integrations:schema etsy.etsy_api_put --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
etsy.etsy_api_delete 0 parameters
kosmo integrations:schema etsy.etsy_api_delete --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
Permissions
Headless calls still follow the integration read/write permission policy. Configure read/write defaults with
integrations:configure. Add --force only for trusted automation that should bypass that policy.