Skip to content

Article

Analytics Exports and Reconciliation

Query analytics, export data, and understand how metrics are calculated and aggregated.

Article Docs 10xDotIn Developer Docs
10X Docs
Query analytics, export data, and understand how metrics are calculated and aggregated.
Review intent

Query analytics, export data, and understand how metrics are calculated and aggregated.

Make the next growth move easier to approve.

Query analytics, export data, and understand how metrics are calculated and aggregated.

Analytics Exports and Reconciliation

Use this guide to query analytics, export data, and understand how metrics are calculated and aggregated.

When to use

  • You want to export click or conversion data for reporting.
  • You need to understand what a metric means and how it is calculated.
  • You want to know why analytics numbers may differ from other sources.

Available dimensions

DimensiongroupBy valueWhat it shows
Time seriesdayClick counts per day
LinkslugClicks per link slug
CountrycountryClicks by ISO country code
DevicedeviceClicks by MOBILE, TABLET, DESKTOP, BOT, UNKNOWN
ReferrerreferrerClicks by referring domain (or "direct")
SegmentsegmentClicks by visitor behavior segment
AI crawlerai_crawlerTraffic broken down by crawler/bot family
AI referrerai_referrerVisits attributed to AI assistants and answer engines

Metric definitions

MetricDefinition
clicksTotal redirect events (HTTP 302/307 responses)
qualifiedClicksClicks minus bot clicks
botClicksClicks from detected bot user agents
conversionsPost-click events ingested via POST /v2/public/conversions
impressionsIntent observation events (segment analytics only)
revenueSum of value fields from conversion payloads

Freshness

Analytics are aggregated from CloudFront real-time logs. The target latency is under 60 minutes.

Each response includes a freshness block:

{
  "freshness": {
    "status": "FRESH",
    "lastUpdatedAt": "2026-02-25T12:05:00Z",
    "slaMinutes": 60
  }
}
StatusMeaning
FRESHUpdated within the last 60 minutes
STALEOlder than 60 minutes
UNKNOWNNo data available yet

Confidence score

When ?confidence=true is passed, the response includes a confidence score (0-100) based on:

  • Whether any clicks exist
  • Whether conversions exceed clicks (anomaly)
  • Bot traffic ratio
  • Data staleness

Higher scores indicate more reliable data.

UI path

  1. Open https://app.10x.in.
  2. Navigate to your handle and open Analytics.
  3. Choose a dimension (slug, country, device, referrer, segment).
  4. Optionally filter by date range or campaign.
  5. Use the Export button to download CSV or JSON.

Required auth

  • CREATOR-level JWT or above to query analytics.
  • PAT with analytics.* scope for automation.
  • PRO or ENTERPRISE plan required for exports (exports feature gate).

API fallback

Query analytics with JWT

GET /v2/handles/{handle}/analytics

Use this control-plane route when you are authenticated with a JWT from the app.

Query parameters:

  • groupBy (required): day, slug, country, device, referrer, segment, ai_crawler, ai_referrer
  • fromDay, toDay (optional): Date range in yyyymmdd format
  • campaignId (optional): Filter to a specific campaign
  • slug (optional): Filter to a specific link
  • confidence (optional): Include confidence score
  • funnel (optional): Include funnel metrics
  • sort (optional): asc or desc

Query analytics with PAT

GET /v2/public/handles/{handle}/analytics

Use this public-handle automation route when you authenticate with a PAT that includes analytics.*.

Query parameters:

  • groupBy (required): day, slug, country, device, referrer, segment, ai_crawler, ai_referrer
  • fromDay, toDay (optional): Date range in yyyymmdd format
  • campaignId (optional): Filter to a specific campaign
  • slug (optional): Filter to a specific link
  • confidence (optional): Include confidence score
  • funnel (optional): Include funnel metrics
  • sort (optional): asc or desc

Export analytics with JWT

GET /v2/handles/{handle}/analytics/export

Use this control-plane export route when you are authenticated with a JWT and your plan includes exports.

Export analytics with PAT

GET /v2/public/handles/{handle}/analytics/export

Use this public-handle export route when you authenticate with a PAT that includes analytics.*.

Shared query parameters for both export routes:

  • format: json or csv
  • groupBy: Same options as above
  • fromDay, toDay: Date range
  • campaignId: Optional campaign filter

Requires PRO or ENTERPRISE plan.

Submit a conversion

POST /v2/public/conversions

{
  "ctx": "signed_context_token",
  "eventType": "conversion",
  "idempotencyKey": "unique_key",
  "value": 99.99,
  "currency": "USD"
}

The ctx token is minted at redirect time and must be submitted within its TTL (default 15 minutes). Duplicate submissions with the same idempotencyKey are safely deduplicated.

Rate limit: 120 conversions per IP per hour.

Reconciliation notes

  • Click counts come from CloudFront logs, not from application-level records. This means analytics reflect actual network-level redirect events.
  • Dimension rollups are forward-only. Country, device, and referrer breakdowns are only available from the date dimension tracking was enabled.
  • Conversions require a valid ctx token. If the context token has expired, the conversion cannot be attributed. This means total clicks will typically be higher than attributable conversions.
  • Duplicate conversions are deduplicated by idempotency key. Replaying the same conversion does not double-count.
  • Bot detection filters known user agents but cannot catch all automated traffic. The botClicks metric provides transparency.
  • Rollup counts are approximate. The at-least-once delivery model means occasional recounts during retries.

Common errors

CodeErrorCause
400invalid_group_byUnrecognized groupBy value
400invalid_ctxContext token expired or malformed
403feature_lockedExport requires PRO plan
429rate_limitedConversion ingestion rate limit exceeded

Related:

Review system

What 10X checks

These checks sit after the main explanation so a reviewer can scan the evidence requirements without breaking the article flow.

Evidence checks

Questions to answer

  • Decisiondocs
    What decision should this article help the team make?

Evidence inputs

Data sources that must stay attached

These inputs keep the recommendation grounded before anyone changes the page, campaign, query target, CRM step, or growth priority.

  • 10xDotIn Docs
  • Docs Publishing with Codex
  • API Endpoint Coverage Map
  • API Auth and Error Model
  • Error Code Reference
  • API Tokens and Automations
  • JWT vs PAT: When to Use Each
  • JWT Skill Management
  • Time-Based Short Link Redirects
  • Agentic Pages

FAQ

Questions before using it

FAQ rows sit near the end, where they help unblock the next action without interrupting the diagnostic flow.

When should I use this article?

Use it before approving growth work that needs evidence, ownership, and a clear next action.

10X

Use 10X with the docs open

Keep product context attached while you review growth work.

Open 10X ->