naftiko: 1.0.0-alpha2 info: label: Kibana APIs — synthetics description: 'Kibana APIs — synthetics. 18 operations. Lead operation: Trigger an on-demand test run for a monitor. Self-contained Naftiko capability covering one Kibana business surface.' tags: - Kibana - synthetics created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: KIBANA_API_KEY: KIBANA_API_KEY capability: consumes: - type: http namespace: kibana-synthetics baseUri: https://{kibana_url} description: Kibana APIs — synthetics business capability. Self-contained, no shared references. resources: - name: api-synthetics-monitor-test-monitorId path: /api/synthetics/monitor/test/{monitorId} operations: - name: postsyntheticsmonitortest method: POST description: Trigger an on-demand test run for a monitor outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: monitorId in: path type: string description: The ID (config_id) of the monitor to test. required: true - name: api-synthetics-monitors path: /api/synthetics/monitors operations: - name: getsyntheticmonitors method: GET description: Get monitors outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: filter in: query type: string description: Additional filtering criteria. - name: locations in: query type: string description: The locations to filter by. - name: monitorTypes in: query type: string description: The monitor types to filter. - name: page in: query type: integer description: The page number for paginated results. - name: per_page in: query type: integer description: The number of items to return per page. - name: projects in: query type: string description: The projects to filter by. - name: query in: query type: string description: A free-text query string. - name: schedules in: query type: string description: The schedules to filter by. - name: sortField in: query type: string description: The field to sort the results by. - name: sortOrder in: query type: string description: The sort order. - name: status in: query type: string description: The status to filter by. - name: tags in: query type: string description: Tags to filter monitors. - name: useLogicalAndFor in: query type: string description: Specifies whether to apply logical AND filtering for specific fields. Accepts either a string with values "tags" or "locations" or an array containing both. - name: postsyntheticmonitors method: POST description: Create a monitor outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-synthetics-monitors-_bulk_delete path: /api/synthetics/monitors/_bulk_delete operations: - name: deletesyntheticmonitors method: POST description: Delete monitors outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-synthetics-monitors-id path: /api/synthetics/monitors/{id} operations: - name: deletesyntheticmonitor method: DELETE description: Delete a monitor outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The identifier for the monitor that you want to delete. required: true - name: getsyntheticmonitor method: GET description: Get a monitor outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The ID of the monitor. required: true - name: putsyntheticmonitor method: PUT description: Update a monitor outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The identifier for the monitor that you want to update. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-synthetics-params path: /api/synthetics/params operations: - name: getparameters method: GET description: Get parameters outputRawFormat: json outputParameters: - name: result type: object value: $. - name: postparameters method: POST description: Add parameters outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-synthetics-params-_bulk_delete path: /api/synthetics/params/_bulk_delete operations: - name: deleteparameters method: POST description: Delete parameters outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-synthetics-params-id path: /api/synthetics/params/{id} operations: - name: deleteparameter method: DELETE description: Delete a parameter outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The ID for the parameter to delete. required: true - name: getparameter method: GET description: Get a parameter outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The unique identifier for the parameter. required: true - name: putparameter method: PUT description: Update a parameter outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The unique identifier for the parameter. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-synthetics-private_locations path: /api/synthetics/private_locations operations: - name: getprivatelocations method: GET description: Get private locations outputRawFormat: json outputParameters: - name: result type: object value: $. - name: postprivatelocation method: POST description: Create a private location outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-synthetics-private_locations-id path: /api/synthetics/private_locations/{id} operations: - name: deleteprivatelocation method: DELETE description: Delete a private location outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The unique identifier of the private location to be deleted. required: true - name: getprivatelocation method: GET description: Get a private location outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: A private location identifier or label. required: true - name: putprivatelocation method: PUT description: Update a private location outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The unique identifier of the private location to be updated. required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: apikey key: Authorization value: '{{env.KIBANA_API_KEY}}' placement: header exposes: - type: rest namespace: kibana-synthetics-rest port: 8080 description: REST adapter for Kibana APIs — synthetics. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/synthetics/monitor/test/{monitorid} name: api-synthetics-monitor-test-monitorid description: REST surface for api-synthetics-monitor-test-monitorId. operations: - method: POST name: postsyntheticsmonitortest description: Trigger an on-demand test run for a monitor call: kibana-synthetics.postsyntheticsmonitortest with: monitorId: rest.monitorId outputParameters: - type: object mapping: $. - path: /v1/api/synthetics/monitors name: api-synthetics-monitors description: REST surface for api-synthetics-monitors. operations: - method: GET name: getsyntheticmonitors description: Get monitors call: kibana-synthetics.getsyntheticmonitors with: filter: rest.filter locations: rest.locations monitorTypes: rest.monitorTypes page: rest.page per_page: rest.per_page projects: rest.projects query: rest.query schedules: rest.schedules sortField: rest.sortField sortOrder: rest.sortOrder status: rest.status tags: rest.tags useLogicalAndFor: rest.useLogicalAndFor outputParameters: - type: object mapping: $. - method: POST name: postsyntheticmonitors description: Create a monitor call: kibana-synthetics.postsyntheticmonitors with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/synthetics/monitors/bulk-delete name: api-synthetics-monitors-bulk-delete description: REST surface for api-synthetics-monitors-_bulk_delete. operations: - method: POST name: deletesyntheticmonitors description: Delete monitors call: kibana-synthetics.deletesyntheticmonitors with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/synthetics/monitors/{id} name: api-synthetics-monitors-id description: REST surface for api-synthetics-monitors-id. operations: - method: DELETE name: deletesyntheticmonitor description: Delete a monitor call: kibana-synthetics.deletesyntheticmonitor with: id: rest.id outputParameters: - type: object mapping: $. - method: GET name: getsyntheticmonitor description: Get a monitor call: kibana-synthetics.getsyntheticmonitor with: id: rest.id outputParameters: - type: object mapping: $. - method: PUT name: putsyntheticmonitor description: Update a monitor call: kibana-synthetics.putsyntheticmonitor with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/synthetics/params name: api-synthetics-params description: REST surface for api-synthetics-params. operations: - method: GET name: getparameters description: Get parameters call: kibana-synthetics.getparameters outputParameters: - type: object mapping: $. - method: POST name: postparameters description: Add parameters call: kibana-synthetics.postparameters with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/synthetics/params/bulk-delete name: api-synthetics-params-bulk-delete description: REST surface for api-synthetics-params-_bulk_delete. operations: - method: POST name: deleteparameters description: Delete parameters call: kibana-synthetics.deleteparameters with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/synthetics/params/{id} name: api-synthetics-params-id description: REST surface for api-synthetics-params-id. operations: - method: DELETE name: deleteparameter description: Delete a parameter call: kibana-synthetics.deleteparameter with: id: rest.id outputParameters: - type: object mapping: $. - method: GET name: getparameter description: Get a parameter call: kibana-synthetics.getparameter with: id: rest.id outputParameters: - type: object mapping: $. - method: PUT name: putparameter description: Update a parameter call: kibana-synthetics.putparameter with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/synthetics/private-locations name: api-synthetics-private-locations description: REST surface for api-synthetics-private_locations. operations: - method: GET name: getprivatelocations description: Get private locations call: kibana-synthetics.getprivatelocations outputParameters: - type: object mapping: $. - method: POST name: postprivatelocation description: Create a private location call: kibana-synthetics.postprivatelocation with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/synthetics/private-locations/{id} name: api-synthetics-private-locations-id description: REST surface for api-synthetics-private_locations-id. operations: - method: DELETE name: deleteprivatelocation description: Delete a private location call: kibana-synthetics.deleteprivatelocation with: id: rest.id outputParameters: - type: object mapping: $. - method: GET name: getprivatelocation description: Get a private location call: kibana-synthetics.getprivatelocation with: id: rest.id outputParameters: - type: object mapping: $. - method: PUT name: putprivatelocation description: Update a private location call: kibana-synthetics.putprivatelocation with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: kibana-synthetics-mcp port: 9090 transport: http description: MCP adapter for Kibana APIs — synthetics. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: trigger-demand-test-run-monitor description: Trigger an on-demand test run for a monitor hints: readOnly: true destructive: false idempotent: false call: kibana-synthetics.postsyntheticsmonitortest with: monitorId: tools.monitorId outputParameters: - type: object mapping: $. - name: get-monitors description: Get monitors hints: readOnly: true destructive: false idempotent: true call: kibana-synthetics.getsyntheticmonitors with: filter: tools.filter locations: tools.locations monitorTypes: tools.monitorTypes page: tools.page per_page: tools.per_page projects: tools.projects query: tools.query schedules: tools.schedules sortField: tools.sortField sortOrder: tools.sortOrder status: tools.status tags: tools.tags useLogicalAndFor: tools.useLogicalAndFor outputParameters: - type: object mapping: $. - name: create-monitor description: Create a monitor hints: readOnly: false destructive: false idempotent: false call: kibana-synthetics.postsyntheticmonitors with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-monitors description: Delete monitors hints: readOnly: false destructive: false idempotent: false call: kibana-synthetics.deletesyntheticmonitors with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-monitor description: Delete a monitor hints: readOnly: false destructive: true idempotent: true call: kibana-synthetics.deletesyntheticmonitor with: id: tools.id outputParameters: - type: object mapping: $. - name: get-monitor description: Get a monitor hints: readOnly: true destructive: false idempotent: true call: kibana-synthetics.getsyntheticmonitor with: id: tools.id outputParameters: - type: object mapping: $. - name: update-monitor description: Update a monitor hints: readOnly: false destructive: false idempotent: true call: kibana-synthetics.putsyntheticmonitor with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: get-parameters description: Get parameters hints: readOnly: true destructive: false idempotent: true call: kibana-synthetics.getparameters outputParameters: - type: object mapping: $. - name: add-parameters description: Add parameters hints: readOnly: false destructive: false idempotent: false call: kibana-synthetics.postparameters with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-parameters description: Delete parameters hints: readOnly: false destructive: false idempotent: false call: kibana-synthetics.deleteparameters with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-parameter description: Delete a parameter hints: readOnly: false destructive: true idempotent: true call: kibana-synthetics.deleteparameter with: id: tools.id outputParameters: - type: object mapping: $. - name: get-parameter description: Get a parameter hints: readOnly: true destructive: false idempotent: true call: kibana-synthetics.getparameter with: id: tools.id outputParameters: - type: object mapping: $. - name: update-parameter description: Update a parameter hints: readOnly: false destructive: false idempotent: true call: kibana-synthetics.putparameter with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: get-private-locations description: Get private locations hints: readOnly: true destructive: false idempotent: true call: kibana-synthetics.getprivatelocations outputParameters: - type: object mapping: $. - name: create-private-location description: Create a private location hints: readOnly: false destructive: false idempotent: false call: kibana-synthetics.postprivatelocation with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-private-location description: Delete a private location hints: readOnly: false destructive: true idempotent: true call: kibana-synthetics.deleteprivatelocation with: id: tools.id outputParameters: - type: object mapping: $. - name: get-private-location description: Get a private location hints: readOnly: true destructive: false idempotent: true call: kibana-synthetics.getprivatelocation with: id: tools.id outputParameters: - type: object mapping: $. - name: update-private-location description: Update a private location hints: readOnly: false destructive: false idempotent: true call: kibana-synthetics.putprivatelocation with: id: tools.id body: tools.body outputParameters: - type: object mapping: $.