Access a continuously-updated stream of anonymized internet traffic signals — domain, category, country, time — collected from real residential connections worldwide. Zero PII. Fully GDPR-compliant. Start in 60 seconds.
Every record is structurally de-identified. No record can be linked to any individual.
| Field | Type | Description |
|---|---|---|
| ts | ISO 8601 string | UTC timestamp of the connection event |
| domain | string | Destination domain (never URL path or query) |
| category | enum (8 values) | Traffic category classification |
| country | ISO 3166-1 alpha-2 | Client country (geo-derived, no IP stored) |
| port | integer | Destination TCP port |
| is_https | boolean | Whether connection used HTTPS (port 443) |
| hour_of_day | integer 0-23 | UTC hour the connection occurred — peak-hour analysis |
| day_of_week | integer 0-6 | Day of week (0=Sunday, 6=Saturday) — weekday vs weekend |
| plan | enum | User's VPN plan tier at time of connection |
{
"ts": "2026-04-21T18:32:07Z",
"domain": "youtube.com",
"category": "streaming",
"country": "US",
"port": 443,
"is_https": true,
"hour_of_day": 18,
"day_of_week": 1,
"plan": "premium"
}| Field | Type | Description |
|---|---|---|
| ts | ISO 8601 string | UTC timestamp of the signal |
| country | ISO 3166-1 alpha-2 | Country (geo-IP, no IP stored) |
| os_family | enum | android | windows | ios |
| os_version_bucket | string | Major version only: android-14, windows-11 |
| device_class | enum | phone | tablet | desktop |
| connection_type | enum | wifi | cellular | ethernet |
| network_speed_tier | enum | <10 | 10-50 | 50-100 | 100-500 | 500+ Mbps |
| battery_state | enum | charging | high | medium | low |
| isp_type | enum | residential | cellular | business | unknown |
| ipv6_capable | boolean | Device has IPv6 connectivity |
| app_version | string | Dreamcore app version string |
| plan | enum | User VPN plan tier: free | basic | pro | premium |
| hour_of_day | integer 0-23 | UTC hour of signal |
| day_of_week | integer 0-6 | 0=Sunday, 6=Saturday |
{
"ts": "2026-04-21T18:32:07Z",
"country": "US",
"os_family": "android",
"os_version_bucket": "android-14",
"device_class": "phone",
"connection_type": "wifi",
"network_speed_tier": "100-500",
"battery_state": "charging",
"isp_type": "residential",
"ipv6_capable": true,
"app_version": "1.4.2",
"plan": "free",
"hour_of_day": 18,
"day_of_week": 1
}Start free. Scale as you grow. No hidden fees.
All paid plans require a signed Data Processing Agreement. Monthly limits reset on the 1st of each month.
Questions? [email protected]
Simple REST API. Authentication via X-API-Key header.
/api/data-marketplace/applyRegister and get your API key instantly
/api/data-marketplace/feedDataset A: Web Traffic Intelligence — paginated + filtered
/api/data-marketplace/devicesDataset B: Device Environment Signals — paginated
/api/data-marketplace/aggregatePre-computed breakdowns by country, category, OS, etc.
/api/data-marketplace/webhookConfigure push delivery to your HTTPS endpoint
/api/data-marketplace/pipeline/s3Automated encrypted S3 batch delivery
/api/data-marketplace/statsQuota usage + dataset coverage metadata
/feed| Parameter | Type | Default | Description |
|---|---|---|---|
| limit | integer | 1000 | Records per page. Max: 5,000 |
| cursor | integer | 0 | Unix timestamp from next_cursor of previous response |
| category | string | all | Filter: social | streaming | shopping | gaming | finance | tech | news | other |
| country | string | all | Filter by ISO 3166-1 alpha-2 country code (e.g. US, DE, GB) |
| plan | string | all | Filter by user plan tier: free | basic | pro | premium |
| hour | integer 0-23 | all | Filter by UTC hour of day — great for peak-hour analysis |
| day_of_week | integer 0-6 | all | Filter by day of week (0=Sun, 6=Sat) |
| https_only | 1 or omit | off | Set to 1 to return only HTTPS (port 443) connections |
| date_from | ISO 8601 date | all time | Filter records on or after this date, e.g. 2026-01-01 |
| date_to | ISO 8601 date | all time | Filter records on or before this date, e.g. 2026-12-31 |
# Start your free trial → get an API key instantly, then: # 1. Fetch your first 100 records curl -H "X-API-Key: dk_trial_YOUR_KEY" \ "https://api.getdreamcore.com/api/data-marketplace/feed?limit=100" # 2. Filter by category curl -H "X-API-Key: dk_trial_YOUR_KEY" \ "https://api.getdreamcore.com/api/data-marketplace/feed?category=streaming&limit=500" # 3. Filter by country curl -H "X-API-Key: dk_trial_YOUR_KEY" \ "https://api.getdreamcore.com/api/data-marketplace/feed?country=US&limit=1000" # 4. Paginate using cursor (timestamp of last record) curl -H "X-API-Key: dk_trial_YOUR_KEY" \ "https://api.getdreamcore.com/api/data-marketplace/feed?cursor=1745264327&limit=5000" # 5. Check your usage quota curl -H "X-API-Key: dk_trial_YOUR_KEY" \ "https://api.getdreamcore.com/api/data-marketplace/stats"
/devices| Parameter | Type | Default | Description |
|---|---|---|---|
| limit | integer | 1000 | Records per page. Max: 5,000 |
| cursor | integer | 0 | Unix timestamp from next_cursor of previous response |
| country | string | all | ISO 3166-1 alpha-2 country code |
| os_family | string | all | Filter: android | windows | ios |
| connection_type | string | all | Filter: wifi | cellular | ethernet |
| isp_type | string | all | Filter: residential | cellular | business | unknown |
| device_class | string | all | Filter: phone | tablet | desktop |
| date_from | ISO 8601 date | all time | Filter signals on or after this date |
| date_to | ISO 8601 date | all time | Filter signals on or before this date |
/aggregateReturns pre-computed group counts — does not consume your monthly record quota. Ideal for dashboards, trend analysis, and exploratory queries before pulling raw records.
GET /api/data-marketplace/aggregate
X-API-Key: <your-key>
?group_by=category # country | category | hour_of_day | day_of_week | is_https
&dataset=web_traffic # web_traffic | device_signals
&country=US # optional filter
&date_from=2026-01-01 # optional date range
&date_to=2026-03-31
# Response:
{ "group_by": "category", "rows": [
{ "group_value": "streaming", "count": 1482930 },
{ "group_value": "social", "count": 902441 },
...
] }/webhookInstead of polling the feed, configure a webhook URL and Dreamcore will POST new records to your endpoint in batches every 5 minutes. Ideal for real-time pipelines. Supports an optional HMAC-SHA256 signature secret for payload verification.
POST /api/data-marketplace/webhook
X-API-Key: <your-key>
Content-Type: application/json
{ "url": "https://your-server.com/dreamcore-hook",
"secret": "optional-hmac-secret",
"enabled": true }
# Dreamcore will POST batches to your URL with header:
# X-Dreamcore-Signature: sha256=<hmac>{
"count": 1000,
"next_cursor": 1745264327,
"has_more": true,
"records": [
{
"ts": "2026-04-21T18:32:07Z",
"domain": "youtube.com",
"category": "streaming",
"country": "US",
"port": 443,
"is_https": true,
"hour_of_day": 18,
"day_of_week": 1,
"plan": "premium"
}
],
"_meta": {
"records_this_month": 5000,
"monthly_limit": 10000,
"remaining": 5000
}
}Every aspect of Dreamcore's data collection and distribution is designed from the ground up for full compliance with the world's strictest data protection laws.
Collected under informed user consent (Art. 6(1)(a)). No personal data. Users can opt out. Data Buyers must sign DPA.
No personal information sold. Aggregate, de-identified data only. Consumers retain opt-out rights.
Consent-based collection. No biometric or sensitive data. Users may withdraw consent.
Anonymized aggregate data. No individual tracking. PDPC-compliant data processing.
Purpose-limited collection. Consent at registration. No re-identification possible.
No PII: no IP addresses, no user IDs, no device identifiers, no browsing history linked to any person.
Dreamcore's telemetry architecture is engineered so that de-identification is not a post-processing step — it is structurally impossible to generate an identifiable record. No user ID, no device ID, no IP address, no session ID, and no timestamp-user linkage is written to the telemetry table. Not even Dreamcore employees can re-identify telemetry records. This satisfies the GDPR recital 26 "cannot reasonably be identified" standard and is equivalent to anonymized data under CCPA.
Understand category consumption trends by region and demographic proxy (plan tier). Power consumer behavior reports.
Measure category demand signals by country. Identify peak engagement windows for streaming, social, and shopping.
Identify anomalous traffic patterns. Cross-reference domain activity with risk models.
High-quality, clean behavioral signal data for training recommendation, intent, and classification models.
Alternative data signals for tracking consumer spending intent — shopping and finance category activity by country.
Study real-world internet usage patterns. Peer-reviewed research on digital behavior. Free trial covers most research datasets.
No — and this is by design. Records contain zero user identifiers, zero IP addresses, and zero device IDs. The dataset is structurally de-identified. Even Dreamcore itself cannot link a record back to an individual user.
Yes, when used for lawful research, analytics, market intelligence, or product development. All records are fully anonymized under GDPR, CCPA, LGPD, PIPEDA, and PDPA standards. Buyers must agree to our Data Processing Agreement and use data only for the declared purpose.
The feed is near-real-time. Records are typically available within seconds of collection. For bulk historical pulls, all data since platform launch is available.
Each record contains a Unix timestamp used as a cursor. Pass the `next_cursor` value from one response as `cursor` in your next request to page through the dataset without gaps or duplicates.
You may use the data to build analytics products, train models, or provide insights to your customers — but you may not re-sell the raw records as-is to third parties. See the Data Processing Agreement for full permitted use terms.
The API returns HTTP 429 with a clear error message. Your counter resets on the 1st of each month. You can upgrade your plan or contact [email protected] for an immediate limit increase.
The free trial requires only a company name and email. Paid plans require a Data Processing Agreement signature. Individual researchers and academics may apply on a case-by-case basis.
Apply below and choose the Trial plan. Your API key is issued instantly — no wait, no review. Start pulling data in under 60 seconds.
Trial plan: instant key, no review. Paid plans: reviewed within 24h.