Attribution

List attributed investments

Changed on

Returns a list of attributed investments. The detail level depends on your access:

Tier 1 (Marketing Partners) - Anonymized data:

  • Investor identity represented by opaque tokens (not real IDs)
  • Tokens are campaign-scoped (different token per campaign for same investor)
  • Investment amounts shown as tiers (small/medium/large), not exact values
  • No PII (email, name, address) is returned

Tier 2 (Founders/Employees) - Full data with detail_level=full:

  • Real investment IDs (linkable to Wefunder admin)
  • Investor name, email, and username
  • Exact dollar amounts

Access: Requires Tier 1+ access approval from Wefunder admin.

get/campaigns/{campaign_id}/attribution/investments

Request

  • Base URL: https://api.wefunder.com
  • URL: https://api.wefunder.com/campaigns/{campaign_id}/attribution/investments
  • Auth: OAuth 2 (authorization code, authorization URL https://wefunder.com/oauth/authorize, token URL https://api.wefunder.com/oauth/token; client credentials, token URL https://api.wefunder.com/oauth/token, scopes: read:attribution:anonymized)

Path parameters

campaign_idinteger required

The fundraise/campaign ID

Query parameters

cursorinteger

Cursor-based pagination token. Use the next_cursor value from the previous response's meta object to retrieve the next page of results. Omit this parameter to retrieve the first page.

start_datestring date

Filter results to attributions on or after this date. Format: YYYY-MM-DD. Defaults to 90 days ago if not specified.

end_datestring date

Filter results to attributions on or before this date. Format: YYYY-MM-DD. Defaults to today if not specified.

utm_sourcestring

Filter by UTM source (e.g., "GoogleAds", "facebook", "Klaviyo")

utm_campaignstring

Filter by UTM campaign name

detail_level'anonymized' | 'full'

Level of detail to return:

  • anonymized (default): Opaque tokens, amount tiers
  • full: Real IDs, exact amounts, investor PII (founders only)

Marketing partners always receive anonymized data regardless of this parameter.

Response

Successful response

Example response

{
  "data": [
    {
      "investment_token": "inv_abc123xyz789def456uvw012ghi345",
      "investor_token": "usr_def456uvw789abc123xyz012ghi345",
      "amount_tier": "medium",
      "invested_at": "2025-02-15T14:30:00Z",
      "status": {
        "bucket": "confirmed",
        "progress_bar": true
      },
      "attribution": {
        "utm_source": "GoogleAds",
        "utm_campaign": "winter_2025",
        "utm_medium": "cpc",
        "utm_content": "video_ad_v2",
        "clicked_at": "2025-02-15T14:15:00Z",
        "time_to_invest_bucket": "direct",
        "quality_score": "high"
      }
    }
  ],
  "meta": {
    "page_count": 25,
    "has_more": true,
    "detail_level": "anonymized"
  }
}

Changes

    • warning

      removed the optional property ///// from the response with the status

    • info

      added the optional property ///// to the response with the status

    • breaking

      response property meta/allOf[PaginationMeta]/next_cursor list-of-types was widened by adding types string to media type application/json of response 200