---
updatedAt: 2025-12-30T10:24:09.000Z
agentTools:
  projectIndex: https://developers.livestorm.co/llms.txt
---

# Create a webhook

Create a new webhook subscription.

> 📘 This endpoint requires the `webhooks:write` scope.

<HTMLBlock>{`
<style>
  /* open all API sections in the page */
  .subpages { display: block!important; }
</style>
`}</HTMLBlock>

### Webhooks lifecycle

<Image title="API webhooks (1).jpg" alt={3431} src="https://files.readme.io/291578e-API_webhooks_1.jpg">
  Webhooks lifecycle
</Image>

→ For more information, check our [dedicated guide about webhooks](https://developers.livestorm.co/docs/webhooks-1).

# OpenAPI definition

```json
{
  "openapi": "3.0.3",
  "info": {
    "title": "Livestorm - Public API",
    "description": "Welcome to Livestorm's Public API documentation.\nThe Livestorm API is organized around REST principles.\nIn addition, all request and response bodies, including errors, are encoded in JSON format.\n",
    "termsOfService": "https://livestorm.co/terms/",
    "contact": {
      "name": "Contact",
      "url": "https://support.livestorm.co",
      "email": "help@livestorm.co"
    },
    "version": "1"
  },
  "servers": [
    {
      "url": "https://{defaultHost}",
      "variables": {
        "defaultHost": {
          "default": "api.livestorm.co/v1"
        }
      }
    }
  ],
  "components": {
    "securitySchemes": {
      "api_key": {
        "type": "apiKey",
        "name": "Authorization",
        "in": "header"
      },
      "oauth2": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "/oauth/authorize",
            "tokenUrl": "/oauth/token",
            "scopes": {
              "full:read": "Grants read access",
              "full:write": "Grants write access"
            }
          }
        }
      }
    },
    "schemas": {
      "BaseResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID"
          },
          "type": {
            "type": "string",
            "description": "Type"
          }
        }
      }
    }
  },
  "paths": {
    "/webhooks": {
      "post": {
        "summary": "Create a webhook",
        "tags": [
          "Webhooks"
        ],
        "description": "Create a new webhook subscription.",
        "security": [
          {
            "api_key": []
          },
          {
            "oauth2": []
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/BaseResponse"
                        },
                        {
                          "type": "object",
                          "description": "Data",
                          "properties": {
                            "attributes": {
                              "type": "object",
                              "description": "Attributes",
                              "properties": {
                                "url": {
                                  "type": "string",
                                  "x-nullable": true,
                                  "description": ""
                                },
                                "event": {
                                  "type": "string",
                                  "x-nullable": true,
                                  "description": ""
                                },
                                "created_at": {
                                  "type": "integer",
                                  "x-nullable": true,
                                  "description": ""
                                },
                                "updated_at": {
                                  "type": "integer",
                                  "x-nullable": true,
                                  "description": ""
                                }
                              }
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "examples": {
                  "application/vnd.api+json": {
                    "value": {
                      "data": {
                        "id": "f8358fc0-245f-4867-9a51-0a6b26bce996",
                        "type": "webhooks",
                        "attributes": {
                          "created_at": 1733759084,
                          "updated_at": 1733759084,
                          "url": "https://my-awesome.site",
                          "event": "event.published"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed",
            "content": {}
          },
          "403": {
            "description": "Workspace blocked",
            "content": {}
          },
          "429": {
            "description": "Too Many Requests",
            "content": {},
            "headers": {
              "RateLimit-Interval-Limit": {
                "schema": {
                  "type": "integer"
                },
                "description": "The number of allowed requests for the current period (1 second)"
              },
              "RateLimit-Interval-Remaining": {
                "schema": {
                  "type": "integer"
                },
                "description": "The number of remaining requests for the current period (1 second)"
              },
              "Retry-After": {
                "schema": {
                  "type": "integer"
                },
                "description": "The number of seconds you are required to wait before the next successful request"
              },
              "RateLimit-Reset": {
                "schema": {
                  "type": "integer"
                },
                "description": "A timestamp of when the limit will be reset"
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/vnd.api+json": {
              "schema": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "default": "webhooks",
                        "example": "webhooks"
                      },
                      "attributes": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "x-nullable": true,
                            "description": "",
                            "example": "https://my-awesome.site"
                          },
                          "event": {
                            "type": "string",
                            "x-nullable": true,
                            "description": "",
                            "example": "event.published"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "x-readme": {
    "explorer-enabled": true,
    "proxy-enabled": true
  }
}
```