naftiko: 1.0.0-alpha2 info: label: "Exa Monitors API \u2014 Monitors" description: "Exa Monitors API \u2014 Monitors. 16 operations. Lead operation: Create a Monitor. Self-contained Naftiko\ \ capability covering one Exa business surface." tags: - Exa - Monitors created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: EXA_API_KEY: EXA_API_KEY capability: consumes: - type: http namespace: monitors baseUri: https://api.exa.ai description: "Exa Monitors API \u2014 Monitors business capability. Self-contained, no shared references." resources: - name: monitors path: /monitors operations: - name: createmonitor method: POST description: Exa 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: listmonitors method: GET description: Exa List Monitors outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: status in: query type: string description: status required: false - name: cursor in: query type: string description: cursor required: false - name: limit in: query type: integer description: limit required: false - name: name in: query type: string description: name required: false - name: metadata in: query type: object description: 'Filter monitors by metadata key-value pairs (exact match, AND semantics). Use bracket notation: `metadata[key]=value`.' required: false - name: monitors-batch path: /monitors/batch operations: - name: batchmonitors method: POST description: Exa Batch Action on Monitors outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: monitors-id path: /monitors/{id} operations: - name: getmonitor method: GET description: Exa Get a Monitor outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The monitor ID required: true - name: updatemonitor method: PATCH description: Exa Update a Monitor outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The monitor ID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletemonitor method: DELETE description: Exa Delete a Monitor outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The monitor ID required: true - name: monitors-id-trigger path: /monitors/{id}/trigger operations: - name: triggermonitor method: POST description: Exa Trigger a Monitor outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The monitor ID required: true - name: monitors-id-runs path: /monitors/{id}/runs operations: - name: listruns method: GET description: Exa List Runs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The monitor ID required: true - name: cursor in: query type: string description: cursor required: false - name: limit in: query type: integer description: limit required: false - name: monitors-id-runs-runid path: /monitors/{id}/runs/{runId} operations: - name: getrun method: GET description: Exa Get a Run outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The monitor ID required: true - name: runId in: path type: string description: The run ID required: true - name: v0-monitors path: /v0/monitors operations: - name: monitorscreate method: POST description: Exa 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: monitorslist method: GET description: Exa List Monitors outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: cursor in: query type: string description: The cursor to paginate through the results required: false - name: limit in: query type: number description: The number of results to return required: false - name: websetId in: query type: string description: The id of the Webset to list monitors for required: false - name: v0-monitors-id path: /v0/monitors/{id} operations: - name: monitorsget method: GET description: Exa Get 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: monitorsupdate method: PATCH description: Exa Update 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: body in: body type: object description: Request body (JSON). required: true - name: monitorsdelete method: DELETE description: Exa Delete 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: v0-monitors-monitor-runs path: /v0/monitors/{monitor}/runs operations: - name: monitorsrunslist method: GET description: Exa List Monitor Runs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: monitor in: path type: string description: The id of the Monitor to list runs for required: true - name: v0-monitors-monitor-runs-id path: /v0/monitors/{monitor}/runs/{id} operations: - name: monitorsrunsget method: GET description: Exa Get Monitor Run outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: monitor in: path type: string description: The id of the Monitor to get the run for required: true - name: id in: path type: string description: id required: true authentication: type: apikey key: x-api-key value: '{{env.EXA_API_KEY}}' placement: header exposes: - type: rest namespace: monitors-rest port: 8080 description: "REST adapter for Exa Monitors API \u2014 Monitors. One Spectral-compliant resource per consumed operation,\ \ prefixed with /v1." resources: - path: /v1/monitors name: monitors description: REST surface for monitors. operations: - method: POST name: createmonitor description: Exa Create a Monitor call: monitors.createmonitor with: body: rest.body outputParameters: - type: object mapping: $. - method: GET name: listmonitors description: Exa List Monitors call: monitors.listmonitors with: status: rest.status cursor: rest.cursor limit: rest.limit name: rest.name metadata: rest.metadata outputParameters: - type: object mapping: $. - path: /v1/monitors/batch name: monitors-batch description: REST surface for monitors-batch. operations: - method: POST name: batchmonitors description: Exa Batch Action on Monitors call: monitors.batchmonitors with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/monitors/{id} name: monitors-id description: REST surface for monitors-id. operations: - method: GET name: getmonitor description: Exa Get a Monitor call: monitors.getmonitor with: id: rest.id outputParameters: - type: object mapping: $. - method: PATCH name: updatemonitor description: Exa Update a Monitor call: monitors.updatemonitor with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletemonitor description: Exa Delete a Monitor call: monitors.deletemonitor with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/monitors/{id}/trigger name: monitors-id-trigger description: REST surface for monitors-id-trigger. operations: - method: POST name: triggermonitor description: Exa Trigger a Monitor call: monitors.triggermonitor with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/monitors/{id}/runs name: monitors-id-runs description: REST surface for monitors-id-runs. operations: - method: GET name: listruns description: Exa List Runs call: monitors.listruns with: id: rest.id cursor: rest.cursor limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/monitors/{id}/runs/{runId} name: monitors-id-runs-runid description: REST surface for monitors-id-runs-runid. operations: - method: GET name: getrun description: Exa Get a Run call: monitors.getrun with: id: rest.id runId: rest.runId outputParameters: - type: object mapping: $. - path: /v1/v0/monitors name: v0-monitors description: REST surface for v0-monitors. operations: - method: POST name: monitorscreate description: Exa Create a Monitor call: monitors.monitorscreate with: body: rest.body outputParameters: - type: object mapping: $. - method: GET name: monitorslist description: Exa List Monitors call: monitors.monitorslist with: cursor: rest.cursor limit: rest.limit websetId: rest.websetId outputParameters: - type: object mapping: $. - path: /v1/v0/monitors/{id} name: v0-monitors-id description: REST surface for v0-monitors-id. operations: - method: GET name: monitorsget description: Exa Get Monitor call: monitors.monitorsget with: id: rest.id outputParameters: - type: object mapping: $. - method: PATCH name: monitorsupdate description: Exa Update Monitor call: monitors.monitorsupdate with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: monitorsdelete description: Exa Delete Monitor call: monitors.monitorsdelete with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/v0/monitors/{monitor}/runs name: v0-monitors-monitor-runs description: REST surface for v0-monitors-monitor-runs. operations: - method: GET name: monitorsrunslist description: Exa List Monitor Runs call: monitors.monitorsrunslist with: monitor: rest.monitor outputParameters: - type: object mapping: $. - path: /v1/v0/monitors/{monitor}/runs/{id} name: v0-monitors-monitor-runs-id description: REST surface for v0-monitors-monitor-runs-id. operations: - method: GET name: monitorsrunsget description: Exa Get Monitor Run call: monitors.monitorsrunsget with: monitor: rest.monitor id: rest.id outputParameters: - type: object mapping: $. - type: mcp namespace: monitors-mcp port: 9090 transport: http description: "MCP adapter for Exa Monitors API \u2014 Monitors. One tool per consumed operation, routed inline through\ \ this capability's consumes block." tools: - name: exa-create-a-monitor description: Exa Create a Monitor hints: readOnly: false destructive: false idempotent: false call: monitors.createmonitor with: body: tools.body outputParameters: - type: object mapping: $. - name: exa-list-monitors description: Exa List Monitors hints: readOnly: true destructive: false idempotent: true call: monitors.listmonitors with: status: tools.status cursor: tools.cursor limit: tools.limit name: tools.name metadata: tools.metadata outputParameters: - type: object mapping: $. - name: exa-batch-action-on-monitors description: Exa Batch Action on Monitors hints: readOnly: false destructive: false idempotent: false call: monitors.batchmonitors with: body: tools.body outputParameters: - type: object mapping: $. - name: exa-get-a-monitor description: Exa Get a Monitor hints: readOnly: true destructive: false idempotent: true call: monitors.getmonitor with: id: tools.id outputParameters: - type: object mapping: $. - name: exa-update-a-monitor description: Exa Update a Monitor hints: readOnly: false destructive: true idempotent: false call: monitors.updatemonitor with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: exa-delete-a-monitor description: Exa Delete a Monitor hints: readOnly: false destructive: true idempotent: true call: monitors.deletemonitor with: id: tools.id outputParameters: - type: object mapping: $. - name: exa-trigger-a-monitor description: Exa Trigger a Monitor hints: readOnly: false destructive: false idempotent: false call: monitors.triggermonitor with: id: tools.id outputParameters: - type: object mapping: $. - name: exa-list-runs description: Exa List Runs hints: readOnly: true destructive: false idempotent: true call: monitors.listruns with: id: tools.id cursor: tools.cursor limit: tools.limit outputParameters: - type: object mapping: $. - name: exa-get-a-run description: Exa Get a Run hints: readOnly: true destructive: false idempotent: true call: monitors.getrun with: id: tools.id runId: tools.runId outputParameters: - type: object mapping: $. - name: exa-create-a-monitor description: Exa Create a Monitor hints: readOnly: false destructive: false idempotent: false call: monitors.monitorscreate with: body: tools.body outputParameters: - type: object mapping: $. - name: exa-list-monitors description: Exa List Monitors hints: readOnly: true destructive: false idempotent: true call: monitors.monitorslist with: cursor: tools.cursor limit: tools.limit websetId: tools.websetId outputParameters: - type: object mapping: $. - name: exa-get-monitor description: Exa Get Monitor hints: readOnly: true destructive: false idempotent: true call: monitors.monitorsget with: id: tools.id outputParameters: - type: object mapping: $. - name: exa-update-monitor description: Exa Update Monitor hints: readOnly: false destructive: true idempotent: false call: monitors.monitorsupdate with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: exa-delete-monitor description: Exa Delete Monitor hints: readOnly: false destructive: true idempotent: true call: monitors.monitorsdelete with: id: tools.id outputParameters: - type: object mapping: $. - name: exa-list-monitor-runs description: Exa List Monitor Runs hints: readOnly: true destructive: false idempotent: true call: monitors.monitorsrunslist with: monitor: tools.monitor outputParameters: - type: object mapping: $. - name: exa-get-monitor-run description: Exa Get Monitor Run hints: readOnly: true destructive: false idempotent: true call: monitors.monitorsrunsget with: monitor: tools.monitor id: tools.id outputParameters: - type: object mapping: $.