Activity Data API

Access email activity and engagement data to understand email behavior and deliverability.

Get Email Activity

GET/v1/activity/{email}

Retrieve engagement activity data for a specific email address.

Response
{
  "success": true,
  "data": {
    "email": "user@example.com",
    "email_hash": "973dfe463ec85785f5f95af5ba3906ee...",
    "activity": {
      "level": "active",
      "score": 78,
      "last_activity_at": "2026-01-28T15:30:00Z",
      "engagement": {
        "open_count": 45,
        "click_count": 12,
        "reply_count": 2
      },
      "deliverability": {
        "bounce_count": 0,
        "complaint_count": 0
      },
      "confidence": 80,
      "data_points": 18
    },
    "credits_used": 0.5
  }
}

When no activity data exists for an email, activity.level is unknown with zeroed metrics and a message field explaining that no data is available.

Batch Activity Lookup

POST/v1/activity/batch

Look up activity data for multiple emails at once (up to 100 per request).

Request
{
  "emails": [
    "user1@example.com",
    "user2@example.com"
  ]
}
Response
{
  "success": true,
  "data": {
    "results": [
      {
        "email": "user1@example.com",
        "email_hash": "6f4b1c...",
        "activity": {
          "level": "active",
          "score": 78,
          "last_activity_at": "2026-01-28T15:30:00Z",
          "engagement": { "open_count": 45, "click_count": 12, "reply_count": 2 },
          "deliverability": { "bounce_count": 0, "complaint_count": 0 },
          "confidence": 80,
          "data_points": 18
        }
      },
      {
        "email": "user2@example.com",
        "email_hash": "a91e2d...",
        "activity": {
          "level": "unknown",
          "score": 0,
          "last_activity_at": null,
          "engagement": { "open_count": 0, "click_count": 0, "reply_count": 0 },
          "deliverability": { "bounce_count": 0, "complaint_count": 0 },
          "confidence": 0,
          "data_points": 0,
          "message": "No activity data available for this email"
        }
      }
    ],
    "total": 2,
    "credits_used": 0.5
  }
}

Domain Reputation

GET/v1/activity/domain/{domain}

Get aggregated reputation metrics for an entire domain.

Response
{
  "success": true,
  "data": {
    "domain": "example.com",
    "reputation_score": 85,
    "reputation_grade": "B",
    "credits_used": 1
  }
}

When no reputation data exists for a domain, reputation_score is 0, reputation_grade is null, and a message field explains that no data is available.

Credits

  • 0.5 credits per single email activity lookup (GET /v1/activity/{email})
  • 0.25 credits per email in a batch lookup (POST /v1/activity/batch, max 100 emails per request)
  • 1 credit per domain reputation lookup (GET /v1/activity/domain/{domain})
  • Credits are charged per request, including when no activity data is found
  • If a lookup fails internally after the charge, the credits are refunded automatically

Engagement Levels

LevelDescriptionCriteria
activeRecently engagedEngagement within the last 30 days
inactiveFading engagementNo engagement in 30-90 days
dormantLong-term unengagedNo engagement in 90+ days
unknownNo data availableInsufficient tracked activity

Data Sources

Activity data is aggregated from multiple sources:

  • • Tracking pixels from email campaigns
  • • Click tracking from email links
  • • Opt-in data sharing from partner networks
  • • Bounce and complaint feedback loops

Privacy: All activity data is anonymized and aggregated. We never share individual recipient data with third parties.