_id
| string | Campaign ID |
title
| string | Campaign name |
type
| string | Campaign type |
status
| string | Campaign status pendingscrapingscraping_completedprocessing_emailsfully_completedfailedstopped
|
inputs
| object | Campaign inputs |
targetEmails
| integer | User-facing unique email lead goal |
limits
| object | Backend-derived internal caps and legacy compatibility fields |
enableDeepEmailSearch
| boolean | Whether automatic deep email search was applied for a supported campaign type |
enableEmailValidation
| boolean | Whether email validation is enabled |
emailScanCount
| integer | Emails found |
profileScannedCount
| integer | Profiles scanned |
progressPercentage
| number | Progress 0–100 |
maxItemsToProcess
| integer | Internal processing limit |
normalizedCounts
| object | Computed totals (only in detail response) |
├profiles | integer | Total profiles |
├emails | integer | Total emails |
creditSettlement
| object | Credit accounting |
├isSettled | boolean | Whether credits have been settled |
├settledAt | string<date-time>nullable | When settlement completed |
├creditReserved | number | Credits reserved |
├creditUsed | number | Credits consumed |
├creditReturned | number | Credits refunded |
├creditCharged | number | Net credits charged |
├pricingVersion | string | Pricing model used for the reservation estimate |
├reservationVersion | string | Reservation schema version used by the backend |
├maxCreditCap | numbernullable | Configured hard stop cap for billable requests |
├estimatedCredits | numbernullable | Recommended/default hard cap from the reserve preview |
├estimatedUsageCredits | numbernullable | Expected usage credits before conservative cap buffer |
├reserveUsageCredits | numbernullable | Reserve-counter usage credits before conservative cap buffer |
├recommendedMaxCreditCap | numbernullable | Conservative recommended hard cap |
├summary | objectnullable | Customer-facing budget summary with max credit spend, scan count, hidden-email lookup estimate, and public email rate |
├targetMode | stringnullable | Whether the preview targets email leads |
├budgetMode | stringnullable | Whether the cap is recommended, user-limited, or custom |
├filterImpacts | arraynullable | Active filter impacts with selectivity and direct counter details |
├estimatedCounters | objectnullable | Estimated billable API-call counters from reserve preview |
├expectedCounters | objectnullable | Expected billable API-call counters from reserve preview |
├reserveCounters | objectnullable | Reserve billable API-call counters used for the hard cap estimate |
├estimatedRates | objectnullable | Per-counter credit rates used by reserve preview |
├rateRegistryChecksum | stringnullable | Checksum for the pricing rate registry used by the estimate |
├assumptions | objectnullable | Preview assumptions such as internal scan caps and rates |
├warnings | array | Reserve-preview warnings shown before launch |
├breakdown | object | Per-category credit usage (present once settled) |
├initialEmails | integer | Profiles with an initial email |
├deepSearchEmails | integer | Profiles with a hidden email found; audit counter for IG v2, not a direct fee |
├noEmails | integer | Profiles scanned with no email |
├validations | integer | Emails run through validation |
├settlementVersion | integer | Internal settlement schema version |
phaseState
| object | Authoritative per-phase state (scraping / deepsearch / validation / settlement). Updates push a `campaignUpdate` WebSocket event — treat as invalidation and refetch. |
├scraping | object | Scraping phase |
├status | string | Phase status not_applicablependingrunningcompletefailed
|
├startedAt | string<date-time>nullable | When phase started |
├completedAt | string<date-time>nullable | When phase completed |
├finalCounts | objectnullable | Sealed counts on completion |
├lastError | objectnullable | Most recent error (if any) |
├deepsearch | object | Hidden-email search phase (same shape as scraping) |
├validation | object | Email validation phase (same shape as scraping) |
├settlement | object | Credit settlement lifecycle |
├status | string | Settlement status not_readyreadyin_progressdonefailed_retryingfailed_terminal
|
├attempts | integer | Number of settlement attempts |
├lastAttemptAt | string<date-time>nullable | Most recent settlement attempt |
├nextAttemptAt | string<date-time>nullable | Next scheduled retry (if failed_retrying) |
├settledAt | string<date-time>nullable | When settlement completed |
├lastError | objectnullable | Most recent settlement error |
postValidation
| objectnullable | Post-campaign validation status |
├status | string | Validation status idlevalidatingcompletedfailed
|
├total | integer | Total emails to validate |
├validated | integer | Emails validated so far |
├valid | integer | Valid emails |
├invalid | integer | Invalid emails |
├creditReserved | number | Credits reserved for validation |
├creditUsed | number | Credits used for validation |
├creditReturned | number | Credits refunded after validation |
├startedAt | string<date-time> | When validation started |
├completedAt | string<date-time> | When validation completed |
├error | stringnullable | Error message if validation failed |
createdAt
| string<date-time> | Creation timestamp |
updatedAt
| string<date-time> | Last update |
finishedAt
| string<date-time>nullable | Completion timestamp |
platformUserId
| string | Platform-specific user ID of the target (profile-based campaigns) |
fullName
| string | Full name of the target user (profile-based campaigns) |
profilePicUrl
| string | Profile picture URL of the target user |
bio
| string | Biography of the target user |
followerCount
| integer | Follower count of the target user |
followingCount
| integer | Following count of the target user |
mediaCount
| integer | Media/post count of the target user |
isVerified
| boolean | Whether target user is verified on the platform |
isBusiness
| boolean | Whether target user has a business account |
hashtagMediaCount
| integer | Total media count for the hashtag (hashtag campaigns) |
targetPostAuthorUsername
| string | Username of the post author (post-based campaigns) |
targetPostAuthorName
| string | Display name of the post author |
targetPostAuthorProfilePicUrl
| string | Profile picture of the post author |
targetPostLikeCount
| integer | Like count on the target post |
targetPostCommentCount
| integer | Comment count on the target post |
targetPostId
| string | Platform-specific post ID |
targetPostCaptionText
| string | Caption text of the target post |
authorUsername
| string | Author username (X/Twitter campaigns) |
authorName
| string | Author display name (X/Twitter campaigns) |
commentCount
| integer | Comment count |
likeCount
| integer | Like count |
captionText
| string | Caption or post text |
targetFollowerCount
| integer | Target user follower count |
mediaPostCount
| integer | Target user media post count |