Keen · Capability

Keen Query API — Queries

Keen Query API — Queries. 11 operations. Lead operation: Keen Run average query. Self-contained Naftiko capability covering one Keen business surface.

Run with Naftiko KeenQueries

What You Can Do

GET
Queryaverage — Keen Run average query
/v1/projects/{projectid}/queries/average
GET
Querycount — Keen Run count query
/v1/projects/{projectid}/queries/count
GET
Querycountunique — Keen Run count_unique query
/v1/projects/{projectid}/queries/count-unique
POST
Queryfunnel — Keen Run funnel query
/v1/projects/{projectid}/queries/funnel
GET
Querymaximum — Keen Run maximum query
/v1/projects/{projectid}/queries/maximum
GET
Querymedian — Keen Run median query
/v1/projects/{projectid}/queries/median
GET
Queryminimum — Keen Run minimum query
/v1/projects/{projectid}/queries/minimum
POST
Querymultianalysis — Keen Run multi_analysis query
/v1/projects/{projectid}/queries/multi-analysis
GET
Querypercentile — Keen Run percentile query
/v1/projects/{projectid}/queries/percentile
GET
Queryselectunique — Keen Run select_unique query
/v1/projects/{projectid}/queries/select-unique
GET
Querysum — Keen Run sum query
/v1/projects/{projectid}/queries/sum

MCP Tools

keen-run-average-query

Keen Run average query

read-only idempotent
keen-run-count-query

Keen Run count query

read-only idempotent
keen-run-count-unique-query

Keen Run count_unique query

read-only idempotent
keen-run-funnel-query

Keen Run funnel query

read-only
keen-run-maximum-query

Keen Run maximum query

read-only idempotent
keen-run-median-query

Keen Run median query

read-only idempotent
keen-run-minimum-query

Keen Run minimum query

read-only idempotent
keen-run-multi-analysis-query

Keen Run multi_analysis query

read-only
keen-run-percentile-query

Keen Run percentile query

read-only idempotent
keen-run-select-unique-query

Keen Run select_unique query

read-only idempotent
keen-run-sum-query

Keen Run sum query

read-only idempotent

Capability Spec

query-queries.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Keen Query API — Queries
  description: 'Keen Query API — Queries. 11 operations. Lead operation: Keen Run average query. Self-contained Naftiko capability
    covering one Keen business surface.'
  tags:
  - Keen
  - Queries
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    KEEN_API_KEY: KEEN_API_KEY
capability:
  consumes:
  - type: http
    namespace: query-queries
    baseUri: https://api.keen.io/3.0
    description: Keen Query API — Queries business capability. Self-contained, no shared references.
    resources:
    - name: projects-projectId-queries-average
      path: /projects/{projectId}/queries/average
      operations:
      - name: queryaverage
        method: GET
        description: Keen Run average query
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-projectId-queries-count
      path: /projects/{projectId}/queries/count
      operations:
      - name: querycount
        method: GET
        description: Keen Run count query
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-projectId-queries-count_unique
      path: /projects/{projectId}/queries/count_unique
      operations:
      - name: querycountunique
        method: GET
        description: Keen Run count_unique query
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-projectId-queries-funnel
      path: /projects/{projectId}/queries/funnel
      operations:
      - name: queryfunnel
        method: POST
        description: Keen Run funnel query
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: projects-projectId-queries-maximum
      path: /projects/{projectId}/queries/maximum
      operations:
      - name: querymaximum
        method: GET
        description: Keen Run maximum query
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-projectId-queries-median
      path: /projects/{projectId}/queries/median
      operations:
      - name: querymedian
        method: GET
        description: Keen Run median query
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-projectId-queries-minimum
      path: /projects/{projectId}/queries/minimum
      operations:
      - name: queryminimum
        method: GET
        description: Keen Run minimum query
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-projectId-queries-multi_analysis
      path: /projects/{projectId}/queries/multi_analysis
      operations:
      - name: querymultianalysis
        method: POST
        description: Keen Run multi_analysis query
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: projects-projectId-queries-percentile
      path: /projects/{projectId}/queries/percentile
      operations:
      - name: querypercentile
        method: GET
        description: Keen Run percentile query
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: percentile
          in: query
          type: number
          description: Percentile to compute (e.g., 95 for the 95th percentile).
          required: true
    - name: projects-projectId-queries-select_unique
      path: /projects/{projectId}/queries/select_unique
      operations:
      - name: queryselectunique
        method: GET
        description: Keen Run select_unique query
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-projectId-queries-sum
      path: /projects/{projectId}/queries/sum
      operations:
      - name: querysum
        method: GET
        description: Keen Run sum query
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: apikey
      key: Authorization
      value: '{{env.KEEN_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: query-queries-rest
    port: 8080
    description: REST adapter for Keen Query API — Queries. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/projects/{projectid}/queries/average
      name: projects-projectid-queries-average
      description: REST surface for projects-projectId-queries-average.
      operations:
      - method: GET
        name: queryaverage
        description: Keen Run average query
        call: query-queries.queryaverage
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{projectid}/queries/count
      name: projects-projectid-queries-count
      description: REST surface for projects-projectId-queries-count.
      operations:
      - method: GET
        name: querycount
        description: Keen Run count query
        call: query-queries.querycount
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{projectid}/queries/count-unique
      name: projects-projectid-queries-count-unique
      description: REST surface for projects-projectId-queries-count_unique.
      operations:
      - method: GET
        name: querycountunique
        description: Keen Run count_unique query
        call: query-queries.querycountunique
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{projectid}/queries/funnel
      name: projects-projectid-queries-funnel
      description: REST surface for projects-projectId-queries-funnel.
      operations:
      - method: POST
        name: queryfunnel
        description: Keen Run funnel query
        call: query-queries.queryfunnel
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{projectid}/queries/maximum
      name: projects-projectid-queries-maximum
      description: REST surface for projects-projectId-queries-maximum.
      operations:
      - method: GET
        name: querymaximum
        description: Keen Run maximum query
        call: query-queries.querymaximum
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{projectid}/queries/median
      name: projects-projectid-queries-median
      description: REST surface for projects-projectId-queries-median.
      operations:
      - method: GET
        name: querymedian
        description: Keen Run median query
        call: query-queries.querymedian
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{projectid}/queries/minimum
      name: projects-projectid-queries-minimum
      description: REST surface for projects-projectId-queries-minimum.
      operations:
      - method: GET
        name: queryminimum
        description: Keen Run minimum query
        call: query-queries.queryminimum
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{projectid}/queries/multi-analysis
      name: projects-projectid-queries-multi-analysis
      description: REST surface for projects-projectId-queries-multi_analysis.
      operations:
      - method: POST
        name: querymultianalysis
        description: Keen Run multi_analysis query
        call: query-queries.querymultianalysis
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{projectid}/queries/percentile
      name: projects-projectid-queries-percentile
      description: REST surface for projects-projectId-queries-percentile.
      operations:
      - method: GET
        name: querypercentile
        description: Keen Run percentile query
        call: query-queries.querypercentile
        with:
          percentile: rest.percentile
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{projectid}/queries/select-unique
      name: projects-projectid-queries-select-unique
      description: REST surface for projects-projectId-queries-select_unique.
      operations:
      - method: GET
        name: queryselectunique
        description: Keen Run select_unique query
        call: query-queries.queryselectunique
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{projectid}/queries/sum
      name: projects-projectid-queries-sum
      description: REST surface for projects-projectId-queries-sum.
      operations:
      - method: GET
        name: querysum
        description: Keen Run sum query
        call: query-queries.querysum
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: query-queries-mcp
    port: 9090
    transport: http
    description: MCP adapter for Keen Query API — Queries. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: keen-run-average-query
      description: Keen Run average query
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: query-queries.queryaverage
      outputParameters:
      - type: object
        mapping: $.
    - name: keen-run-count-query
      description: Keen Run count query
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: query-queries.querycount
      outputParameters:
      - type: object
        mapping: $.
    - name: keen-run-count-unique-query
      description: Keen Run count_unique query
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: query-queries.querycountunique
      outputParameters:
      - type: object
        mapping: $.
    - name: keen-run-funnel-query
      description: Keen Run funnel query
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: query-queries.queryfunnel
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: keen-run-maximum-query
      description: Keen Run maximum query
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: query-queries.querymaximum
      outputParameters:
      - type: object
        mapping: $.
    - name: keen-run-median-query
      description: Keen Run median query
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: query-queries.querymedian
      outputParameters:
      - type: object
        mapping: $.
    - name: keen-run-minimum-query
      description: Keen Run minimum query
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: query-queries.queryminimum
      outputParameters:
      - type: object
        mapping: $.
    - name: keen-run-multi-analysis-query
      description: Keen Run multi_analysis query
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: query-queries.querymultianalysis
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: keen-run-percentile-query
      description: Keen Run percentile query
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: query-queries.querypercentile
      with:
        percentile: tools.percentile
      outputParameters:
      - type: object
        mapping: $.
    - name: keen-run-select-unique-query
      description: Keen Run select_unique query
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: query-queries.queryselectunique
      outputParameters:
      - type: object
        mapping: $.
    - name: keen-run-sum-query
      description: Keen Run sum query
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: query-queries.querysum
      outputParameters:
      - type: object
        mapping: $.