---
title: "Create an event"
method: POST
path: "/v1/projects/{projectID}/events"
tags: ["Events"]
---

# Create an event

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

This endpoint creates an endpoint event

## Path parameters

- `projectID` string, required

## Request body

- ModelsCreateEvent
  - `app_id` string — Deprecated but necessary for backward compatibility.
  - `custom_headers` object — Specifies custom headers you want convoy to add when the event is dispatched to your endpoint
  - `data` object — Data is an arbitrary JSON value that gets sent as the body of the webhook to the endpoints
  - `endpoint_id` string — Specifies the endpoint to send this event to.
  - `event_type` string — Event Type is used for filtering and debugging e.g invoice.paid
  - `idempotency_key` string — Specify a key for event deduplication

## Response `201`

Created

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

## Other responses

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

## Changes

- **2024-07-12** (v3) `59336767e79a` — 1 breaking, 1 info
  - removed the success response with the status `200`
  - added the success response with the status `201`
- **2024-03-26** (v3) `28d285e4302c` — 1 breaking, 21 warning, 3 info
  - the `data` request property type changed from `array` to `object`
  - removed the optional property `allOf[#/components/schemas/util.ServerResponse]/data` from the response with the `200` status
  - removed the optional property `allOf[#/components/schemas/util.ServerResponse]/data` from the response with the `400` status
  - removed the optional property `allOf[#/components/schemas/util.ServerResponse]/data` from the response with the `401` status
  - …21 more
- **2024-02-20** (v3) `9e4b97e26a2a` — 17 info
  - added the optional property `allOf[subschema #2]/data/app_id` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/created_at` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/data` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/deleted_at` to the response with the `200` status
  - …13 more
- …earlier changes not shown

[Full history](https://skmtc.dev/getconvoy/apis/convoy-api-reference/changes/v1/projects/:projectID/events/post.md)

---

[API](https://skmtc.dev/getconvoy/apis/convoy-api-reference.md) · [All operations](https://skmtc.dev/getconvoy/apis/convoy-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/getconvoy/convoy-api-reference/revisions/c754eceb7bf3/schema)
