---
title: "Register Webhook"
slug: "register-webhook-2"
updated: 2026-02-11T20:38:32Z
published: 2026-02-11T22:15:21Z
stale: true
---

> ## Documentation Index
> Fetch the complete documentation index at: https://support.fullcast.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Register Webhook

Post/webhook

You can register webhook endpoints via the API to be notified about workflow events that happen in your workspace.

		
			

## Register Webhook[](https://docs.copy.ai/reference/register-webhook#register-webhook)

To register a webhook, send a POST request to `https://api.copy.ai/api/webhook` with a JSON body containing your webhook URL, the event type you want to be notified about, and an *optional* workflow ID.

**For example:**

**POST**

JSONJSON 

```json
{
  "url": "<https://mywebsite.com/webhook>",
  "eventType": "workflowRun.completed",
  "workflowId": "<my-workflow-id>"
}
```

**Response:**

JSONJSON 

```json
{
  "status": "success",
  "data": {
    "id": "<id of webhook>",
    "url": "<https://mywebsite.com/webhook>",
    "eventType": "workflowRun.completed",
    "workflowId": "<my-workflow-id>"
  }
}
```

**Note:** If a workflow ID is not included, you will receive events for all workflows in your workspace.

## Event Types[](https://docs.copy.ai/reference/register-webhook#event-types)

| Event Type | Description |
| --- | --- |
| `workflowRun.started` | Sends an event anytime a workflow run is started. |
| `workflowRun.completed` | Sends an event anytime a workflow run is completed. |
| `workflowRun.failed` | Sends an event anytime a workflow run fails. |
| `workflowCreditLimit.reached` | Sends an event when your workspace reaches the credit limit. |

		
		
SecurityAPI Key: ApiKeyAuthHeader parameter namex-copy-ai-api-key

Copy.ai API key for authentication

Header parametersx-copy-ai-api-keystringRequired

Body parameters<select class='api-response-data' aria-label='Media type'><option value='ed2c9cbd-370d-4808-8a4b-7e832cfc0d62'>application/json</option>
</select><select class='select-example' aria-label='Media type'><option value='ed4c163b-7642-41de-a697-619448900558'>example1</option>
</select>example1

```json
{
  "url": "https://mywebsite.com/webhook",
  "eventType": "workflowRun.completed",
  "workflowId": ""
}
```

object  urlstring    Required
eventTypestring    RequiredValid values[
  "workflowRun.started",
  "workflowRun.completed",
  "workflowRun.failed",
  "workflowCreditLimit.reached"
]
workflowIdstring    

Responses200

Success

<select class='api-response-data' aria-label='Media type'><option value='5024920c-1135-4d82-880a-ca384507710a'>application/json</option>
</select><select class='select-example' aria-label='Media type'><option value='b19add9d-3d05-41c5-b941-f6d35b80ef3c'>success</option>
</select>success

```json
{
  "status": "success",
  "data": {
    "id": "",
    "url": "https://mywebsite.com/webhook",
    "eventType": "workflowRun.completed",
    "workflowId": ""
  }
}
```

Expand Allobject  statusstring    
dataobject (WebhookData)  idstring    
urlstring    
eventTypestring    
workflowIdstring    

400

Bad Request

<select class='api-response-data' aria-label='Media type'><option value='c9433615-cba3-489d-b94a-d2fcde86a006'>application/json</option>
</select>object  statusstring    
errorCodestring    

404

Not Found

<select class='api-response-data' aria-label='Media type'><option value='eac3532a-3d17-422f-a9c3-0c3824638838'>application/json</option>
</select>object  statusstring    
errorCodestring    

422

Validation Error

<select class='api-response-data' aria-label='Media type'><option value='2ec90523-eac8-4976-90cc-ae0d4806130e'>application/json</option>
</select>Expand Allobject  statusstring    
errorCodestring    
detailsobject
