# Get campaign analytics summary Retrieve a comprehensive analytics summary for a campaign including escrow, participation, submission, and payout metrics. Returns 200 OK on success, 404 if campaign not found. Requires a valid JWT access token. Endpoint: GET /campaigns/{campaignId}/summary Version: 0.1.0 Security: bearerAuth ## Path parameters: - `campaignId` (string, required) Unique identifier for the campaign Example: "campaign_abc123" ## Response 200 fields (application/json): - `campaign` (object, required) - `campaign.campaignId` (string, required) Unique identifier for the campaign Example: "campaign_abc123" - `campaign.ownerUserId` (string, required) Unique identifier for the campaign owner Example: "user_123" - `campaign.campaignTitle` (string, required) Title of the campaign Example: "Summer Product Launch" - `campaign.campaignDescription` (string, required) Description of the campaign Example: "Promote our new summer product line to increase brand awareness" - `campaign.campaignObjectiveType` (string, required) Objective type for the campaign Enum: "CAMPAIGN_OBJECTIVE_AWARENESS", "CAMPAIGN_OBJECTIVE_ENGAGEMENT", "CAMPAIGN_OBJECTIVE_CONVERSIONS" - `campaign.campaignCurrencyCode` (string, required) Currency code for the campaign Enum: "NGN", "USD" - `campaign.targetBudgetAmountCents` (integer,null, required) Target budget in cents (null if no target set) Example: 1000000 - `campaign.campaignLifeCycleStatus` (string, required) Current lifecycle status of the campaign Enum: "CAMPAIGN_DRAFT", "CAMPAIGN_ACTIVE", "CAMPAIGN_PAUSED", "CAMPAIGN_COMPLETED", "CAMPAIGN_COMPLETED_WITH_REFUND", "CAMPAIGN_CANCELLED" - `campaign.campaignStartDateTimestamp` (string,null, required) Campaign start date (null if not set) Example: "2024-06-01T00:00:00Z" - `campaign.campaignEndDateTimestamp` (string,null, required) Campaign end date (null if not set) Example: "2024-08-31T23:59:59Z" - `campaign.completedAtTimestamp` (string,null, required) When the campaign was completed (null if not yet completed) Example: "2024-09-01T00:00:00Z" - `campaign.createdAtTimestamp` (string, required) When the campaign was created Example: "2024-01-01T00:00:00Z" - `campaign.lastUpdatedAtTimestamp` (string, required) When the campaign was last updated Example: "2024-01-01T00:00:00Z" - `escrowSummary` (object, required) - `escrowSummary.funded` (integer, required) Total amount funded into escrow (cents) Example: 500000 - `escrowSummary.released` (integer, required) Total amount released from escrow (cents) Example: 300000 - `escrowSummary.refunded` (integer, required) Total amount refunded from escrow (cents) - `escrowSummary.currentBalance` (integer, required) Current escrow balance (cents) Example: 200000 - `participationCounts` (object, required) - `participationCounts.total` (integer, required) Total number of participations Example: 10 - `participationCounts.active` (integer, required) Number of active participations (approved or content submitted) Example: 7 - `participationCounts.completed` (integer, required) Number of completed participations Example: 3 - `submissionCounts` (object, required) - `submissionCounts.total` (integer, required) Total number of content submissions Example: 15 - `submissionCounts.approved` (integer, required) Number of approved submissions Example: 8 - `submissionCounts.rejected` (integer, required) Number of rejected submissions Example: 2 - `submissionCounts.pending` (integer, required) Number of pending submissions Example: 5 - `payoutSummary` (object, required) - `payoutSummary.totalInfluencerPayout` (integer, required) Total amount paid out to influencers (cents) Example: 250000 - `payoutSummary.totalPlatformFee` (integer, required) Total platform fees collected (cents) Example: 50000 - `payoutSummary.payoutCount` (integer, required) Number of payout transactions processed Example: 5 - `lifecycle` (object, required) - `lifecycle.status` (string, required) Current lifecycle status of the campaign Enum: "CAMPAIGN_DRAFT", "CAMPAIGN_ACTIVE", "CAMPAIGN_PAUSED", "CAMPAIGN_COMPLETED", "CAMPAIGN_COMPLETED_WITH_REFUND", "CAMPAIGN_CANCELLED" ## Response 401 fields (application/json): - `error` (string, required) Error code Example: "VALIDATION_ERROR" - `message` (string, required) Human-readable error message Example: "Invalid email address or password format" - `details` (object) Additional error details (optional) - `requestId` (string) Unique request identifier for tracing (included in X-Request-ID header) Example: "550e8400-e29b-41d4-a716-446655440000" - `timestamp` (string, required) ISO 8601 timestamp when the error occurred Example: "2024-01-01T00:00:00Z" ## Response 404 fields (application/json): - `error` (string, required) Error code Example: "VALIDATION_ERROR" - `message` (string, required) Human-readable error message Example: "Invalid email address or password format" - `details` (object) Additional error details (optional) - `requestId` (string) Unique request identifier for tracing (included in X-Request-ID header) Example: "550e8400-e29b-41d4-a716-446655440000" - `timestamp` (string, required) ISO 8601 timestamp when the error occurred Example: "2024-01-01T00:00:00Z"