Convoy · Capability
Convoy API — Events
Convoy webhooks gateway — Events. 8 operations. Lead operation: List all events. Self-contained Naftiko capability covering one Convoy business surface.
What You Can Do
GET
Geteventspaged
— List all events
/v1/projects/{project-id}/events
POST
Createendpointevent
— Create an event
/v1/projects/{project-id}/events
POST
Batchreplayevents
— Batch replay events
/v1/projects/{project-id}/events/batchreplay
POST
Createbroadcastevent
— Create a broadcast event
/v1/projects/{project-id}/events/broadcast
POST
Createdynamicevent
— Dynamic Events
/v1/projects/{project-id}/events/dynamic
POST
Createendpointfanoutevent
— Fan out an event
/v1/projects/{project-id}/events/fanout
GET
Getendpointevent
— Retrieve an event
/v1/projects/{project-id}/events/{event-id}
PUT
Replayendpointevent
— Replay event
/v1/projects/{project-id}/events/{event-id}/replay
MCP Tools
list-events
List all events
read-only
idempotent
create-event
Create an event
batch-replay-events
Batch replay events
create-broadcast-event
Create a broadcast event
dynamic-events
Dynamic Events
fan-out-event
Fan out an event
retrieve-event
Retrieve an event
read-only
idempotent
replay-event
Replay event
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: "Convoy API \u2014 Events"
description: "Convoy webhooks gateway \u2014 Events. 8 operations. Lead operation: List all events. Self-contained Naftiko\
\ capability covering one Convoy business surface."
tags:
- Convoy
- Webhooks
- Events
created: '2026-05-22'
modified: '2026-05-22'
binds:
- namespace: env
keys:
CONVOY_API_KEY: CONVOY_API_KEY
capability:
consumes:
- type: http
namespace: convoy-events
baseUri: https://us.getconvoy.cloud/api
description: "Convoy API \u2014 Events business capability. Self-contained, no shared references."
authentication:
type: bearer
token: '{{env.CONVOY_API_KEY}}'
resources:
- name: v1-projects-project-id-events
path: /v1/projects/{projectID}/events
operations:
- name: GetEventsPaged
method: GET
description: List all events
inputParameters:
- name: projectID
in: path
type: string
required: true
description: Project ID
- name: direction
in: query
type: string
required: false
description: query parameter direction
- name: endDate
in: query
type: string
required: false
description: The end date
- name: endpointId
in: query
type: array
required: false
description: A list of endpoint ids to filter by
- name: idempotencyKey
in: query
type: string
required: false
description: IdempotencyKey to filter by
- name: next_page_cursor
in: query
type: string
required: false
description: A pagination cursor to fetch the next page of a list
- name: perPage
in: query
type: integer
required: false
description: The number of items to return per page
- name: prev_page_cursor
in: query
type: string
required: false
description: A pagination cursor to fetch the previous page of a list
- name: query
in: query
type: string
required: false
description: Any arbitrary value to filter the events payload
- name: sort
in: query
type: string
required: false
description: Sort order, values are `ASC` or `DESC`, defaults to `DESC`
- name: sourceId
in: query
type: array
required: false
description: A list of Source IDs to filter the events by.
- name: startDate
in: query
type: string
required: false
description: The start date
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: CreateEndpointEvent
method: POST
description: Create an event
inputParameters:
- name: projectID
in: path
type: string
required: true
description: Project ID
- name: body
in: body
type: object
required: true
description: Request body payload.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: v1-projects-project-id-events-batchreplay
path: /v1/projects/{projectID}/events/batchreplay
operations:
- name: BatchReplayEvents
method: POST
description: Batch replay events
inputParameters:
- name: projectID
in: path
type: string
required: true
description: Project ID
- name: direction
in: query
type: string
required: false
description: query parameter direction
- name: endDate
in: query
type: string
required: false
description: The end date
- name: endpointId
in: query
type: array
required: false
description: A list of endpoint ids to filter by
- name: idempotencyKey
in: query
type: string
required: false
description: IdempotencyKey to filter by
- name: next_page_cursor
in: query
type: string
required: false
description: A pagination cursor to fetch the next page of a list
- name: perPage
in: query
type: integer
required: false
description: The number of items to return per page
- name: prev_page_cursor
in: query
type: string
required: false
description: A pagination cursor to fetch the previous page of a list
- name: query
in: query
type: string
required: false
description: Any arbitrary value to filter the events payload
- name: sort
in: query
type: string
required: false
description: Sort order, values are `ASC` or `DESC`, defaults to `DESC`
- name: sourceId
in: query
type: array
required: false
description: A list of Source IDs to filter the events by.
- name: startDate
in: query
type: string
required: false
description: The start date
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: v1-projects-project-id-events-broadcast
path: /v1/projects/{projectID}/events/broadcast
operations:
- name: CreateBroadcastEvent
method: POST
description: Create a broadcast event
inputParameters:
- name: projectID
in: path
type: string
required: true
description: Project ID
- name: body
in: body
type: object
required: true
description: Request body payload.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: v1-projects-project-id-events-dynamic
path: /v1/projects/{projectID}/events/dynamic
operations:
- name: CreateDynamicEvent
method: POST
description: Dynamic Events
inputParameters:
- name: projectID
in: path
type: string
required: true
description: Project ID
- name: body
in: body
type: object
required: true
description: Request body payload.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: v1-projects-project-id-events-fanout
path: /v1/projects/{projectID}/events/fanout
operations:
- name: CreateEndpointFanoutEvent
method: POST
description: Fan out an event
inputParameters:
- name: projectID
in: path
type: string
required: true
description: Project ID
- name: body
in: body
type: object
required: true
description: Request body payload.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: v1-projects-project-id-events-event-id
path: /v1/projects/{projectID}/events/{eventID}
operations:
- name: GetEndpointEvent
method: GET
description: Retrieve an event
inputParameters:
- name: projectID
in: path
type: string
required: true
description: Project ID
- name: eventID
in: path
type: string
required: true
description: event id
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: v1-projects-project-id-events-event-id-replay
path: /v1/projects/{projectID}/events/{eventID}/replay
operations:
- name: ReplayEndpointEvent
method: PUT
description: Replay event
inputParameters:
- name: projectID
in: path
type: string
required: true
description: Project ID
- name: eventID
in: path
type: string
required: true
description: event id
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
exposes:
- type: rest
namespace: convoy-events-rest
port: 8080
description: "REST adapter for Convoy API \u2014 Events. One Spectral-compliant resource per consumed operation, prefixed\
\ with /v1."
resources:
- path: /v1/projects/{project-id}/events
name: v1-projects-project-id-events
description: REST surface for /v1/projects/{project-id}/events.
operations:
- method: GET
name: GetEventsPaged
description: List all events
call: convoy-events.GetEventsPaged
with:
projectID: rest.projectID
direction: rest.direction
endDate: rest.endDate
endpointId: rest.endpointId
idempotencyKey: rest.idempotencyKey
next_page_cursor: rest.next_page_cursor
perPage: rest.perPage
prev_page_cursor: rest.prev_page_cursor
query: rest.query
sort: rest.sort
sourceId: rest.sourceId
startDate: rest.startDate
outputParameters:
- type: object
mapping: $.
- method: POST
name: CreateEndpointEvent
description: Create an event
call: convoy-events.CreateEndpointEvent
with:
projectID: rest.projectID
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project-id}/events/batchreplay
name: v1-projects-project-id-events-batchreplay
description: REST surface for /v1/projects/{project-id}/events/batchreplay.
operations:
- method: POST
name: BatchReplayEvents
description: Batch replay events
call: convoy-events.BatchReplayEvents
with:
projectID: rest.projectID
direction: rest.direction
endDate: rest.endDate
endpointId: rest.endpointId
idempotencyKey: rest.idempotencyKey
next_page_cursor: rest.next_page_cursor
perPage: rest.perPage
prev_page_cursor: rest.prev_page_cursor
query: rest.query
sort: rest.sort
sourceId: rest.sourceId
startDate: rest.startDate
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project-id}/events/broadcast
name: v1-projects-project-id-events-broadcast
description: REST surface for /v1/projects/{project-id}/events/broadcast.
operations:
- method: POST
name: CreateBroadcastEvent
description: Create a broadcast event
call: convoy-events.CreateBroadcastEvent
with:
projectID: rest.projectID
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project-id}/events/dynamic
name: v1-projects-project-id-events-dynamic
description: REST surface for /v1/projects/{project-id}/events/dynamic.
operations:
- method: POST
name: CreateDynamicEvent
description: Dynamic Events
call: convoy-events.CreateDynamicEvent
with:
projectID: rest.projectID
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project-id}/events/fanout
name: v1-projects-project-id-events-fanout
description: REST surface for /v1/projects/{project-id}/events/fanout.
operations:
- method: POST
name: CreateEndpointFanoutEvent
description: Fan out an event
call: convoy-events.CreateEndpointFanoutEvent
with:
projectID: rest.projectID
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project-id}/events/{event-id}
name: v1-projects-project-id-events-event-id
description: REST surface for /v1/projects/{project-id}/events/{event-id}.
operations:
- method: GET
name: GetEndpointEvent
description: Retrieve an event
call: convoy-events.GetEndpointEvent
with:
projectID: rest.projectID
eventID: rest.eventID
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project-id}/events/{event-id}/replay
name: v1-projects-project-id-events-event-id-replay
description: REST surface for /v1/projects/{project-id}/events/{event-id}/replay.
operations:
- method: PUT
name: ReplayEndpointEvent
description: Replay event
call: convoy-events.ReplayEndpointEvent
with:
projectID: rest.projectID
eventID: rest.eventID
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: convoy-events-mcp
port: 9090
transport: http
description: "MCP adapter for Convoy API \u2014 Events. One tool per consumed operation, routed inline through this capability's\
\ consumes block."
tools:
- name: list-events
description: List all events
hints:
readOnly: true
destructive: false
idempotent: true
call: convoy-events.GetEventsPaged
with:
projectID: tools.projectID
direction: tools.direction
endDate: tools.endDate
endpointId: tools.endpointId
idempotencyKey: tools.idempotencyKey
next_page_cursor: tools.next_page_cursor
perPage: tools.perPage
prev_page_cursor: tools.prev_page_cursor
query: tools.query
sort: tools.sort
sourceId: tools.sourceId
startDate: tools.startDate
outputParameters:
- type: object
mapping: $.
- name: create-event
description: Create an event
hints:
readOnly: false
destructive: false
idempotent: false
call: convoy-events.CreateEndpointEvent
with:
projectID: tools.projectID
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: batch-replay-events
description: Batch replay events
hints:
readOnly: false
destructive: false
idempotent: false
call: convoy-events.BatchReplayEvents
with:
projectID: tools.projectID
direction: tools.direction
endDate: tools.endDate
endpointId: tools.endpointId
idempotencyKey: tools.idempotencyKey
next_page_cursor: tools.next_page_cursor
perPage: tools.perPage
prev_page_cursor: tools.prev_page_cursor
query: tools.query
sort: tools.sort
sourceId: tools.sourceId
startDate: tools.startDate
outputParameters:
- type: object
mapping: $.
- name: create-broadcast-event
description: Create a broadcast event
hints:
readOnly: false
destructive: false
idempotent: false
call: convoy-events.CreateBroadcastEvent
with:
projectID: tools.projectID
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: dynamic-events
description: Dynamic Events
hints:
readOnly: false
destructive: false
idempotent: false
call: convoy-events.CreateDynamicEvent
with:
projectID: tools.projectID
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: fan-out-event
description: Fan out an event
hints:
readOnly: false
destructive: false
idempotent: false
call: convoy-events.CreateEndpointFanoutEvent
with:
projectID: tools.projectID
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: retrieve-event
description: Retrieve an event
hints:
readOnly: true
destructive: false
idempotent: true
call: convoy-events.GetEndpointEvent
with:
projectID: tools.projectID
eventID: tools.eventID
outputParameters:
- type: object
mapping: $.
- name: replay-event
description: Replay event
hints:
readOnly: false
destructive: false
idempotent: true
call: convoy-events.ReplayEndpointEvent
with:
projectID: tools.projectID
eventID: tools.eventID
outputParameters:
- type: object
mapping: $.