Event Types
Define and manage the events your system can emit
Event types define what kinds of events your system produces (e.g., order.created, invoice.paid). Endpoints subscribe to specific event types to receive only relevant webhooks. Learn more in the Event Types guide.
API base path: /management/v1/workspaces/{workspaceId}/event-types
Response shape:
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier with evt_ prefix |
name | string | Dot-notation event name (e.g., order.created) |
description | string | null | Human-readable description |
createdAt | string | ISO 8601 creation timestamp |
List event types
Retrieve all event types defined in a workspace.
curl https://api.nahook.com/management/v1/workspaces/ws_abc/event-types \
-H "Authorization: Bearer nhm_YOUR_TOKEN"const { data } = await mgmt.eventTypes.list("ws_abc");
for (const et of data) {
console.log(et.name);
}result = mgmt.event_types.list("ws_abc")
for et in result["data"]:
print(et["name"])result, _ := mgmt.EventTypes.List(ctx, "ws_abc")
for _, et := range result.Data {
fmt.Println(et.Name)
}var result = mgmt.eventTypes().list("ws_abc");
for (var et : result.getData()) {
System.out.println(et.getName());
}var result = await mgmt.EventTypes.ListAsync("ws_abc");
foreach (var et in result.Data)
{
Console.WriteLine(et.Name);
}$result = $mgmt->eventTypes->list("ws_abc");
foreach ($result["data"] as $et) {
echo $et["name"] . "\n";
}result = mgmt.event_types.list("ws_abc")
result["data"].each do |et|
puts et["name"]
endlet result = mgmt.event_types().list("ws_abc").await?;
for et in &result.data {
println!("{}", et.name);
}Create an event type
Register a new event type in a workspace.
Event type names must be unique within a workspace. Use dot-notation for namespacing (e.g., order.created, user.updated).
curl -X POST https://api.nahook.com/management/v1/workspaces/ws_abc/event-types \
-H "Authorization: Bearer nhm_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "order.created", "description": "Fired when a new order is placed"}'const et = await mgmt.eventTypes.create("ws_abc", {
name: "order.created",
description: "Fired when a new order is placed",
});
// et.id -> "evt_..."et = mgmt.event_types.create(
"ws_abc",
name="order.created",
description="Fired when a new order is placed",
)
# et["id"] -> "evt_..."et, _ := mgmt.EventTypes.Create(ctx, "ws_abc", nahook.CreateEventTypeOptions{
Name: "order.created",
Description: "Fired when a new order is placed",
})
// et.ID -> "evt_..."var et = mgmt.eventTypes().create(
"ws_abc",
new CreateEventTypeOptions("order.created", "Fired when a new order is placed")
);
// et.getId() -> "evt_..."var et = await mgmt.EventTypes.CreateAsync("ws_abc", new CreateEventTypeOptions
{
Name = "order.created",
Description = "Fired when a new order is placed",
});
// et.Id -> "evt_..."$et = $mgmt->eventTypes->create("ws_abc", [
"name" => "order.created",
"description" => "Fired when a new order is placed",
]);
// $et["id"] -> "evt_..."et = mgmt.event_types.create(
"ws_abc",
name: "order.created",
description: "Fired when a new order is placed",
)
# et["id"] -> "evt_..."let et = mgmt.event_types().create("ws_abc", CreateEventTypeOptions {
name: "order.created".into(),
description: Some("Fired when a new order is placed".into()),
}).await?;
// et.id -> "evt_..."Get an event type
Retrieve a single event type by ID.
curl https://api.nahook.com/management/v1/workspaces/ws_abc/event-types/evt_123 \
-H "Authorization: Bearer nhm_YOUR_TOKEN"const et = await mgmt.eventTypes.get("ws_abc", "evt_123");et = mgmt.event_types.get("ws_abc", "evt_123")et, _ := mgmt.EventTypes.Get(ctx, "ws_abc", "evt_123")var et = mgmt.eventTypes().get("ws_abc", "evt_123");var et = await mgmt.EventTypes.GetAsync("ws_abc", "evt_123");$et = $mgmt->eventTypes->get("ws_abc", "evt_123");et = mgmt.event_types.get("ws_abc", "evt_123")let et = mgmt.event_types().get("ws_abc", "evt_123").await?;Update an event type
Update the description of an existing event type. The name field cannot be changed after creation.
curl -X PATCH https://api.nahook.com/management/v1/workspaces/ws_abc/event-types/evt_123 \
-H "Authorization: Bearer nhm_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"description": "Updated description"}'const et = await mgmt.eventTypes.update("ws_abc", "evt_123", {
description: "Updated description",
});et = mgmt.event_types.update("ws_abc", "evt_123", description="Updated description")et, _ := mgmt.EventTypes.Update(ctx, "ws_abc", "evt_123", nahook.UpdateEventTypeOptions{
Description: stringPtr("Updated description"),
})var et = mgmt.eventTypes().update(
"ws_abc",
"evt_123",
new UpdateEventTypeOptions("Updated description")
);var et = await mgmt.EventTypes.UpdateAsync("ws_abc", "evt_123", new UpdateEventTypeOptions
{
Description = "Updated description",
});$et = $mgmt->eventTypes->update("ws_abc", "evt_123", [
"description" => "Updated description",
]);et = mgmt.event_types.update("ws_abc", "evt_123", description: "Updated description")let et = mgmt.event_types().update("ws_abc", "evt_123", UpdateEventTypeOptions {
description: Some("Updated description".into()),
}).await?;Delete an event type
Permanently delete an event type from a workspace.
An event type cannot be deleted while it has active subscriptions. Remove all subscriptions first.
curl -X DELETE https://api.nahook.com/management/v1/workspaces/ws_abc/event-types/evt_123 \
-H "Authorization: Bearer nhm_YOUR_TOKEN"await mgmt.eventTypes.delete("ws_abc", "evt_123");mgmt.event_types.delete("ws_abc", "evt_123")_ = mgmt.EventTypes.Delete(ctx, "ws_abc", "evt_123")mgmt.eventTypes().delete("ws_abc", "evt_123");await mgmt.EventTypes.DeleteAsync("ws_abc", "evt_123");$mgmt->eventTypes->delete("ws_abc", "evt_123");mgmt.event_types.delete("ws_abc", "evt_123")mgmt.event_types().delete("ws_abc", "evt_123").await?;