Campaign Proof API v1

Bring your own campaign data.

Use the REST API when data lives outside HubSpot or Salesforce. The contract is intentionally narrow: send evidence, retain its source, and receive the modeled 90-day commercial value.

Authentication

Pass a Campaign Proof API key as a bearer token. Keys are shown once, hashed at rest, and can be revoked without changing your CRM connection.

Authorization: Bearer cp_live_...

Create or update a campaign

POST/api/v1/campaigns

Numeric values are accepted as numbers. Currency is stored as exact decimal values. The response includes the formula version and 90-day modeled value.

{
  "source": "hubspot",
  "external_id": "campaign-3817",
  "name": "Enterprise AI Summit",
  "campaign_type": "virtual_event",
  "spend": 42000,
  "impressions": 310000,
  "clicks": 7400,
  "registrations": 1280,
  "leads": 442,
  "opportunities": 28,
  "average_deal_value": 28000,
  "sales_cycle_days": 120,
  "attribution_window_days": 90,
  "occurred_at": "2026-08-14T00:00:00Z"
}

Idempotency and source lineage

The pair of source and external_id is unique within an account. Sending it again updates the existing record, creates a new evidence snapshot, and preserves the original creation time.

Response

{
  "id": 481,
  "status": "updated",
  "methodology_version": "cp-2026.09",
  "attribution_window_days": 90,
  "modeled_opportunity_value": 784000,
  "attributable_value": 588000,
  "modeled_roi": 14
}