naftiko: 1.0.0-alpha2 info: label: Coinbase Exchange API — Products description: 'Coinbase Exchange API — Products. 7 operations. Lead operation: List products. Self-contained Naftiko capability covering one Coinbase business surface.' tags: - Coinbase - Products created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: COINBASE_API_KEY: COINBASE_API_KEY capability: consumes: - type: http namespace: exchange-products baseUri: https://api.exchange.coinbase.com description: Coinbase Exchange API — Products business capability. Self-contained, no shared references. resources: - name: products path: /products operations: - name: listproducts method: GET description: List products outputRawFormat: json outputParameters: - name: result type: object value: $. - name: products-product_id path: /products/{product_id} operations: - name: getproduct method: GET description: Get product outputRawFormat: json outputParameters: - name: result type: object value: $. - name: products-product_id-book path: /products/{product_id}/book operations: - name: getproductorderbook method: GET description: Get product order book outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: level in: query type: integer description: Order book detail level (1, 2, or 3) - name: products-product_id-candles path: /products/{product_id}/candles operations: - name: getproductcandles method: GET description: Get product candles outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: start in: query type: string description: Start time in ISO 8601 format - name: end in: query type: string description: End time in ISO 8601 format - name: granularity in: query type: integer description: Candle granularity in seconds - name: products-product_id-stats path: /products/{product_id}/stats operations: - name: getproductstats method: GET description: Get product 24hr stats outputRawFormat: json outputParameters: - name: result type: object value: $. - name: products-product_id-ticker path: /products/{product_id}/ticker operations: - name: getproductticker method: GET description: Get product ticker outputRawFormat: json outputParameters: - name: result type: object value: $. - name: products-product_id-trades path: /products/{product_id}/trades operations: - name: getproducttrades method: GET description: Get product trades outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: apikey key: CB-ACCESS-KEY value: '{{env.COINBASE_API_KEY}}' placement: header exposes: - type: rest namespace: exchange-products-rest port: 8080 description: REST adapter for Coinbase Exchange API — Products. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/products name: products description: REST surface for products. operations: - method: GET name: listproducts description: List products call: exchange-products.listproducts outputParameters: - type: object mapping: $. - path: /v1/products/{product-id} name: products-product-id description: REST surface for products-product_id. operations: - method: GET name: getproduct description: Get product call: exchange-products.getproduct outputParameters: - type: object mapping: $. - path: /v1/products/{product-id}/book name: products-product-id-book description: REST surface for products-product_id-book. operations: - method: GET name: getproductorderbook description: Get product order book call: exchange-products.getproductorderbook with: level: rest.level outputParameters: - type: object mapping: $. - path: /v1/products/{product-id}/candles name: products-product-id-candles description: REST surface for products-product_id-candles. operations: - method: GET name: getproductcandles description: Get product candles call: exchange-products.getproductcandles with: start: rest.start end: rest.end granularity: rest.granularity outputParameters: - type: object mapping: $. - path: /v1/products/{product-id}/stats name: products-product-id-stats description: REST surface for products-product_id-stats. operations: - method: GET name: getproductstats description: Get product 24hr stats call: exchange-products.getproductstats outputParameters: - type: object mapping: $. - path: /v1/products/{product-id}/ticker name: products-product-id-ticker description: REST surface for products-product_id-ticker. operations: - method: GET name: getproductticker description: Get product ticker call: exchange-products.getproductticker outputParameters: - type: object mapping: $. - path: /v1/products/{product-id}/trades name: products-product-id-trades description: REST surface for products-product_id-trades. operations: - method: GET name: getproducttrades description: Get product trades call: exchange-products.getproducttrades outputParameters: - type: object mapping: $. - type: mcp namespace: exchange-products-mcp port: 9090 transport: http description: MCP adapter for Coinbase Exchange API — Products. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-products description: List products hints: readOnly: true destructive: false idempotent: true call: exchange-products.listproducts outputParameters: - type: object mapping: $. - name: get-product description: Get product hints: readOnly: true destructive: false idempotent: true call: exchange-products.getproduct outputParameters: - type: object mapping: $. - name: get-product-order-book description: Get product order book hints: readOnly: true destructive: false idempotent: true call: exchange-products.getproductorderbook with: level: tools.level outputParameters: - type: object mapping: $. - name: get-product-candles description: Get product candles hints: readOnly: true destructive: false idempotent: true call: exchange-products.getproductcandles with: start: tools.start end: tools.end granularity: tools.granularity outputParameters: - type: object mapping: $. - name: get-product-24hr-stats description: Get product 24hr stats hints: readOnly: true destructive: false idempotent: true call: exchange-products.getproductstats outputParameters: - type: object mapping: $. - name: get-product-ticker description: Get product ticker hints: readOnly: true destructive: false idempotent: true call: exchange-products.getproductticker outputParameters: - type: object mapping: $. - name: get-product-trades description: Get product trades hints: readOnly: true destructive: false idempotent: true call: exchange-products.getproducttrades outputParameters: - type: object mapping: $.