Skip to content
v1.0.0
OAS 3.1.1

My Playground

Server:http://localhost:3000
Client Libraries

Auth

Assign Email Account to Brand

Assign an email sender account to a brand (Admin only)

Body
required
application/json
  • accountId
    Type: string
    required
  • brandId
    Type: string
    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
  • email
    Type: stringFormat: email
  • phone
    Type: string
  • reason
    Type: string
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
  • cursor
    Type: string
  • limit
    Type: number
  • sortBy
    enum
    values
    • createdAt
    • email
  • sortOrder
    enum
    values
    • asc
    • 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
  • id
    Type: string
    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
  • accountIds
    Type: array string[]
    required
  • brandId
    Type: string
    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
  • brandId
    Type: string
    required
  • phoneNumber
    Type: string
    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
  • email
    Type: stringFormat: 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
  • limit
    Type: number
  • offset
    Type: number
  • searchQuery
    Type: string
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
  • limit
    Type: number
    min:  
    1
    max:  
    100
  • page
    Type: number
    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
  • assignmentFilter
    enum
    values
    • all
    • assigned
    • unassigned
  • providerFilter
    enum
    values
    • GMAIL
    • SMTP
  • searchQuery
    Type: string
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
  • brandId
    Type: string
  • limit
    Type: string
  • page
    Type: string
  • status
    Type: string
  • type
    Type: string
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
  • limit
    Type: number
  • page
    Type: number
  • status
    enum
    values
    • PENDING
    • SENT
    • CANCELLED
    • FAILED
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
  • creditType
    enum
    required
    values
    • EMAIL
    • SMS
    • VOICEMAIL
  • weight
    Type: number
    min:  
    0
    required

    Weight 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
  • weight
    Type: number
    min:  
    0
    required

    Weight 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
  • brandId
    Type: string
    required
  • twilioAccountSid
    Type: string nullable
  • twilioAuthToken
    Type: string nullable
  • twillioMessagingServiceSid
    Type: string nullable
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
  • name
    Type: string
    required
  • userId
    Type: string
    required
  • image
    Type: string
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
}

Campaigns (Collapsed)

Campaigns Operations

/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
}