Appearance
v1.0.0
OAS 3.1.1
Client Libraries
Auth
Auth Operations
- post/api/auth/admin/assign-email-account
- post/api/auth/banned
- get/api/auth/banned
- delete/api/auth/banned/:id
- post/api/auth/admin/bulk-assign-email-accounts
- post/api/auth/admin/create-voicemail-account
- post/api/auth/admin/find-user-by-email
- post/api/auth/admin/brands
- post/api/auth/admin/all-credits
- post/api/auth/admin/email-accounts
- get/api/auth/admin/payments
- post/api/auth/admin/credit-stats
- post/api/auth/admin/get-credit-weights
- get/api/auth/admin/scheduled-follow-ups
- post/api/auth/admin/update-credit-weight
- post/api/auth/admin/update-enrichment-weight
- post/api/auth/update-twillio-messaging-service-sid
- post/api/auth/edit-profile
- post/api/auth/upload-profile-image
Assign Email Account to Brand
Assign an email sender account to a brand (Admin only)
Body
required
application/json
- Type: string
account Id required - Type: string
brand Id required
Responses
- application/json
Request Example for post/api/auth/admin/assign-email-account
curl http://localhost:3000/api/auth/admin/assign-email-account \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"accountId": "",
"brandId": ""
}'
{
"message": "string",
"previousBrandName": "string",
"success": true
}/api/auth/banned
Add a contact to banlist
Body
required
application/json
- Type: stringFormat: email
email - Type: string
phone - Type: string
reason
Responses
- application/json
Request Example for post/api/auth/banned
curl http://localhost:3000/api/auth/banned \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"email": "",
"phone": "",
"reason": ""
}'
{
"id": "string",
"success": true
}/api/auth/banned
List banned contacts
Query Parameters
- Type: string
cursor - Type: number
limit - enum
sort By valuescreated At email
- enum
sort Order valuesasc desc
Responses
- application/json
Request Example for get/api/auth/banned
curl http://localhost:3000/api/auth/banned
{
"data": [
{
"createdAt": "2026-03-26T05:36:30.086Z",
"email": "string",
"id": "string",
"messageGot": "string",
"phone": "string",
"reason": "string",
"sentimentScore": 1
}
],
"nextCursor": "string",
"success": true
}/api/auth/banned/:id
Remove a contact from banlist
Body
required
application/json
- Type: string
id required
Responses
- application/json
Request Example for delete/api/auth/banned/:id
curl http://localhost:3000/api/auth/banned/:id \
--request DELETE \
--header 'Content-Type: application/json' \
--data '{
"id": ""
}'
{
"success": true
}Bulk Assign Email Accounts
Bulk assign multiple email sender accounts to a brand (Admin only)
Body
required
application/json
- Type: array string[]
account Ids required - Type: string
brand Id required
Responses
- application/json
Request Example for post/api/auth/admin/bulk-assign-email-accounts
curl http://localhost:3000/api/auth/admin/bulk-assign-email-accounts \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"accountIds": [
""
],
"brandId": ""
}'
{
"assignedCount": 1,
"message": "string",
"reassignedAccounts": [
{
"email": "string",
"previousBrandName": "string"
}
],
"success": true
}Create Voicemail Sender Account
Create a new voicemail sender account for a brand (Admin only)
Body
required
application/json
- Type: string
brand Id required - Type: string
phone Number required
Responses
- application/json
Request Example for post/api/auth/admin/create-voicemail-account
curl http://localhost:3000/api/auth/admin/create-voicemail-account \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"brandId": "",
"phoneNumber": ""
}'
{
"message": "string",
"success": true,
"voicemailAccount": {
"displayName": "string",
"id": "string",
"phoneNumber": "string",
"provider": "string"
}
}Find User by Email
Find user and their brand by email (Admin only)
Body
required
application/json
- Type: stringFormat: email
email required
Responses
- application/json
Request Example for post/api/auth/admin/find-user-by-email
curl http://localhost:3000/api/auth/admin/find-user-by-email \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"email": ""
}'
{
"brandId": "string",
"email": "string",
"message": "string",
"name": "string",
"success": true,
"userId": "string"
}List All Brands
Get all brands with their mSID and user info (Admin only)
Body
required
application/json
- Type: number
limit - Type: number
offset - Type: string
search Query
Responses
- application/json
Request Example for post/api/auth/admin/brands
curl http://localhost:3000/api/auth/admin/brands \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"limit": 10,
"offset": 0,
"searchQuery": ""
}'
{
"brands": [
{
"brandId": "string",
"brandName": "string",
"createdAt": "string",
"hasTwilioAuthToken": true,
"ownerEmail": "string",
"ownerName": "string",
"twilioAccountSid": "string",
"twillioMessagingServiceSid": "string",
"userId": "string",
"voicemailSenderAccounts": [
{
"displayName": "string",
"id": "string",
"isActive": true,
"phoneNumber": "string",
"provider": "string"
}
]
}
],
"hasMore": true,
"message": "string",
"success": true,
"total": 1
}List All Credits
Get all brand credits with campaign usage details (Admin only)
Body
required
application/json
- Type: number
limit min:1max:100 - Type: number
page min:1
Responses
- application/json
Request Example for post/api/auth/admin/all-credits
curl http://localhost:3000/api/auth/admin/all-credits \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"limit": 10,
"page": 1
}'
{
"credits": [
{
"brandId": "string",
"brandName": "string",
"campaignCredits": [
{
"campaignId": "string",
"campaignName": "string",
"creditReserved": 1,
"creditType": "string",
"creditUsed": 1
}
],
"creditAvailable": 1,
"ownerEmail": "string",
"ownerName": "string",
"purchasedCredits": 1,
"subscriptionCredits": 1,
"totalCampaigns": 1,
"totalReserved": 1,
"totalUsed": 1
}
],
"message": "string",
"pagination": {
"currentPage": 1,
"limit": 1,
"totalItems": 1,
"totalPages": 1
},
"success": true
}List All Email Sender Accounts
Get all email sender accounts with filters (Admin only)
Body
required
application/json
- enum
assignment Filter valuesall assigned unassigned
- enum
provider Filter valuesG M A I L S M T P
- Type: string
search Query
Responses
- application/json
Request Example for post/api/auth/admin/email-accounts
curl http://localhost:3000/api/auth/admin/email-accounts \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"assignmentFilter": "all",
"providerFilter": "GMAIL",
"searchQuery": ""
}'
{
"accounts": [
{
"accountId": "string",
"accountType": "string",
"brandId": "string",
"brandName": "string",
"connectionStatus": "string",
"dailyLimit": 1,
"displayName": "string",
"email": "string",
"isActive": true,
"isWorkspaceAccount": true,
"lastUsedAt": "string",
"provider": "string",
"sendsToday": 1,
"warmupEmailsSent": 1,
"warmupStatus": "string",
"workspaceDomain": "string"
}
],
"message": "string",
"success": true
}Get All Platform Payments
Get all payment transactions across the platform (Admin only)
Query Parameters
- Type: string
brand Id - Type: string
limit - Type: string
page - Type: string
status - Type: string
type
Responses
- application/json
Request Example for get/api/auth/admin/payments
curl http://localhost:3000/api/auth/admin/payments
{
"pagination": {
"page": 1,
"pageSize": 1,
"total": 1,
"totalPages": 1
},
"success": true,
"transactions": [
{
"amount": 1,
"brandName": "string",
"chargebeeCustomerId": "string",
"chargebeeInvoiceId": "string",
"creditsAdded": 1,
"currency": "string",
"description": "string",
"id": "string",
"planName": "string",
"status": "string",
"transactionDate": "string",
"type": "string",
"userEmail": "string",
"userName": "string"
}
]
}Get Credit Statistics
Get global credit statistics across all brands (Admin only)
Body
required
application/json
Empty object
Responses
- application/json
Request Example for post/api/auth/admin/credit-stats
curl http://localhost:3000/api/auth/admin/credit-stats \
--request POST \
--header 'Content-Type: application/json' \
--data '{}'
{
"message": "string",
"stats": {
"totalAvailable": 1,
"totalBrands": 1,
"totalReserved": 1,
"totalUsed": 1
},
"success": true
}Get Credit Weights
Get all credit type weights (Admin only)
Body
required
application/json
Empty object
Responses
- application/json
Request Example for post/api/auth/admin/get-credit-weights
curl http://localhost:3000/api/auth/admin/get-credit-weights \
--request POST \
--header 'Content-Type: application/json' \
--data '{}'
{
"message": "string",
"success": true,
"weights": {
"EMAIL": 1,
"SKIPTRACE": 1,
"SMS": 1,
"VOICEMAIL": 1
}
}Get scheduled follow-ups
Get all scheduled follow-up messages with filtering and pagination (Admin only)
Query Parameters
- Type: number
limit - Type: number
page - enum
status valuesP E N D I N G S E N T C A N C E L L E D F A I L E D
Responses
- application/json
Request Example for get/api/auth/admin/scheduled-follow-ups
curl http://localhost:3000/api/auth/admin/scheduled-follow-ups
{
"items": [
{
"conversation": {
"brand": {
"id": "string",
"name": "string"
},
"campaign": {
"id": "string",
"name": "string"
},
"contact": {
"email": "string",
"firstName": "string",
"id": "string",
"lastName": "string",
"phone": "string"
},
"mode": "AUTO"
},
"errorMessage": "string",
"id": "string",
"processedAt": "string",
"scheduledTime": "string",
"stage": 1,
"status": "PENDING"
}
],
"pagination": {
"limit": 1,
"page": 1,
"total": 1,
"totalPages": 1
}
}Update Credit Type Weight
Update credit type weight (Admin only)
Body
required
application/json
- enum
credit Type requiredvaluesE M A I L S M S V O I C E M A I L
- Type: number
weight min:0requiredWeight value for the credit type
Responses
- application/json
Request Example for post/api/auth/admin/update-credit-weight
curl http://localhost:3000/api/auth/admin/update-credit-weight \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"creditType": "EMAIL",
"weight": 0
}'
{
"creditType": "string",
"message": "string",
"previousWeight": 1,
"success": true,
"weight": 1
}Update Enrichment Weight
Update enrichment/skiptrace weight (Admin only)
Body
required
application/json
- Type: number
weight min:0requiredWeight value for enrichment
Responses
- application/json
Request Example for post/api/auth/admin/update-enrichment-weight
curl http://localhost:3000/api/auth/admin/update-enrichment-weight \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"weight": 0
}'
{
"message": "string",
"previousWeight": 1,
"success": true,
"weight": 1
}Assign Messaging Service
Update Twilio Messaging Service SID for a brand (Admin only)
Body
required
application/json
- Type: string
brand Id required - Type: string nullable
twilio Account Sid - Type: string nullable
twilio Auth Token - Type: string nullable
twillio Messaging Service Sid
Responses
- application/json
Request Example for post/api/auth/update-twillio-messaging-service-sid
curl http://localhost:3000/api/auth/update-twillio-messaging-service-sid \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"brandId": "",
"twilioAccountSid": "",
"twilioAuthToken": "",
"twillioMessagingServiceSid": ""
}'
{
"message": "string",
"success": true
}Update user profile
Update profile
Body
required
application/json
- Type: string
name required - Type: string
user Id required - Type: string
image
Responses
- application/json
Request Example for post/api/auth/edit-profile
curl http://localhost:3000/api/auth/edit-profile \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"image": "",
"name": "",
"userId": ""
}'
{
"success": true
}Upload Profile Image
Upload user profile image to S3 and update user record
Body
application/json
Responses
- application/json
Request Example for post/api/auth/upload-profile-image
curl http://localhost:3000/api/auth/upload-profile-image \
--request POST \
--header 'Content-Type: application/json' \
--data 'null'
{
"imageUrl": "string",
"message": "string",
"success": true
}Brand (Collapsed)
Brand Operations
- post/api/brand/v1/create-enriched-brand
- delete/api/brand/v1/documents/{id}
- get/api/brand/v1/brand
- patch/api/brand/v1/brand
- get/api/brand/v1/connected-accounts
- get/api/brand/v1/documents
- post/api/brand/v1/documents
- get/api/brand/v1/google-connect
- get/api/brand/voicemail/v1/voicemail/presets
- put/api/brand/voicemail/v1/voicemail/preset
- put/api/brand/voicemail/v1/voicemail/custom
Voicemail (Collapsed)
Campaigns (Collapsed)
Campaigns Operations
- post/api/campaigns/v1/{campaignId}/lead-groups
- get/api/campaigns/v1/{campaignId}/lead-groups
- post/api/campaigns/v1
- get/api/campaigns/v1
- delete/api/campaigns/v1/{id}
- get/api/campaigns/v1/{id}
- put/api/campaigns/v1/{id}
- delete/api/campaigns/v1/sms/conversations/{conversationId}
- delete/api/campaigns/v1/email/conversations/{threadId}
- get/api/campaigns/v1/email/attachments/{attachmentId}
- get/api/campaigns/v1/email/conversations/contact/{contactId}
- get/api/campaigns/v1/email/conversation/{threadId}
- get/api/campaigns/v1/email/messages/{messageId}/attachments
- get/api/campaigns/v1/email/threads/{threadId}/attachments
- get/api/campaigns/v1/email/threads
- post/api/campaigns/v1/email/reply
- patch/api/campaigns/v1/email/conversations/{threadId}/status
- patch/api/campaigns/v1/email/threads/{threadId}/mode
- get/api/campaigns/v1/analytics/brand
- get/api/campaigns/v1/analytics/campaigns/{campaignId}
- get/api/campaigns/v1/dashboard/campaigns/{campaignId}
- get/api/campaigns/v1/performance/campaigns
- get/api/campaigns/v1/overview
- get/api/campaigns/v1/templates
- get/api/campaigns/v1/campaigns/{campaignId}/conversations/{contactId}/messages
- get/api/campaigns/v1/campaigns/{campaignId}/conversations
- get/api/campaigns/v1/campaigns/{campaignId}/opens
- get/api/campaigns/v1/performance/overview
- get/api/campaigns/v1/performance/timeseries
- get/api/campaigns/v1/{campaignId}/replies
- get/api/campaigns/v1/sms/conversations/{conversationId}/messages
- get/api/campaigns/v1/sms/conversations
- post/api/campaigns/v1/{id}/launch
- delete/api/campaigns/v1/{campaignId}/lead-groups/{leadGroupId}
- post/api/campaigns/v1/sms/send
- get/api/campaigns/v1/{id}/steps
- patch/api/campaigns/v1/{id}/steps
- patch/api/campaigns/v1/sms/conversations/{conversationId}/auto-followup
- patch/api/campaigns/v1/sms/conversations/{conversationId}/mode
- patch/api/campaigns/v1/sms/conversations/{conversationId}/group
Leads (Collapsed)
Leads Operations
- post/api/leads/v1/contacts/copy-to-lead-group
- post/api/leads/v1/lead-groups/create-with-campaigns
- delete/api/leads/v1/contacts/{id}
- put/api/leads/v1/contacts/{id}
- delete/api/leads/v1/{id}
- get/api/leads/v1/{id}
- put/api/leads/v1/{id}
- post/api/leads/v1/{leadGroupId}/enrich
- post/api/leads/v1/webhook/enrichment
- get/api/leads/v1/{leadGroupId}/export
- get/api/leads/v1/{id}/contacts/all-ids
- get/api/leads/v1/list/all-ids
- get/api/leads/v1/campaigns/{campaignId}/contact-headers
- post/api/leads/v1/campaigns/{campaignId}/preview
- get/api/leads/v1/hotleads
- get/api/leads/v1/list
- post/api/leads/v1/contacts/push-to-campaign
- post/api/leads/v1/{leadGroupId}/push-to-campaign
- post/api/leads/v1/{leadGroupId}/enrich-retry
- get/api/leads/v1/skiptracing
- put/api/leads/v1/email-threads/{threadId}/hotlead
- put/api/leads/v1/sms-conversations/{conversationId}/hotlead
- post/api/leads/v1/upload
Internal (Collapsed)
Payments (Collapsed)
Payments Operations
- post/api/payments/v1/subscriptions/cancel
- post/api/payments/v1/subscriptions/create
- get/api/payments/v1/credits/usage
- get/api/payments/v1/credits/weights
- get/api/payments/v1/payments/history
- get/api/payments/v1/plans
- get/api/payments/v1/subscriptions/status
- post/api/payments/v1/credits/purchase
- post/api/payments/v1/subscriptions/reactivate
- post/api/payments/v1/subscriptions/update
Webhooks (Collapsed)
Webhooks Operations
- post/api/webhooks/v1/chargebee
- post/api/webhooks/v1/enrichment
- get/api/webhooks/v1/google-oauth-callback
- post/api/webhooks/v1/pubsub
- post/api/webhooks/v1/v1/email/webhook/gmail
- get/api/webhooks/v1/content/click/{trackingId}
- get/api/webhooks/v1/content/image/{trackingId}
- post/api/webhooks/v1/twilio/sms
- post/api/webhooks/v1/twilio/status
- get/api/webhooks/v1/twilio/voicemail-status
- get/api/webhooks/v1/twilio/voicemail-twiml
/api/health/database
Database connection health check
Responses
- application/json
Request Example for get/api/health/database
curl http://localhost:3000/api/health/database
{
"error": "string",
"service": "database",
"status": "OK",
"timestamp": "string",
"uptime": 0
}/api/health
Health check endpoint
Responses
- application/json
Request Example for get/api/health
curl http://localhost:3000/api/health
{
"service": "app",
"status": "OK",
"timestamp": "string",
"uptime": 0
}/api/health/queue
BullMQ queue health check
Responses
- application/json
Request Example for get/api/health/queue
curl http://localhost:3000/api/health/queue
{
"error": "string",
"queueStats": {
"active": 1,
"completed": 1,
"failed": 1,
"waiting": 1
},
"service": "queue",
"status": "OK",
"timestamp": "string",
"uptime": 0
}/api/health/redis
Redis connection health check
Responses
- application/json
Request Example for get/api/health/redis
curl http://localhost:3000/api/health/redis
{
"error": "string",
"service": "redis",
"status": "OK",
"timestamp": "string",
"uptime": 0
}