---
title: "Dynamic Events"
method: POST
path: "/v1/projects/{projectID}/events/dynamic"
tags: ["Events"]
---

# Dynamic Events

`POST /v1/projects/{projectID}/events/dynamic`

This endpoint does not require creating endpoint and subscriptions ahead of time. Instead, you supply the endpoint and the payload, and Convoy delivers the events

## Path parameters

- `projectID` string, required

## Request body

- ModelsDynamicEvent
  - `custom_headers` object, nullable — Specifies custom headers you want convoy to add when the event is dispatched to your endpoint
  - `data` object, nullable — Data is an arbitrary JSON value that gets sent as the body of the webhook to the endpoints
  - `event_type` string — Event Type is used for filtering and debugging e.g invoice.paid
  - `event_types` string[] — A list of event types for the subscription filter config
  - `idempotency_key` string — Specify a key for event deduplication
  - `secret` string — Endpoint's webhook secret. If not provided, Convoy autogenerates one for the endpoint.
  - `url` string — URL is the endpoint's URL prefixed with https. non-https urls are currently not supported.

## Response `201`

Created

- object
  - `message` string
  - `status` boolean
  - `data` HandlersStub, nullable

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found

---

[API](https://skmtc.net/getconvoy/apis/convoy-api-reference.md) · [All operations](https://skmtc.net/getconvoy/apis/convoy-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getconvoy/convoy-api-reference/versions/9d68b6f4aead/schema)
