naftiko: 1.0.0-alpha2 info: label: Gremlin API — webhooks description: 'Gremlin API — webhooks. 5 operations. Lead operation: Create a webhook. Self-contained Naftiko capability covering one Gremlin business surface.' tags: - Gremlin - webhooks created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GREMLIN_API_KEY: GREMLIN_API_KEY capability: consumes: - type: http namespace: gremlin-webhooks baseUri: https://api.gremlin.com/v1 description: Gremlin API — webhooks business capability. Self-contained, no shared references. resources: - name: webhooks path: /webhooks operations: - name: getwebhooks method: GET description: Requires the privilege [`WEBHOOKS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: state in: query type: string description: Filter webhooks by state - name: teamId in: query type: string description: Required when using company session token. required: true - name: createwebhook1 method: POST description: Create a webhook outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: teamId in: query type: string description: Required when using company session token. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: webhooks-guid path: /webhooks/{guid} operations: - name: getwebhookbyid method: GET description: Retrieve webhook by id outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: guid in: path type: string description: This value represents the globally unique identifier of the record to fetch. required: true - name: teamId in: query type: string description: Required when using company session token. required: true - name: updatewebhook method: PUT description: Update a webhook by id outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: guid in: path type: string description: This value represents the globally unique identifier of the record to fetch. required: true - name: teamId in: query type: string description: Required when using company session token. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletewebhook method: DELETE description: Delete a Webhook outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: guid in: path type: string description: This value represents the globally unique identifier of the record to fetch. required: true - name: teamId in: query type: string description: Required when using company session token. required: true exposes: - type: rest namespace: gremlin-webhooks-rest port: 8080 description: REST adapter for Gremlin API — webhooks. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/webhooks name: webhooks description: REST surface for webhooks. operations: - method: GET name: getwebhooks description: Requires the privilege [`WEBHOOKS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges) call: gremlin-webhooks.getwebhooks with: state: rest.state teamId: rest.teamId outputParameters: - type: object mapping: $. - method: POST name: createwebhook1 description: Create a webhook call: gremlin-webhooks.createwebhook1 with: teamId: rest.teamId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/webhooks/{guid} name: webhooks-guid description: REST surface for webhooks-guid. operations: - method: GET name: getwebhookbyid description: Retrieve webhook by id call: gremlin-webhooks.getwebhookbyid with: guid: rest.guid teamId: rest.teamId outputParameters: - type: object mapping: $. - method: PUT name: updatewebhook description: Update a webhook by id call: gremlin-webhooks.updatewebhook with: guid: rest.guid teamId: rest.teamId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletewebhook description: Delete a Webhook call: gremlin-webhooks.deletewebhook with: guid: rest.guid teamId: rest.teamId outputParameters: - type: object mapping: $. - type: mcp namespace: gremlin-webhooks-mcp port: 9090 transport: http description: MCP adapter for Gremlin API — webhooks. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: requires-privilege-webhooks-read-https-www-gremlin-com description: Requires the privilege [`WEBHOOKS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges) hints: readOnly: true destructive: false idempotent: true call: gremlin-webhooks.getwebhooks with: state: tools.state teamId: tools.teamId outputParameters: - type: object mapping: $. - name: create-webhook description: Create a webhook hints: readOnly: false destructive: false idempotent: false call: gremlin-webhooks.createwebhook1 with: teamId: tools.teamId body: tools.body outputParameters: - type: object mapping: $. - name: retrieve-webhook-id description: Retrieve webhook by id hints: readOnly: true destructive: false idempotent: true call: gremlin-webhooks.getwebhookbyid with: guid: tools.guid teamId: tools.teamId outputParameters: - type: object mapping: $. - name: update-webhook-id description: Update a webhook by id hints: readOnly: false destructive: false idempotent: true call: gremlin-webhooks.updatewebhook with: guid: tools.guid teamId: tools.teamId body: tools.body outputParameters: - type: object mapping: $. - name: delete-webhook description: Delete a Webhook hints: readOnly: false destructive: true idempotent: true call: gremlin-webhooks.deletewebhook with: guid: tools.guid teamId: tools.teamId outputParameters: - type: object mapping: $.