Convoy · Capability
Convoy API — Subscriptions
Convoy webhooks gateway — Subscriptions. 8 operations. Lead operation: Validate source function. Self-contained Naftiko capability covering one Convoy business surface.
What You Can Do
POST
Postv1 projects project id sources test function
— Validate source function
/v1/projects/{project-id}/sources/test_function
GET
Getsubscriptions
— List all subscriptions
/v1/projects/{project-id}/subscriptions
POST
Createsubscription
— Create a subscription
/v1/projects/{project-id}/subscriptions
POST
Testsubscriptionfilter
— Validate subscription filter
/v1/projects/{project-id}/subscriptions/test_filter
POST
Testsubscriptionfunction
— Test a subscription function
/v1/projects/{project-id}/subscriptions/test_function
DELETE
Deletesubscription
— Delete subscription
/v1/projects/{project-id}/subscriptions/{subscription-id}
GET
Getsubscription
— Retrieve a subscription
/v1/projects/{project-id}/subscriptions/{subscription-id}
PUT
Updatesubscription
— Update a subscription
/v1/projects/{project-id}/subscriptions/{subscription-id}
MCP Tools
validate-source-function
Validate source function
read-only
list-subscriptions
List all subscriptions
read-only
idempotent
create-subscription
Create a subscription
validate-subscription-filter
Validate subscription filter
read-only
test-subscription-function
Test a subscription function
read-only
delete-subscription
Delete subscription
idempotent
retrieve-subscription
Retrieve a subscription
read-only
idempotent
update-subscription
Update a subscription
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: "Convoy API \u2014 Subscriptions"
description: "Convoy webhooks gateway \u2014 Subscriptions. 8 operations. Lead operation: Validate source function. Self-contained\
\ Naftiko capability covering one Convoy business surface."
tags:
- Convoy
- Webhooks
- Subscriptions
created: '2026-05-22'
modified: '2026-05-22'
binds:
- namespace: env
keys:
CONVOY_API_KEY: CONVOY_API_KEY
capability:
consumes:
- type: http
namespace: convoy-subscriptions
baseUri: https://us.getconvoy.cloud/api
description: "Convoy API \u2014 Subscriptions business capability. Self-contained, no shared references."
authentication:
type: bearer
token: '{{env.CONVOY_API_KEY}}'
resources:
- name: v1-projects-project-id-sources-test-function
path: /v1/projects/{projectID}/sources/test_function
operations:
- name: postv1-projects-project-id-sources-test-function
method: POST
description: Validate source function
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-subscriptions
path: /v1/projects/{projectID}/subscriptions
operations:
- name: GetSubscriptions
method: GET
description: List all subscriptions
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: endpointId
in: query
type: array
required: false
description: A list of endpointIDs to filter by
- name: name
in: query
type: string
required: false
description: Subscription name 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: sort
in: query
type: string
required: false
description: Sort order, values are `ASC` or `DESC`, defaults to `DESC`
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: CreateSubscription
method: POST
description: Create a subscription
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-subscriptions-test-filter
path: /v1/projects/{projectID}/subscriptions/test_filter
operations:
- name: TestSubscriptionFilter
method: POST
description: Validate subscription filter
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-subscriptions-test-function
path: /v1/projects/{projectID}/subscriptions/test_function
operations:
- name: TestSubscriptionFunction
method: POST
description: Test a subscription function
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-subscriptions-subscription-id
path: /v1/projects/{projectID}/subscriptions/{subscriptionID}
operations:
- name: DeleteSubscription
method: DELETE
description: Delete subscription
inputParameters:
- name: projectID
in: path
type: string
required: true
description: Project ID
- name: subscriptionID
in: path
type: string
required: true
description: subscription id
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: GetSubscription
method: GET
description: Retrieve a subscription
inputParameters:
- name: projectID
in: path
type: string
required: true
description: Project ID
- name: subscriptionID
in: path
type: string
required: true
description: subscription id
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: UpdateSubscription
method: PUT
description: Update a subscription
inputParameters:
- name: projectID
in: path
type: string
required: true
description: Project ID
- name: subscriptionID
in: path
type: string
required: true
description: subscription id
- name: body
in: body
type: object
required: true
description: Request body payload.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
exposes:
- type: rest
namespace: convoy-subscriptions-rest
port: 8080
description: "REST adapter for Convoy API \u2014 Subscriptions. One Spectral-compliant resource per consumed operation,\
\ prefixed with /v1."
resources:
- path: /v1/projects/{project-id}/sources/test_function
name: v1-projects-project-id-sources-test-function
description: REST surface for /v1/projects/{project-id}/sources/test_function.
operations:
- method: POST
name: postv1-projects-project-id-sources-test-function
description: Validate source function
call: convoy-subscriptions.postv1-projects-project-id-sources-test-function
with:
projectID: rest.projectID
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project-id}/subscriptions
name: v1-projects-project-id-subscriptions
description: REST surface for /v1/projects/{project-id}/subscriptions.
operations:
- method: GET
name: GetSubscriptions
description: List all subscriptions
call: convoy-subscriptions.GetSubscriptions
with:
projectID: rest.projectID
direction: rest.direction
endpointId: rest.endpointId
name: rest.name
next_page_cursor: rest.next_page_cursor
perPage: rest.perPage
prev_page_cursor: rest.prev_page_cursor
sort: rest.sort
outputParameters:
- type: object
mapping: $.
- method: POST
name: CreateSubscription
description: Create a subscription
call: convoy-subscriptions.CreateSubscription
with:
projectID: rest.projectID
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project-id}/subscriptions/test_filter
name: v1-projects-project-id-subscriptions-test-filter
description: REST surface for /v1/projects/{project-id}/subscriptions/test_filter.
operations:
- method: POST
name: TestSubscriptionFilter
description: Validate subscription filter
call: convoy-subscriptions.TestSubscriptionFilter
with:
projectID: rest.projectID
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project-id}/subscriptions/test_function
name: v1-projects-project-id-subscriptions-test-function
description: REST surface for /v1/projects/{project-id}/subscriptions/test_function.
operations:
- method: POST
name: TestSubscriptionFunction
description: Test a subscription function
call: convoy-subscriptions.TestSubscriptionFunction
with:
projectID: rest.projectID
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project-id}/subscriptions/{subscription-id}
name: v1-projects-project-id-subscriptions-subscription-id
description: REST surface for /v1/projects/{project-id}/subscriptions/{subscription-id}.
operations:
- method: DELETE
name: DeleteSubscription
description: Delete subscription
call: convoy-subscriptions.DeleteSubscription
with:
projectID: rest.projectID
subscriptionID: rest.subscriptionID
outputParameters:
- type: object
mapping: $.
- method: GET
name: GetSubscription
description: Retrieve a subscription
call: convoy-subscriptions.GetSubscription
with:
projectID: rest.projectID
subscriptionID: rest.subscriptionID
outputParameters:
- type: object
mapping: $.
- method: PUT
name: UpdateSubscription
description: Update a subscription
call: convoy-subscriptions.UpdateSubscription
with:
projectID: rest.projectID
subscriptionID: rest.subscriptionID
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: convoy-subscriptions-mcp
port: 9090
transport: http
description: "MCP adapter for Convoy API \u2014 Subscriptions. One tool per consumed operation, routed inline through\
\ this capability's consumes block."
tools:
- name: validate-source-function
description: Validate source function
hints:
readOnly: true
destructive: false
idempotent: false
call: convoy-subscriptions.postv1-projects-project-id-sources-test-function
with:
projectID: tools.projectID
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: list-subscriptions
description: List all subscriptions
hints:
readOnly: true
destructive: false
idempotent: true
call: convoy-subscriptions.GetSubscriptions
with:
projectID: tools.projectID
direction: tools.direction
endpointId: tools.endpointId
name: tools.name
next_page_cursor: tools.next_page_cursor
perPage: tools.perPage
prev_page_cursor: tools.prev_page_cursor
sort: tools.sort
outputParameters:
- type: object
mapping: $.
- name: create-subscription
description: Create a subscription
hints:
readOnly: false
destructive: false
idempotent: false
call: convoy-subscriptions.CreateSubscription
with:
projectID: tools.projectID
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: validate-subscription-filter
description: Validate subscription filter
hints:
readOnly: true
destructive: false
idempotent: false
call: convoy-subscriptions.TestSubscriptionFilter
with:
projectID: tools.projectID
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: test-subscription-function
description: Test a subscription function
hints:
readOnly: true
destructive: false
idempotent: false
call: convoy-subscriptions.TestSubscriptionFunction
with:
projectID: tools.projectID
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: delete-subscription
description: Delete subscription
hints:
readOnly: false
destructive: true
idempotent: true
call: convoy-subscriptions.DeleteSubscription
with:
projectID: tools.projectID
subscriptionID: tools.subscriptionID
outputParameters:
- type: object
mapping: $.
- name: retrieve-subscription
description: Retrieve a subscription
hints:
readOnly: true
destructive: false
idempotent: true
call: convoy-subscriptions.GetSubscription
with:
projectID: tools.projectID
subscriptionID: tools.subscriptionID
outputParameters:
- type: object
mapping: $.
- name: update-subscription
description: Update a subscription
hints:
readOnly: false
destructive: false
idempotent: true
call: convoy-subscriptions.UpdateSubscription
with:
projectID: tools.projectID
subscriptionID: tools.subscriptionID
body: tools.body
outputParameters:
- type: object
mapping: $.