Skip to main content
POST /api/v2/buyer/advertisers/{advertiserId}/measurement-sources Registers a measurement data source (e.g. an MMM model or brand-lift study) for an advertiser. The source defines which outcome type it produces, how often, and the lag before data lands — the engine uses these to weigh incoming records and check freshness.

Request

curl -X POST https://api.interchange.io/api/v2/buyer/advertisers/12345/measurement-sources \
  -H "Authorization: Bearer $SCOPE3_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "sourceKey": "acme_incr_rev",
    "name": "Acme Incrementality",
    "outcomeType": "incremental_revenue",
    "granularity": "geo_week",
    "cadence": "weekly",
    "provider": "acme-mmm",
    "lagWeeks": 1,
    "signalWeight": 1,
    "status": "active"
  }'

Parameters

FieldTypeRequiredNotes
advertiserIdstringYesPath parameter — the owning advertiser
sourceKeystringYesStable key tying records to this source
namestringYesHuman-readable label
outcomeTypestringYesPrimary outcome the source reports
granularitystringYesReporting grain (e.g. geo_week)
cadenceenumYescontinuous, daily, weekly, biweekly, monthly, quarterly
providerstringYesPartner name (e.g. acme-mmm)
outcomeTypesstring[]NoAdditional outcome types the source reports
lagWeeksintegerNoExpected reporting lag in weeks (default 1)
ingestionMethodstringNoHow records arrive (e.g. api, sync)
attributionConfigobjectNoFree-form provider attribution settings
signalWeightnumberNoWeight in belief updates, 0–1 (default 1)
statusenumNopending, active, paused (default pending)
notesstringNoFree-text notes

Response

{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "advertiserId": "12345",
  "sourceKey": "acme_incr_rev",
  "name": "Acme Incrementality",
  "outcomeType": "incremental_revenue",
  "outcomeTypes": [],
  "granularity": "geo_week",
  "cadence": "weekly",
  "provider": "acme-mmm",
  "lagWeeks": 1,
  "signalWeight": 1,
  "status": "active",
  "createdAt": "2026-01-15T10:30:00Z",
  "updatedAt": "2026-01-15T10:30:00Z"
}
The returned id is the sourceId you pass to Get and Update.

Errors

  • 400 VALIDATION_ERROR — missing a required field, invalid cadence/status, or signalWeight outside 0–1.
  • 404 NOT_FOUNDadvertiserId does not exist or is not visible to the authenticated customer.
See Errors for the full error contract.

Measurement tasks

All measurement operations

Measurement overview

Pipeline, belief state, and concepts

List measurement sources

See registered sources