Userpilot · Capability

Userpilot API

Userpilot API. 15 operations. Lead operation: Trigger an Export Job. Self-contained Naftiko capability covering one Userpilot business surface.

Run with Naftiko UserpilotUserpilot API

What You Can Do

POST
Post — Trigger an Export Job
/v1/api/v1/analytics/exports
GET
Get — Show Jobs
/v1/api/v1/analytics/exports/jobs
GET
Get — Show Job by Job ID
/v1/api/v1/analytics/exports/jobs/{job-id}
GET
Get — Get banners
/v1/api/v1/analytics/exports/lookups/banners
GET
Get — Get checklists (with tasks)
/v1/api/v1/analytics/exports/lookups/checklists
GET
Get — Get company properties
/v1/api/v1/analytics/exports/lookups/company-properties
GET
Get — Get embeds
/v1/api/v1/analytics/exports/lookups/embeds
GET
Get — Get trackable events' properties/attributes (paginated)
/v1/api/v1/analytics/exports/lookups/events-properties
GET
Get — Get features & events
/v1/api/v1/analytics/exports/lookups/features-events
GET
Get — Get flows (experiences)
/v1/api/v1/analytics/exports/lookups/flows
GET
Get — Get resource center modules
/v1/api/v1/analytics/exports/lookups/resource-center-modules
GET
Get — Get segments
/v1/api/v1/analytics/exports/lookups/segments
GET
Get — Get spotlights
/v1/api/v1/analytics/exports/lookups/spotlights
GET
Get — Get surveys (with modules)
/v1/api/v1/analytics/exports/lookups/surveys
GET
Get — Get user properties
/v1/api/v1/analytics/exports/lookups/user-properties

MCP Tools

trigger-export-job

Trigger an Export Job

show-jobs

Show Jobs

read-only idempotent
show-job-job-id

Show Job by Job ID

read-only idempotent
get-banners

Get banners

read-only idempotent
get-checklists-tasks

Get checklists (with tasks)

read-only idempotent
get-company-properties

Get company properties

read-only idempotent
get-embeds

Get embeds

read-only idempotent
get-trackable-events-properties-attributes

Get trackable events' properties/attributes (paginated)

read-only idempotent
get-features-events

Get features & events

read-only idempotent
get-flows-experiences

Get flows (experiences)

read-only idempotent
get-resource-center-modules

Get resource center modules

read-only idempotent
get-segments

Get segments

read-only idempotent
get-spotlights

Get spotlights

read-only idempotent
get-surveys-modules

Get surveys (with modules)

read-only idempotent
get-user-properties

Get user properties

read-only idempotent

Capability Spec

appex.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Userpilot API
  description: 'Userpilot API. 15 operations. Lead operation: Trigger an Export Job. Self-contained Naftiko capability covering
    one Userpilot business surface.'
  tags:
  - Userpilot
  - Userpilot API
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    USERPILOT_API_KEY: USERPILOT_API_KEY
capability:
  consumes:
  - type: http
    namespace: appex
    baseUri: https://appex.userpilot.io
    description: Userpilot API business capability. Self-contained, no shared references.
    resources:
    - name: api-v1-analytics-exports
      path: /api/v1/analytics/exports
      operations:
      - name: post
        method: POST
        description: Trigger an Export Job
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Content-Type
          in: header
          type: string
          description: The content type of the request body. Must be `application/json`.
        - name: Accept
          in: header
          type: string
          description: The content type of the response body. Must be `application/json`.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-v1-analytics-exports-jobs
      path: /api/v1/analytics/exports/jobs/
      operations:
      - name: get
        method: GET
        description: Show Jobs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Accept
          in: header
          type: string
    - name: api-v1-analytics-exports-jobs-job_id
      path: /api/v1/analytics/exports/jobs/{job_id}
      operations:
      - name: get
        method: GET
        description: Show Job by Job ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Accept
          in: header
          type: string
    - name: api-v1-analytics-exports-lookups-banners
      path: /api/v1/analytics/exports/lookups/banners
      operations:
      - name: get
        method: GET
        description: Get banners
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v1-analytics-exports-lookups-checklists
      path: /api/v1/analytics/exports/lookups/checklists
      operations:
      - name: get
        method: GET
        description: Get checklists (with tasks)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v1-analytics-exports-lookups-company_properties
      path: /api/v1/analytics/exports/lookups/company_properties
      operations:
      - name: get
        method: GET
        description: Get company properties
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v1-analytics-exports-lookups-embeds
      path: /api/v1/analytics/exports/lookups/embeds
      operations:
      - name: get
        method: GET
        description: Get embeds
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v1-analytics-exports-lookups-events_properties
      path: /api/v1/analytics/exports/lookups/events_properties
      operations:
      - name: get
        method: GET
        description: Get trackable events' properties/attributes (paginated)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: after_cursor
          in: query
          type: string
          description: Cursor for pagination. Use the value from the previous response's metadata.cursor.after.
    - name: api-v1-analytics-exports-lookups-features_events
      path: /api/v1/analytics/exports/lookups/features_events
      operations:
      - name: get
        method: GET
        description: Get features & events
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v1-analytics-exports-lookups-flows
      path: /api/v1/analytics/exports/lookups/flows
      operations:
      - name: get
        method: GET
        description: Get flows (experiences)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v1-analytics-exports-lookups-resource_center_modules
      path: /api/v1/analytics/exports/lookups/resource_center_modules
      operations:
      - name: get
        method: GET
        description: Get resource center modules
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v1-analytics-exports-lookups-segments
      path: /api/v1/analytics/exports/lookups/segments
      operations:
      - name: get
        method: GET
        description: Get segments
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v1-analytics-exports-lookups-spotlights
      path: /api/v1/analytics/exports/lookups/spotlights
      operations:
      - name: get
        method: GET
        description: Get spotlights
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v1-analytics-exports-lookups-surveys
      path: /api/v1/analytics/exports/lookups/surveys
      operations:
      - name: get
        method: GET
        description: Get surveys (with modules)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v1-analytics-exports-lookups-user_properties
      path: /api/v1/analytics/exports/lookups/user_properties
      operations:
      - name: get
        method: GET
        description: Get user properties
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    namespace: appex-rest
    port: 8080
    description: REST adapter for Userpilot API. One Spectral-compliant resource per consumed operation, prefixed with /v1.
    resources:
    - path: /v1/api/v1/analytics/exports
      name: api-v1-analytics-exports
      description: REST surface for api-v1-analytics-exports.
      operations:
      - method: POST
        name: post
        description: Trigger an Export Job
        call: appex.post
        with:
          Content-Type: rest.Content-Type
          Accept: rest.Accept
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/analytics/exports/jobs
      name: api-v1-analytics-exports-jobs
      description: REST surface for api-v1-analytics-exports-jobs.
      operations:
      - method: GET
        name: get
        description: Show Jobs
        call: appex.get
        with:
          Accept: rest.Accept
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/analytics/exports/jobs/{job-id}
      name: api-v1-analytics-exports-jobs-job-id
      description: REST surface for api-v1-analytics-exports-jobs-job_id.
      operations:
      - method: GET
        name: get
        description: Show Job by Job ID
        call: appex.get
        with:
          Accept: rest.Accept
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/analytics/exports/lookups/banners
      name: api-v1-analytics-exports-lookups-banners
      description: REST surface for api-v1-analytics-exports-lookups-banners.
      operations:
      - method: GET
        name: get
        description: Get banners
        call: appex.get
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/analytics/exports/lookups/checklists
      name: api-v1-analytics-exports-lookups-checklists
      description: REST surface for api-v1-analytics-exports-lookups-checklists.
      operations:
      - method: GET
        name: get
        description: Get checklists (with tasks)
        call: appex.get
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/analytics/exports/lookups/company-properties
      name: api-v1-analytics-exports-lookups-company-properties
      description: REST surface for api-v1-analytics-exports-lookups-company_properties.
      operations:
      - method: GET
        name: get
        description: Get company properties
        call: appex.get
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/analytics/exports/lookups/embeds
      name: api-v1-analytics-exports-lookups-embeds
      description: REST surface for api-v1-analytics-exports-lookups-embeds.
      operations:
      - method: GET
        name: get
        description: Get embeds
        call: appex.get
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/analytics/exports/lookups/events-properties
      name: api-v1-analytics-exports-lookups-events-properties
      description: REST surface for api-v1-analytics-exports-lookups-events_properties.
      operations:
      - method: GET
        name: get
        description: Get trackable events' properties/attributes (paginated)
        call: appex.get
        with:
          after_cursor: rest.after_cursor
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/analytics/exports/lookups/features-events
      name: api-v1-analytics-exports-lookups-features-events
      description: REST surface for api-v1-analytics-exports-lookups-features_events.
      operations:
      - method: GET
        name: get
        description: Get features & events
        call: appex.get
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/analytics/exports/lookups/flows
      name: api-v1-analytics-exports-lookups-flows
      description: REST surface for api-v1-analytics-exports-lookups-flows.
      operations:
      - method: GET
        name: get
        description: Get flows (experiences)
        call: appex.get
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/analytics/exports/lookups/resource-center-modules
      name: api-v1-analytics-exports-lookups-resource-center-modules
      description: REST surface for api-v1-analytics-exports-lookups-resource_center_modules.
      operations:
      - method: GET
        name: get
        description: Get resource center modules
        call: appex.get
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/analytics/exports/lookups/segments
      name: api-v1-analytics-exports-lookups-segments
      description: REST surface for api-v1-analytics-exports-lookups-segments.
      operations:
      - method: GET
        name: get
        description: Get segments
        call: appex.get
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/analytics/exports/lookups/spotlights
      name: api-v1-analytics-exports-lookups-spotlights
      description: REST surface for api-v1-analytics-exports-lookups-spotlights.
      operations:
      - method: GET
        name: get
        description: Get spotlights
        call: appex.get
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/analytics/exports/lookups/surveys
      name: api-v1-analytics-exports-lookups-surveys
      description: REST surface for api-v1-analytics-exports-lookups-surveys.
      operations:
      - method: GET
        name: get
        description: Get surveys (with modules)
        call: appex.get
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/analytics/exports/lookups/user-properties
      name: api-v1-analytics-exports-lookups-user-properties
      description: REST surface for api-v1-analytics-exports-lookups-user_properties.
      operations:
      - method: GET
        name: get
        description: Get user properties
        call: appex.get
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: appex-mcp
    port: 9090
    transport: http
    description: MCP adapter for Userpilot API. One tool per consumed operation, routed inline through this capability's consumes
      block.
    tools:
    - name: trigger-export-job
      description: Trigger an Export Job
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: appex.post
      with:
        Content-Type: tools.Content-Type
        Accept: tools.Accept
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: show-jobs
      description: Show Jobs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: appex.get
      with:
        Accept: tools.Accept
      outputParameters:
      - type: object
        mapping: $.
    - name: show-job-job-id
      description: Show Job by Job ID
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: appex.get
      with:
        Accept: tools.Accept
      outputParameters:
      - type: object
        mapping: $.
    - name: get-banners
      description: Get banners
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: appex.get
      outputParameters:
      - type: object
        mapping: $.
    - name: get-checklists-tasks
      description: Get checklists (with tasks)
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: appex.get
      outputParameters:
      - type: object
        mapping: $.
    - name: get-company-properties
      description: Get company properties
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: appex.get
      outputParameters:
      - type: object
        mapping: $.
    - name: get-embeds
      description: Get embeds
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: appex.get
      outputParameters:
      - type: object
        mapping: $.
    - name: get-trackable-events-properties-attributes
      description: Get trackable events' properties/attributes (paginated)
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: appex.get
      with:
        after_cursor: tools.after_cursor
      outputParameters:
      - type: object
        mapping: $.
    - name: get-features-events
      description: Get features & events
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: appex.get
      outputParameters:
      - type: object
        mapping: $.
    - name: get-flows-experiences
      description: Get flows (experiences)
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: appex.get
      outputParameters:
      - type: object
        mapping: $.
    - name: get-resource-center-modules
      description: Get resource center modules
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: appex.get
      outputParameters:
      - type: object
        mapping: $.
    - name: get-segments
      description: Get segments
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: appex.get
      outputParameters:
      - type: object
        mapping: $.
    - name: get-spotlights
      description: Get spotlights
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: appex.get
      outputParameters:
      - type: object
        mapping: $.
    - name: get-surveys-modules
      description: Get surveys (with modules)
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: appex.get
      outputParameters:
      - type: object
        mapping: $.
    - name: get-user-properties
      description: Get user properties
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: appex.get
      outputParameters:
      - type: object
        mapping: $.