---
title: "Handle incoming webhook"
method: POST
path: "/hooks/{toolId}"
tags: ["Webhooks"]
---

# Handle incoming webhook

`POST /hooks/{toolId}`

## Request

- Base URL: `https://api.superglue.cloud/v1`
- URL: `https://api.superglue.cloud/v1/hooks/{toolId}`
- Auth: one of:
  - HTTP bearer
  - API key in query parameter `token`

Trigger a tool execution from an external webhook (Stripe, GitHub, etc.).

The request body becomes the tool's input payload.
Returns 202 Accepted immediately and executes the tool asynchronously.

Also handles webhook challenge/verification patterns inline:
- **monday.com, Slack:** POST body `{ challenge: "..." }` → echoes challenge as JSON
- **Generic:** POST body `{ verification_token: "...", type: "verification" }` → echoes token as JSON

superglue authenticates access to this endpoint, but does not validate provider-specific
HMAC signatures in the incoming payload.

## Path parameters

- `toolId` string, required

## Request body

- object

## Response `200`

Challenge response returned for supported POST verification payloads

- object

## Other responses

- `202`: Webhook accepted, tool execution started
- `400`: Tool is archived
- `403`: Not authorized to execute this tool
- `404`: Tool not found

---

[API](https://skmtc.dev/superglue/apis/superglue-api.md) - [All operations](https://skmtc.dev/superglue/apis/superglue-api/llms.txt) - [OpenAPI document](https://skmtc.dev/superglue/apis/superglue-api/revisions/2d412a94bf09?raw)
