Smartlead Webhooks API
Configure webhooks for real-time event notifications
Configure webhooks for real-time event notifications
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/smartlead-ai-webhooks-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: SmartLead Webhooks API
version: 1.0.0
description: '# SmartLead API Documentation
Welcome to the SmartLead API!'
contact:
name: SmartLead Support
email: support@smartlead.ai
url: https://smartlead.ai
license:
name: Proprietary
url: https://smartlead.ai/terms
servers:
- url: https://server.smartlead.ai/api
description: Production server
- url: https://staging.smartlead.ai/api
description: Staging server (for testing)
security:
- ApiKeyAuth: []
tags:
- name: Webhooks
description: Configure webhooks for real-time event notifications
paths:
/v1/webhook/create:
post:
tags:
- Webhooks
summary: Create Webhook
description: 'Creates a new webhook to receive real-time notifications for campaign events.
**Supported Events:**
- LEAD_REPLIED
- LEAD_OPENED
- LEAD_CLICKED
- LEAD_BOUNCED
- LEAD_UNSUBSCRIBED
- LEAD_CREATED
- And more...'
operationId: createWebhook
parameters:
- $ref: '#/components/parameters/ApiKeyParam'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookInput'
responses:
'200':
description: Webhook created successfully
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
example: true
webhook_id:
type: integer
'401':
$ref: '#/components/responses/UnauthorizedError'
'422':
$ref: '#/components/responses/ValidationError'
'500':
$ref: '#/components/responses/InternalServerError'
/v1/webhook/{webhook_id}:
get:
tags:
- Webhooks
summary: Get Webhook Details
description: Retrieves details of a specific webhook.
operationId: getWebhookDetails
parameters:
- $ref: '#/components/parameters/ApiKeyParam'
- name: webhook_id
in: path
required: true
schema:
type: integer
responses:
'200':
description: Webhook details retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
/v1/webhook/update/{webhook_id}:
put:
tags:
- Webhooks
summary: Update Webhook
description: Updates an existing webhook configuration.
operationId: updateWebhook
parameters:
- $ref: '#/components/parameters/ApiKeyParam'
- name: webhook_id
in: path
required: true
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookUpdate'
responses:
'200':
description: Webhook updated successfully
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
example: true
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
'422':
$ref: '#/components/responses/ValidationError'
'500':
$ref: '#/components/responses/InternalServerError'
/v1/webhook/delete/{webhook_id}:
delete:
tags:
- Webhooks
summary: Delete Webhook
description: Deletes a webhook. You will no longer receive notifications for this webhook.
operationId: deleteWebhook
parameters:
- $ref: '#/components/parameters/ApiKeyParam'
- name: webhook_id
in: path
required: true
schema:
type: integer
responses:
'200':
description: Webhook deleted successfully
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
example: true
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
components:
schemas:
WebhookInput:
type: object
required:
- webhook_url
- association_type
properties:
name:
type: string
webhook_url:
type: string
format: uri
event_type:
type: string
email_campaign_id:
type: integer
association_type:
type: integer
enum:
- 1
- 2
- 3
Webhook:
type: object
properties:
id:
type: integer
name:
type: string
webhook_url:
type: string
event_type:
type: string
status:
type: string
created_at:
type: string
format: date-time
WebhookUpdate:
type: object
properties:
name:
type: string
webhook_url:
type: string
event_type:
type: string
responses:
UnauthorizedError:
description: Unauthorized - Invalid or missing API key
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Invalid API Key
example:
message: Invalid API Key
InternalServerError:
description: Internal server error
content:
application/json:
schema:
type: object
properties:
error:
type: string
example: Internal server error occurred
ValidationError:
description: Request validation failed
content:
application/json:
schema:
type: object
properties:
error:
type: string
example: Invalid parameters provided
NotFoundError:
description: Resource not found
content:
application/json:
schema:
type: object
properties:
error:
type: string
example: Resource not found
parameters:
ApiKeyParam:
name: api_key
in: query
description: Your SmartLead API key for authentication
required: true
schema:
type: string
example: REDACTED_STRIPE_KEY
securitySchemes:
ApiKeyAuth:
type: apiKey
in: query
name: api_key
description: 'Your SmartLead API key. You can generate this from your dashboard under Settings > API Keys.
Include this as a query parameter in all API requests:
```
?api_key=YOUR_API_KEY
```
'