Skip to main content

Overview

Retrieve engagement data, document interactions, and revenue attribution for your trust center. Use these endpoints to build custom dashboards, generate reports, or feed data into your BI tools. All analytics endpoints accept optional date range filters and return data scoped to your organization.

Common parameters

All analytics endpoints share these query parameters:
ParameterTypeRequiredDescription
start_dateintegerNoStart of date range (microsecond Unix timestamp)
end_dateintegerNoEnd of date range (microsecond Unix timestamp)
Timestamps use microseconds. Multiply Unix seconds by 1,000,000.
from datetime import datetime
start_date = int(datetime(2025, 1, 1).timestamp() * 1_000_000)

Portal overview

URL: GET https://api.wolfia.com/v1/trustportal/analytics Authentication: API key required, Admin role (see API overview) Returns comprehensive analytics including access requests, portal views, document stats, and top documents and accounts.

Request

curl -X GET 'https://api.wolfia.com/v1/trustportal/analytics?start_date=1735689600000000&end_date=1738368000000000' \
  -H "X-API-Key: wolfia-api-YOUR_KEY_HERE"

Query parameters

ParameterTypeRequiredDescription
account_idUUIDNoFilter to a specific account

Response (200 OK)

{
  "access_requests": {
    "total": 45,
    "approved": 38,
    "rejected": 1,
    "pending": 5,
    "revoked": 0,
    "auto_approved": 22,
    "approval_rate": 96.3,
    "avg_time_to_decision_ms": 12639.14
  },
  "portal_views": {
    "total_views": 1250
  },
  "document_metrics": {
    "total_interactions": 340
  },
  "top_documents": [
    {
      "document_id": "doc-uuid",
      "document_title": "SOC 2 Type II Report",
      "document_type": "file",
      "views": 210,
      "downloads": 85,
      "link_opens": 0,
      "total_interactions": 295
    }
  ],
  "top_accounts": [
    {
      "account_id": "account-uuid",
      "name": "Enterprise Corp",
      "domain": "enterprise.com",
      "logo_url": null,
      "total_views": 15,
      "total_document_interactions": 45,
      "revenue_associated": 100000.0
    }
  ],
  "time_period": {
    "start_date": 1735689600000000,
    "end_date": 1738368000000000
  }
}

Document interactions

URL: GET https://api.wolfia.com/v1/trustportal/analytics/documents Authentication: API key required, Expert or Admin role Returns paginated document interaction metrics including views, downloads, and unique viewers.

Request

curl -X GET 'https://api.wolfia.com/v1/trustportal/analytics/documents?page=1&page_size=20' \
  -H "X-API-Key: wolfia-api-YOUR_KEY_HERE"

Query parameters

ParameterTypeRequiredDefaultDescription
account_idUUIDNo-Filter to a specific account
pageintegerNo1Page number (starting from 1)
page_sizeintegerNo20Items per page (1-100)

Document interactions by revenue

URL: GET https://api.wolfia.com/v1/trustportal/analytics/documents/by-revenue Authentication: API key required, Admin role Returns document interactions sorted by revenue attribution. Requires a CRM integration (Salesforce or HubSpot).

Request

curl -X GET 'https://api.wolfia.com/v1/trustportal/analytics/documents/by-revenue?page=1&page_size=20' \
  -H "X-API-Key: wolfia-api-YOUR_KEY_HERE"

Document detail analytics

URL: GET https://api.wolfia.com/v1/trustportal/analytics/documents/{document_id} Authentication: API key required, Admin role Returns detailed analytics for a specific document including recent activity and top accounts.

Request

curl -X GET 'https://api.wolfia.com/v1/trustportal/analytics/documents/DOC_UUID_HERE' \
  -H "X-API-Key: wolfia-api-YOUR_KEY_HERE"

Query parameters

ParameterTypeRequiredDefaultDescription
activity_limitintegerNo20Max recent activity events (1-100)
account_limitintegerNo10Max top accounts (1-50)

Active accounts

URL: GET https://api.wolfia.com/v1/trustportal/analytics/accounts Authentication: API key required, Admin role Returns paginated accounts with their interaction metrics (views, downloads, access requests).

Request

curl -X GET 'https://api.wolfia.com/v1/trustportal/analytics/accounts?page=1&page_size=20' \
  -H "X-API-Key: wolfia-api-YOUR_KEY_HERE"

Query parameters

ParameterTypeRequiredDefaultDescription
pageintegerNo1Page number
page_sizeintegerNo20Items per page (1-100)

Revenue metrics

URL: GET https://api.wolfia.com/v1/trustportal/analytics/revenue Authentication: API key required, Admin role Returns revenue attribution metrics showing the trust center’s impact on sales pipeline. Requires a CRM integration.

Request

curl -X GET 'https://api.wolfia.com/v1/trustportal/analytics/revenue?start_date=1735689600000000' \
  -H "X-API-Key: wolfia-api-YOUR_KEY_HERE"

Account revenue metrics

URL: GET https://api.wolfia.com/v1/trustportal/analytics/revenue/{account_id} Authentication: API key required, Admin role Returns revenue metrics for a specific account including opportunities and deal stages.

Request

curl -X GET 'https://api.wolfia.com/v1/trustportal/analytics/revenue/ACCOUNT_UUID_HERE' \
  -H "X-API-Key: wolfia-api-YOUR_KEY_HERE"

Top won deals

URL: GET https://api.wolfia.com/v1/trustportal/analytics/top-won-deals Authentication: API key required, Admin role Returns top accounts ranked by won deal revenue. Requires a CRM integration.

Request

curl -X GET 'https://api.wolfia.com/v1/trustportal/analytics/top-won-deals?page=1&page_size=20' \
  -H "X-API-Key: wolfia-api-YOUR_KEY_HERE"

Query parameters

ParameterTypeRequiredDefaultDescription
pageintegerNo1Page number
page_sizeintegerNo20Items per page (1-100)

Top open deals

URL: GET https://api.wolfia.com/v1/trustportal/analytics/top-open-deals Authentication: API key required, Admin role Returns top accounts ranked by open deal pipeline revenue. Requires a CRM integration.

Request

curl -X GET 'https://api.wolfia.com/v1/trustportal/analytics/top-open-deals?page=1&page_size=20' \
  -H "X-API-Key: wolfia-api-YOUR_KEY_HERE"

Integration example

import os
from datetime import datetime, timedelta

import requests

API_KEY = os.environ['WOLFIA_API_KEY']
BASE_URL = 'https://api.wolfia.com/v1'


def get_weekly_analytics():
    """Fetch trust portal analytics for the last 7 days."""
    headers = {'X-API-Key': API_KEY}

    end = datetime.now()
    start = end - timedelta(days=7)
    params = {
        'start_date': int(start.timestamp() * 1_000_000),
        'end_date': int(end.timestamp() * 1_000_000),
    }

    overview = requests.get(
        f'{BASE_URL}/trustportal/analytics',
        headers=headers,
        params=params,
        timeout=30,
    )
    overview.raise_for_status()

    documents = requests.get(
        f'{BASE_URL}/trustportal/analytics/documents',
        headers=headers,
        params={**params, 'page_size': 10},
        timeout=30,
    )
    documents.raise_for_status()

    return {
        'overview': overview.json(),
        'documents': documents.json(),
        'period': f"{start.strftime('%b %d')} - {end.strftime('%b %d, %Y')}",
    }


if __name__ == '__main__':
    data = get_weekly_analytics()
    print(f"Portal views: {data['overview']['portal_views']['total_views']}")
    print(f"Total access requests: {data['overview']['access_requests']['total']}")

Error responses

StatusMeaningSolution
401Invalid API keyVerify your API key is correct
403Insufficient permissions or missing CRMEnsure Admin role. For revenue endpoints, connect a CRM first
404Resource not foundVerify the resource ID exists
422Invalid parametersCheck timestamps are in microseconds and IDs are valid UUIDs
500Server errorRetry with exponential backoff

Next steps