naftiko: 1.0.0-alpha2 info: label: Etsy Open API v3 — Shop description: 'Etsy Open API v3 — Shop. 4 operations. Lead operation: Get Shop. Self-contained Naftiko capability covering one Etsy business surface.' tags: - Etsy - Open API v3 - Shop created: '2026-05-30' modified: '2026-05-30' binds: - namespace: env keys: ETSY_API_KEY: ETSY_API_KEY ETSY_OAUTH_TOKEN: ETSY_OAUTH_TOKEN capability: consumes: - type: http namespace: open-api-v3-shop baseUri: https://openapi.etsy.com description: Etsy Open API v3 — Shop business capability. Self-contained, no shared references. authentication: type: apikey key: x-api-key value: '{{env.ETSY_API_KEY}}' placement: header resources: - name: shops path: /v3/application/shops/{shop_id} operations: - name: getShop method: GET description: Get Shop inputParameters: - name: shop_id in: path type: integer required: true description: The unique positive non-zero numeric ID for an Etsy Shop. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updateShop method: PUT description: Update Shop inputParameters: - name: shop_id in: path type: integer required: true description: The unique positive non-zero numeric ID for an Etsy Shop. - name: body in: body type: object required: false description: JSON request body. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-shops path: /v3/application/users/{user_id}/shops operations: - name: getShopByOwnerUserId method: GET description: Get Shop by Owner User Id inputParameters: - name: user_id in: path type: integer required: true description: The numeric user ID of the [user](/documentation/reference#tag/User) who owns this shop. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: shops path: /v3/application/shops operations: - name: findShops method: GET description: Find Shops inputParameters: - name: shop_name in: query type: string required: true description: The shop's name string. - name: limit in: query type: integer required: false description: The maximum number of results to return. - name: offset in: query type: integer required: false description: The number of records to skip before selecting the first result. outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: open-api-v3-shop-rest port: 8080 description: REST adapter for Etsy Open API v3 — Shop. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/shops/{shop_id} name: shops description: REST surface for shops. operations: - method: GET name: getShop description: Get Shop call: open-api-v3-shop.getShop with: shop_id: rest.shop_id outputParameters: - type: object mapping: $. - method: PUT name: updateShop description: Update Shop call: open-api-v3-shop.updateShop with: shop_id: rest.shop_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users/{user_id}/shops name: users-shops description: REST surface for users-shops. operations: - method: GET name: getShopByOwnerUserId description: Get Shop by Owner User Id call: open-api-v3-shop.getShopByOwnerUserId with: user_id: rest.user_id outputParameters: - type: object mapping: $. - path: /v1/shops name: shops description: REST surface for shops. operations: - method: GET name: findShops description: Find Shops call: open-api-v3-shop.findShops with: shop_name: rest.shop_name limit: rest.limit offset: rest.offset outputParameters: - type: object mapping: $. - type: mcp namespace: open-api-v3-shop-mcp port: 9090 transport: http description: MCP adapter for Etsy Open API v3 — Shop. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-shop description: Get Shop hints: readOnly: true destructive: false idempotent: true call: open-api-v3-shop.getShop with: shop_id: tools.shop_id outputParameters: - type: object mapping: $. - name: update-shop description: Update Shop hints: readOnly: false destructive: false idempotent: true call: open-api-v3-shop.updateShop with: shop_id: tools.shop_id body: tools.body outputParameters: - type: object mapping: $. - name: get-shop-owner-user-id description: Get Shop by Owner User Id hints: readOnly: true destructive: false idempotent: true call: open-api-v3-shop.getShopByOwnerUserId with: user_id: tools.user_id outputParameters: - type: object mapping: $. - name: find-shops description: Find Shops hints: readOnly: true destructive: false idempotent: true call: open-api-v3-shop.findShops with: shop_name: tools.shop_name limit: tools.limit offset: tools.offset outputParameters: - type: object mapping: $.