---
title: "Bulk Cross-Frontend Attribution"
method: GET
path: "/api/v1/attribution"
tags: ["Core Data"]
---

# Bulk Cross-Frontend Attribution

`GET /api/v1/attribution`

## Request

- Base URL: `https://cleartracedata.com` (the document declares no server; this is the origin it was published from)
- URL: `https://cleartracedata.com/api/v1/attribution`
- Auth: none declared

**Public API: Bulk export of the Cross-Frontend Attribution Engine.**

This endpoint exposes our core dataset. It provides aggregated volumes for every contract we have analyzed, broken down by our 4 attribution vectors.

## Query parameters

- `chain` string: Filter by blockchain (ethereum, base, arbitrum, optimism).
- `project` string: Filter by project or contract name (e.g., '1inch').
- `limit` integer: Maximum number of records to return.
- `offset` integer: Pagination offset.

## Response `200`

Access the raw aggregated attribution data.

- AttributionResponse
  - `records` AttributionRecord[], required: Paginated list of attribution records.
    - `resolved_contract_name` string, required: The identified project, contract name, or unknown entity.
    - `blockchain` string, required: The blockchain network.
    - `total_volume_usd` number, required: Total USD volume attributed to this contract. This is the sum of the four PARTITION columns (`aggregator_partner_volume_usd`, `aggregator_volume_usd`, `direct_volume_usd`, `proxy_volume_usd`) and deliberately EXCLUDES the overlay columns (`calldata_suffix_volume_usd`, `erc20_fee_volume_usd`), so summing every volume field double-counts.
    - `aggregator_partner_volume_usd` number, required: Volume explicitly tagged with an aggregator partner code. Partition column: this and `aggregator_volume_usd`, `direct_volume_usd` and `proxy_volume_usd` sum to `total_volume_usd`.
    - `aggregator_volume_usd` number, required: Standard aggregator volume. Partition column: this and `aggregator_volume_usd`, `direct_volume_usd` and `proxy_volume_usd` sum to `total_volume_usd`.
    - `calldata_suffix_volume_usd` number, required: Volume attributed via calldata suffix fingerprinting. OVERLAY, not a component of `total_volume_usd`: it re-describes dollars already counted in the partition columns, seen through a different attribution vector, and is deliberately excluded from the total. It may therefore EXCEED `total_volume_usd`, which is correct and not a bug. Never add it to a partition column: that double-counts.
    - `direct_volume_usd` number, required: Volume routed directly to DEX pools. Partition column: this and `aggregator_volume_usd`, `direct_volume_usd` and `proxy_volume_usd` sum to `total_volume_usd`.
    - `erc20_fee_volume_usd` number, required: Volume attributed via secondary fee transfers: the fee-kickback vector credits the full trade amount to every intermediate transfer recipient in a transaction, so pools, vaults and multisigs accumulate large figures without being swap venues. OVERLAY, not a component of `total_volume_usd`: it re-describes dollars already counted in the partition columns, seen through a different attribution vector, and is deliberately excluded from the total. It may therefore EXCEED `total_volume_usd`, which is correct and not a bug. Never add it to a partition column: that double-counts.
    - `proxy_volume_usd` number, required: Volume routed through an unverified proxy before hitting DEX pools. Partition column: this and `aggregator_volume_usd`, `direct_volume_usd` and `proxy_volume_usd` sum to `total_volume_usd`.
  - `total` integer, required: Total number of matching records.
  - `limit` integer, required: The maximum number of records returned.
  - `offset` integer, required: The offset used for pagination.

---

[API](https://skmtc.dev/cleartracedata/apis/cleartrace-api.md) · [All operations](https://skmtc.dev/cleartracedata/apis/cleartrace-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cleartracedata/apis/cleartrace-api/revisions/2073a5a38ab5?raw)
