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.

Run with Naftiko ConvoyWebhooksEvents

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

convoy-events.yaml Raw ↑
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: $.