naftiko: 1.0.0-alpha2 info: label: Umami Analytics API — Website Statistics description: 'Umami Analytics API — Website Statistics. 4 operations. Lead operation: Umami Active Visitors. Self-contained Naftiko capability covering one Umami business surface.' tags: - Umami - Website Statistics created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: UMAMI_API_KEY: UMAMI_API_KEY capability: consumes: - type: http namespace: umami-website-statistics baseUri: https://api.umami.is description: Umami Analytics API — Website Statistics business capability. Self-contained, no shared references. resources: - name: api-websites-websiteId-active path: /api/websites/{websiteId}/active operations: - name: getactivevisitors method: GET description: Umami Active Visitors outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: websiteId in: path type: string description: Website identifier required: true - name: api-websites-websiteId-metrics path: /api/websites/{websiteId}/metrics operations: - name: getwebsitemetrics method: GET description: Umami Website Metrics outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: websiteId in: path type: string description: Website identifier required: true - name: startAt in: query type: integer description: Start timestamp in milliseconds required: true - name: endAt in: query type: integer description: End timestamp in milliseconds required: true - name: type in: query type: string description: Metric dimension to retrieve required: true - name: limit in: query type: integer description: Maximum number of results - name: api-websites-websiteId-pageviews path: /api/websites/{websiteId}/pageviews operations: - name: getwebsitepageviews method: GET description: Umami Website Pageviews outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: websiteId in: path type: string description: Website identifier required: true - name: startAt in: query type: integer description: Start timestamp in milliseconds required: true - name: endAt in: query type: integer description: End timestamp in milliseconds required: true - name: unit in: query type: string description: Time bucket unit required: true - name: timezone in: query type: string description: IANA timezone name required: true - name: api-websites-websiteId-stats path: /api/websites/{websiteId}/stats operations: - name: getwebsitestats method: GET description: Umami Website Stats outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: websiteId in: path type: string description: Website identifier required: true - name: startAt in: query type: integer description: Start timestamp in milliseconds required: true - name: endAt in: query type: integer description: End timestamp in milliseconds required: true authentication: type: bearer token: '{{env.UMAMI_API_KEY}}' exposes: - type: rest namespace: umami-website-statistics-rest port: 8080 description: REST adapter for Umami Analytics API — Website Statistics. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/websites/{websiteid}/active name: api-websites-websiteid-active description: REST surface for api-websites-websiteId-active. operations: - method: GET name: getactivevisitors description: Umami Active Visitors call: umami-website-statistics.getactivevisitors with: websiteId: rest.websiteId outputParameters: - type: object mapping: $. - path: /v1/api/websites/{websiteid}/metrics name: api-websites-websiteid-metrics description: REST surface for api-websites-websiteId-metrics. operations: - method: GET name: getwebsitemetrics description: Umami Website Metrics call: umami-website-statistics.getwebsitemetrics with: websiteId: rest.websiteId startAt: rest.startAt endAt: rest.endAt type: rest.type limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/api/websites/{websiteid}/pageviews name: api-websites-websiteid-pageviews description: REST surface for api-websites-websiteId-pageviews. operations: - method: GET name: getwebsitepageviews description: Umami Website Pageviews call: umami-website-statistics.getwebsitepageviews with: websiteId: rest.websiteId startAt: rest.startAt endAt: rest.endAt unit: rest.unit timezone: rest.timezone outputParameters: - type: object mapping: $. - path: /v1/api/websites/{websiteid}/stats name: api-websites-websiteid-stats description: REST surface for api-websites-websiteId-stats. operations: - method: GET name: getwebsitestats description: Umami Website Stats call: umami-website-statistics.getwebsitestats with: websiteId: rest.websiteId startAt: rest.startAt endAt: rest.endAt outputParameters: - type: object mapping: $. - type: mcp namespace: umami-website-statistics-mcp port: 9090 transport: http description: MCP adapter for Umami Analytics API — Website Statistics. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: umami-active-visitors description: Umami Active Visitors hints: readOnly: true destructive: false idempotent: true call: umami-website-statistics.getactivevisitors with: websiteId: tools.websiteId outputParameters: - type: object mapping: $. - name: umami-website-metrics description: Umami Website Metrics hints: readOnly: true destructive: false idempotent: true call: umami-website-statistics.getwebsitemetrics with: websiteId: tools.websiteId startAt: tools.startAt endAt: tools.endAt type: tools.type limit: tools.limit outputParameters: - type: object mapping: $. - name: umami-website-pageviews description: Umami Website Pageviews hints: readOnly: true destructive: false idempotent: true call: umami-website-statistics.getwebsitepageviews with: websiteId: tools.websiteId startAt: tools.startAt endAt: tools.endAt unit: tools.unit timezone: tools.timezone outputParameters: - type: object mapping: $. - name: umami-website-stats description: Umami Website Stats hints: readOnly: true destructive: false idempotent: true call: umami-website-statistics.getwebsitestats with: websiteId: tools.websiteId startAt: tools.startAt endAt: tools.endAt outputParameters: - type: object mapping: $.