API Docs
AmericanCrypto MEV API
Introduction
AmericanCrypto exposes a JSON-over-HTTPS API for MEV event lookup, aggregate stats, and leaderboard-style ranking queries. Supported event types include arbitrage, sandwich, and liquidation. The current production dataset is focused on Ethereum Mainnet (chain_id=1).
Base URL
https://api.americancrypto.net/api
Auth model
Public docs live without a key, but direct /v1/* API calls expect an apikey header.
Typical workflow
- Subscribe to a paid plan and create an API key from your account dashboard.
- Use /v1/key/info to inspect your active plan and remaining quota from code.
- Use /v1/meta to inspect supported filters and capabilities.
- Use /v1/events for raw event retrieval (arbitrage, sandwich, liquidation) and /v1/stats/* for dashboards.
- Use Swagger or /openapi.json when you want schema-level detail.
Versioning policy
Breaking changes ship only under a new versioned path such as /v2. Additive changes, such as new optional fields or new endpoints, may be introduced within /v1.
Deprecation policy
Deprecated fields and endpoints are announced before removal, supported for at least 30 days, and will emit Deprecation and Sunset headers before retirement.
Setting up your API Key
API keys are account-scoped and are managed from the account area after signup. Once your subscription is active and your email is verified, create a key under the API Keys section.
Request header format
curl -s "https://api.americancrypto.net/api/v1/health" \
-H "Accept: application/json" \
-H "apikey: YOUR_API_KEY"Plan and quota introspection
curl -s "https://api.americancrypto.net/api/v1/key/info" \
-H "Accept: application/json" \
-H "apikey: YOUR_API_KEY"Key handling guidance
- Prefer server-side storage for production apps rather than exposing user keys in browser code.
- Rotate keys immediately if you suspect leakage or no longer know the full value.
- Each account plan includes a fixed number of keys; limits remain account-wide.
Account prerequisites
- Active paid subscription
- Verified email address
- Not canceled / unpaid / paused in billing status
Common Errors & Rate Limit
400
Invalid query
Usually caused by unsupported bucket values, invalid sort / by parameters, or malformed filters.
401
Unauthorized
Returned when the request is missing an API key or the supplied API key is invalid.
403
Forbidden
Returned when your subscription is inactive, your email is unverified, or the requested history / range exceeds your plan.
404
Not found
Returned for missing event ids or lookup-style endpoints with no matching records.
429
Rate limited
Returned when account-level minute throughput, daily quota, or one-in-flight request limits are exceeded.
5xx
Server / upstream issue
Transient backend, database, or gateway issue. Retry with backoff and monitor the Status page.
Error envelope
Application-level errors return a consistent JSON envelope with an error code, message, and request_id. The same request id is also returned in the x-request-id response header.
{
"error": {
"code": "forbidden",
"message": "Subscription inactive. Please renew your subscription to continue API access."
},
"request_id": "809d767b4e16f7260bf7571282932423"
}Rate limit guidance
Rate limits and daily quotas are plan-based and enforced per consumer across all keys on the account. Build client-side caching where possible, follow the polling cadence returned by /v1/meta, and avoid polling broad event ranges at high frequency. If you exceed limits, wait for reset or upgrade to a higher plan.
Concurrent-request limits are account-wide and plan-based: Starter allows 2, Pro 10, and Business 25 requests in flight. Read X-Concurrency-Limit on API responses and queue excess work; rejected overlaps return 429with Retry-After and do not consume request quota.
meta
Discovery and platform metadata endpoints used for capability checks, health probes, and schema tooling.
/v1/health
Health check
Checks that the API is reachable and that the backing database responds to a simple query.
Authorization
API key required via apikey header.
Response shape
status
string
Always returns "ok" when the request succeeds.
db_ok
boolean
True when the database probe succeeds.
api_version
string
Current API version string.
Notes
- Useful for uptime probes and deployment checks.
- This endpoint is served under /v1, so direct external access still expects a valid API key.
Example cURL
curl -s "https://api.americancrypto.net/api/v1/health" \
-H "Accept: application/json" \
-H "apikey: YOUR_API_KEY"Example output
{
"status": "ok",
"db_ok": true,
"api_version": "v1"
}/v1/meta
Discovery metadata
Returns supported filters, sorting, observed protocol ids, payload toggles, and stats endpoint hints.
Authorization
API key required via apikey header.
Response shape
ranges
object
Observed min/max block number and block timestamp in the dataset.
freshness
object
Current dataset as-of point, lag estimate, cache policy, and recommended polling cadence.
event_types
array
Distinct event types observed in the dataset with counts (e.g. arbitrage, sandwich, liquidation).
filters.supported
string[]
List of filter names supported by public event and stats queries.
filters.notes
object
Short guidance for filters with special semantics, such as pricing_status and array membership filters.
sorting.allowed_sort_fields
string[]
Allowed sort fields for /v1/events.
payload_fields
object
Which large payload sections can be included or excluded.
auth
object
API key header name plus the /v1/key/info introspection hint.
versioning
object
Formal versioning, compatibility, and deprecation policy for the public API.
stats
object
Stats endpoint list and special rules such as allowed buckets and top-bots by values.
observed
object
Observed high-frequency ids from the current dataset, such as top protocol ids.
Notes
- Use this endpoint when generating client-side filter UIs or validating query capabilities.
- The supported include / exclude payload keys are labels and flow_metadata.
- This endpoint intentionally exposes product metadata, not internal storage table names.
Example cURL
curl -s "https://api.americancrypto.net/api/v1/meta" \
-H "Accept: application/json" \
-H "apikey: YOUR_API_KEY"Example output
{
"ranges": {
"block_number": {
"min": 19123456,
"max": 22199888
},
"block_timestamp": {
"min": 1710000000,
"max": 1770000000
}
},
"freshness": {
"data_as_of_block_number": 22199888,
"data_as_of_block_timestamp": 1770000000,
"data_lag_seconds": 22,
"cache_policy": {
"/v1/health": "no-store",
"/v1/key/info": "no-store",
"/v1/meta": "private, max-age=300, stale-while-revalidate=300",
"/v1/events": "private, max-age=15, stale-while-revalidate=15",
"/v1/stats/*": "private, max-age=30, stale-while-revalidate=30"
},
"polling_guidance_seconds": {
"meta": 300,
"events": 15,
"stats": 30
}
},
"event_types": [
{
"event_type": "arbitrage",
"n": 182340
},
{
"event_type": "sandwich",
"n": 24510
},
{
"event_type": "liquidation",
"n": 8920
}
],
"sorting": {
"allowed_sort_fields": [
"block_number",
"block_timestamp",
"event_confidence",
"gas_fees_usd",
"mev_revenue_usd",
"profit_after_inclusion_usd",
"public_event_id",
"tx_index"
],
"default_sort": "public_event_id",
"default_order": "desc",
"cursor_supported_when_sort": [
"block_number",
"block_timestamp",
"event_confidence",
"gas_fees_usd",
"mev_revenue_usd",
"profit_after_inclusion_usd",
"public_event_id",
"tx_index"
],
"cursor_format": "Opaque string token returned as next_cursor; reuse it with the same filters, sort, and order."
},
"filters": {
"supported": [
"chain_id",
"event_type",
"tx_hash",
"block_number",
"block_number_gte",
"block_number_lte",
"block_timestamp_gte",
"block_timestamp_lte",
"tx_index",
"bot_address",
"pricing_status",
"min_confidence",
"max_confidence",
"min_profit_usd",
"max_profit_usd",
"min_mev_revenue_usd",
"max_mev_revenue_usd",
"min_gas_fees_usd",
"max_gas_fees_usd",
"protocol_id",
"pool_uid",
"token_address"
],
"notes": {
"pricing_status": "Filters to pricing_status = value. Allowed values: priced, unpriced_outflow, no_price_data.",
"min_confidence": "Filters to event_confidence >= min_confidence (NULL confidences do not match).",
"min_profit_usd": "Filters on profit_after_inclusion_usd column.",
"array_membership": "protocol_id/pool_uid/token_address filters use array membership (GIN-friendly). pool_uid uses the backend's raw lowercase identifier: a 42-char pool address for contract-per-pool venues or a 66-char raw pool_id for singleton-hosted venues."
}
},
"payload_fields": {
"toggleable": [
"labels",
"flow_metadata"
],
"default_include": [
"labels",
"flow_metadata"
],
"controls": {
"include": "include=labels&include=flow_metadata",
"exclude": "exclude=labels"
}
},
"limits": {
"max_limit": 500,
"endpoint_overrides": {
"/v1/events": {
"default_limit": 5,
"max_limit": 5
},
"/v1/tx/{tx_hash}/events": {
"default_limit": 5,
"max_limit": 5
},
"/v1/blocks/{block_number}/events": {
"default_limit": 5,
"max_limit": 5
},
"/v1/bots/{bot_address}/events": {
"default_limit": 5,
"max_limit": 5
},
"/v1/stats/timeseries": {
"default_limit": 100,
"max_limit": 500
},
"/v1/stats/top-bots": {
"default_limit": 50,
"max_limit": 500
},
"/v1/stats/top-tokens": {
"default_limit": 50,
"max_limit": 500
},
"/v1/stats/top-protocols": {
"default_limit": 50,
"max_limit": 500
},
"/v1/stats/top-pools": {
"default_limit": 50,
"max_limit": 500
}
}
},
"auth": {
"api_key_header": "apikey",
"key_info_endpoint": "/v1/key/info",
"usage_scope": "consumer",
"usage_scope_note": "Rate limits and daily quotas are enforced per consumer, so usage is shared across all keys on the account."
},
"versioning": {
"current_version": "v1",
"stability": "ga",
"breaking_change_policy": "Breaking changes are introduced only under a new versioned path such as /v2.",
"additive_change_policy": "New optional fields and new endpoints may be added within v1 without notice.",
"deprecation_policy": "Deprecated fields and endpoints are announced before removal and are supported for at least 30 days.",
"sunset_headers_policy": "Deprecated endpoints will emit Deprecation and Sunset headers before removal."
},
"stats": {
"endpoints": [
"/v1/stats/overview",
"/v1/stats/timeseries",
"/v1/stats/top-bots",
"/v1/stats/top-tokens",
"/v1/stats/top-protocols",
"/v1/stats/top-pools"
],
"filters_supported": [
"chain_id",
"event_type",
"block_number_gte",
"block_number_lte",
"block_timestamp_gte",
"block_timestamp_lte",
"pricing_status",
"min_confidence",
"protocol_id",
"pool_uid",
"token_address"
],
"timeseries": {
"bucket_allowed": [
"day",
"hour"
],
"limit_is_bucket_count": true
},
"top_bots": {
"by_allowed": [
"event_count",
"mev_revenue_usd",
"profit_after_inclusion_usd"
]
},
"examples": {
"overview_profit_last_hour": "/v1/stats/overview?block_timestamp_gte=<unix_now-3600>&min_confidence=0.6",
"timeseries_daily": "/v1/stats/timeseries?bucket=day&block_timestamp_gte=<unix_start>&block_timestamp_lte=<unix_end>",
"top_bots_profit": "/v1/stats/top-bots?by=profit_after_inclusion_usd&limit=25&min_confidence=0.6"
}
},
"observed": {
"top_protocols": [
{
"protocol_id": "uniswap_v3",
"n": 182340
},
{
"protocol_id": "curve_v2",
"n": 48120
}
]
}
}/v1/key/info
API key info
Returns the authenticated consumer's plan, account-wide quota scope, and current minute/day usage.
Authorization
API key required via apikey header.
Response shape
usage_scope
string
API quota scope. "consumer" means usage is shared across all keys on the account.
consumer.username
string
Authenticated Kong consumer username.
consumer.key_count
integer
How many active API keys currently exist on the account.
plan
object
Current throughput, concurrency, included-key, history, and window limits.
usage
object
Current minute/day usage and reset countdown as observed from the API quota counters.
Notes
- Usage is consumer-wide, not per individual key.
- Use this endpoint when you need to inspect remaining quota from an API client without logging into the website.
Example cURL
curl -s "https://api.americancrypto.net/api/v1/key/info" \
-H "Accept: application/json" \
-H "apikey: YOUR_API_KEY"Example output
{
"api_version": "v1",
"usage_scope": "consumer",
"consumer": {
"username": "acct-jane-doe-a1b2c3d4",
"key_count": 2
},
"plan": {
"name": "pro",
"rpm": 300,
"rpd": 25000,
"concurrency": 10,
"keys_included": 2,
"max_window_days": 90,
"history_days": null,
"unrestricted": false
},
"usage": {
"minute_limit": 300,
"minute_remaining": 287,
"minute_used": 13,
"day_limit": 25000,
"day_remaining": 24911,
"day_used": 89,
"reset_seconds": 18,
"updated_at": "2026-03-06T15:43:21Z"
}
}/openapi.json
OpenAPI schema
Returns the machine-readable OpenAPI specification for the API.
Authorization
No API key required.
Response shape
openapi
string
OpenAPI schema version.
info
object
API title and version metadata.
paths
object
Endpoint definitions used by Swagger UI and generated SDK tooling.
Notes
- Swagger UI uses this schema behind the scenes.
- The example output below is abridged for readability; the live schema includes all registered paths and components.
- This is the right source for code generation if you want typed SDKs later.
Example cURL
curl -s "https://api.americancrypto.net/api/openapi.json" \
-H "Accept: application/json"Example output
{
"openapi": "3.1.0",
"info": {
"title": "AmericanCrypto MEV Public API",
"version": "v1"
},
"components": {
"securitySchemes": {
"ApiKeyAuth": {
"type": "apiKey",
"in": "header",
"name": "apikey",
"description": "Enter a paid API key from your account dashboard."
}
}
},
"paths": {
"/v1/health": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
]
}
},
"/v1/meta": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
]
}
},
"/v1/key/info": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
]
}
},
"/v1/events": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
]
}
},
"/v1/events/{public_event_id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
]
}
},
"/v1/tx/{tx_hash}/events": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
]
}
},
"/v1/blocks/{block_number}/events": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
]
}
},
"/v1/bots/{bot_address}/events": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
]
}
},
"/v1/stats/overview": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
]
}
},
"/v1/stats/timeseries": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
]
}
},
"/v1/stats/top-bots": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
]
}
},
"/v1/stats/top-tokens": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
]
}
},
"/v1/stats/top-protocols": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
]
}
},
"/v1/stats/top-pools": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
]
}
}
}
}events
Event lookup and feed endpoints for MEV records (arbitrage, sandwich, liquidation), transaction drill-downs, and entity-based queries.
/v1/events
List events
Primary event feed endpoint. Returns arbitrage, sandwich, and liquidation events with filtering, sorting, cursor pagination, payload toggles, and range access rules based on the caller's plan.
Authorization
API key required via apikey header.
Query / path parameters
chain_id
integer
Optional
Chain id filter. Current production chain is Ethereum Mainnet (1).
event_type
string
Optional
Filter by event type. Supported values: arbitrage, sandwich, liquidation.
pricing_status
string
Optional
Filter by pricing status. Allowed values: priced, unpriced_outflow, no_price_data.
tx_hash
string
Optional
Exact transaction hash lookup. Standard public format is lowercase 0x + 64 hex chars.
block_number
integer
Optional
Exact block number filter.
block_number_gte / block_number_lte
integer
Optional
Block number range filters.
block_timestamp_gte / block_timestamp_lte
unix seconds
Optional
Timestamp window filters for most dashboard-style queries.
tx_index
integer
Optional
Exact transaction index filter within the block.
bot_address
string
Optional
Filter by bot address.
min_confidence
float
Optional
Only include events with confidence at or above this threshold (0 to 1).
max_confidence
float
Optional
Only include events with confidence at or below this threshold (0 to 1).
min_profit_usd / max_profit_usd
float
Optional
Range filter on profit_after_inclusion_usd.
min_mev_revenue_usd / max_mev_revenue_usd
float
Optional
Range filter on mev_revenue_usd.
min_gas_fees_usd / max_gas_fees_usd
float
Optional
Range filter on gas_fees_usd.
protocol_id / pool_uid / token_address
string
Optional
Array membership filters for protocol, pool, or token presence. pool_uid uses the backend's raw lowercase identifier: a 42-char pool address for contract-per-pool venues or a 66-char raw pool_id for singleton-hosted venues.
limit
integer
Optional
Items per page. Default 5, maximum 5.
cursor
string
Optional
Opaque cursor token returned as next_cursor for the next page.
sort / order
string
Optional
Sort field and direction. Default is public_event_id desc.
include / exclude
string[]
Optional
Toggle labels and flow_metadata in the payload.
Response shape
items
EventPublic[]
Array of matching public event objects.
next_cursor
string | null
Opaque cursor token for continuing with the same filters, sort, and order.
Notes
- Lookup-style queries without an explicit time range still respect your plan's history access rules.
- By default the endpoint includes labels and flow_metadata unless you exclude them.
- This endpoint defaults to 5 items and does not allow more than 5 per request.
Example cURL
curl -s "https://api.americancrypto.net/api/v1/events?chain_id=1&limit=5&sort=public_event_id&order=desc&include=labels&exclude=flow_metadata" \
-H "Accept: application/json" \
-H "apikey: YOUR_API_KEY"Example output
{
"items": [
{
"public_event_id": 63616,
"chain_id": 1,
"event_type": "arbitrage",
"tx_hash": "0x8e00eff5993378f7ed1920511558dd53baa83222639f7087c1d37a6c1de5b37c",
"block_number": 22094567,
"block_timestamp": 1772047080,
"tx_index": 12,
"bot_address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"mev_revenue_usd": "1420.44",
"gas_fees_usd": "52.13",
"gross_revenue_usd": "1420.44",
"direct_fee_recipient_payment_usd": "0.00",
"inclusion_cost_usd": "52.13",
"profit_after_inclusion_usd": "1368.31",
"pricing_status": "priced",
"event_confidence": "0.98",
"event_subtype": null,
"orderflow_hypothesis": null,
"package_summary": null,
"labels": {
"tokens": {
"native_eth": {
"token_address": "native_eth",
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": {
"token_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"name": "USD Coin",
"symbol": "USDC",
"decimals": 6
},
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": {
"token_address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"name": "Wrapped Ether",
"symbol": "WETH",
"decimals": 18
}
},
"pools": [
{
"pool_uid": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"pool_address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"protocol_id": "uniswap_v3",
"pool_name": "USDC / WETH 0.05%",
"token0": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"token1": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"created_block": 12376729,
"attributes": {
"fee": 500,
"tick_spacing": 10
}
}
],
"protocols": [
{
"protocol_id": "uniswap_v3",
"name": "uniswap_v3"
}
],
"addresses": {
"0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12": {
"address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"type": "bot_address",
"event_roles": [
"bot_address"
]
},
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640": {
"address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"label": "USDC / WETH 0.05%",
"type": "pool",
"protocol_id": "uniswap_v3",
"event_roles": [
"pool_addresses"
]
},
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": {
"address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"label": "USDC",
"type": "token",
"event_roles": [
"revenue_tokens"
]
}
},
"event": {
"event_type": "arbitrage",
"tx_hash": "0x8e00eff5993378f7ed1920511558dd53baa83222639f7087c1d37a6c1de5b37c",
"pool_count": 1,
"token_count": 3,
"role_count": 3
},
"event_roles": {
"bot_address": [
"0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12"
],
"pool_addresses": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
],
"revenue_tokens": [
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
]
},
"entity_summary": {
"searcher": {
"bot_address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12"
},
"address_roles": {
"bot_address": [
"0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12"
],
"pool_addresses": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
]
},
"token_roles": {
"revenue_tokens": [
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
]
},
"address_role_count": 2,
"token_role_count": 1,
"protocol_ids": [
"uniswap_v3"
],
"pool_uids": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
],
"token_addresses": [
"native_eth",
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
],
"top_tokens_by_abs_usd": [
{
"token": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"usd_value": "420.00",
"route": "inflow",
"venue": "uniswap_v3"
}
]
}
},
"protocol_ids": [
"uniswap_v3"
],
"pool_uids": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
],
"token_addresses": [
"native_eth",
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
],
"flow_metadata": null
}
],
"next_cursor": null
}/v1/events/{public_event_id}
Get a single event by public id
Fetches one event record by its public_event_id, with optional labels and flow metadata toggles.
Authorization
API key required via apikey header.
Query / path parameters
public_event_id
integer
Required
Path parameter identifying the event.
include / exclude
string[]
Optional
Toggle labels and flow_metadata sections.
Response shape
public_event_id
integer
Stable public identifier for the event.
event_type
string
Event type: arbitrage, sandwich, or liquidation.
event_subtype
string | null
Event subtype when applicable, e.g. aave_v3_liquidationcall for liquidations.
tx_hash
string
Canonical lowercase transaction hash with 0x prefix.
profit_after_inclusion_usd
decimal | null
Estimated profit after inclusion costs in USD.
pricing_status
string | null
Pricing status: priced, unpriced_outflow, no_price_data, or null when unavailable.
gross_revenue_usd
decimal | null
Gross MEV revenue before any cost deductions.
inclusion_cost_usd
decimal | null
Total inclusion cost (gas + builder tips) in USD.
event_confidence
decimal | null
Confidence score from 0 to 1 indicating detection certainty.
package_summary
object | null
Summary metadata for the event package. For sandwiches, includes victim_tx_count and related bundle info.
labels
LabelsPayload | null
Optional labels payload with tokens, pools, protocols, addresses, labels.event summary, event_roles, and sanitized entity_summary sections.
flow_metadata
object | null
Optional graph payload. Arbitrage and liquidation events usually expose available_scopes plus ref-indexed scopes; sandwich events use a per-leg structure with flow data under front, victims, and back.
Notes
- Returns 404 when the event is not found.
- History access is enforced even for direct id lookups.
- labels mirrors the public table structure: tokens, pools, protocols, addresses, event, event_roles, and sanitized entity_summary. entity_summary exposes pool_uids rather than the legacy pool_addresses root field.
- flow_metadata uses a shared flow_object_store that holds all nodes/edges/deltas/trades/tokens, and each scope references them by integer index via node_refs, edge_refs, etc. Available scopes are selected_scc (core subgraph) and full_tx (entire transaction).
- Sandwich events use a per-leg flow_metadata structure with flow data keyed under front, victims[], and back, each containing its own scopes.
Example cURL
curl -s "https://api.americancrypto.net/api/v1/events/63616?include=labels&include=flow_metadata" \
-H "Accept: application/json" \
-H "apikey: YOUR_API_KEY"Example output
{
"public_event_id": 63616,
"chain_id": 1,
"event_type": "arbitrage",
"tx_hash": "0x8e00eff5993378f7ed1920511558dd53baa83222639f7087c1d37a6c1de5b37c",
"block_number": 22094567,
"block_timestamp": 1772047080,
"tx_index": 12,
"bot_address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"mev_revenue_usd": "1420.44",
"gas_fees_usd": "52.13",
"gross_revenue_usd": "1420.44",
"direct_fee_recipient_payment_usd": "0.00",
"inclusion_cost_usd": "52.13",
"profit_after_inclusion_usd": "1368.31",
"pricing_status": "priced",
"event_confidence": "0.98",
"event_subtype": null,
"orderflow_hypothesis": null,
"package_summary": null,
"labels": {
"tokens": {
"native_eth": {
"token_address": "native_eth",
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": {
"token_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"name": "USD Coin",
"symbol": "USDC",
"decimals": 6
},
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": {
"token_address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"name": "Wrapped Ether",
"symbol": "WETH",
"decimals": 18
}
},
"pools": [
{
"pool_uid": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"pool_address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"protocol_id": "uniswap_v3",
"pool_name": "USDC / WETH 0.05%",
"token0": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"token1": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"created_block": 12376729,
"attributes": {
"fee": 500,
"tick_spacing": 10
}
}
],
"protocols": [
{
"protocol_id": "uniswap_v3",
"name": "uniswap_v3"
}
],
"addresses": {
"0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12": {
"address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"type": "bot_address",
"event_roles": [
"bot_address"
]
},
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640": {
"address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"label": "USDC / WETH 0.05%",
"type": "pool",
"protocol_id": "uniswap_v3",
"event_roles": [
"pool_addresses"
]
},
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": {
"address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"label": "USDC",
"type": "token",
"event_roles": [
"revenue_tokens"
]
}
},
"event": {
"event_type": "arbitrage",
"tx_hash": "0x8e00eff5993378f7ed1920511558dd53baa83222639f7087c1d37a6c1de5b37c",
"pool_count": 1,
"token_count": 3,
"role_count": 3
},
"event_roles": {
"bot_address": [
"0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12"
],
"pool_addresses": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
],
"revenue_tokens": [
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
]
},
"entity_summary": {
"searcher": {
"bot_address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12"
},
"address_roles": {
"bot_address": [
"0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12"
],
"pool_addresses": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
]
},
"token_roles": {
"revenue_tokens": [
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
]
},
"address_role_count": 2,
"token_role_count": 1,
"protocol_ids": [
"uniswap_v3"
],
"pool_uids": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
],
"token_addresses": [
"native_eth",
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
],
"top_tokens_by_abs_usd": [
{
"token": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"usd_value": "420.00",
"route": "inflow",
"venue": "uniswap_v3"
}
]
}
},
"flow_metadata": {
"available_scopes": [
"selected_scc",
"full_tx"
],
"flow_object_store": {
"nodes": [
{
"address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"label": "closest_point,anchor,tx_sender"
},
{
"address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"label": "emitter"
},
{
"address": "0x1111111254eeb25477b68fb85ed929f73a960582",
"label": "tx_to"
}
],
"net_deltas": [
{
"address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"deltas": {
"native_eth": -1000000000000000,
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": 420000000
}
}
],
"edges": [
{
"from": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"to": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"token": "native_eth",
"amount_raw": 1000000000000000,
"event_index": 7
},
{
"from": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"to": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"token": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"amount_raw": 420000000,
"event_index": 8
}
],
"trades": [
{
"protocol": "uniswap_v3",
"emitter": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"log_index": 28
}
],
"tokens": [
{
"token_address": "native_eth"
},
{
"token_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
}
]
},
"selected_scc": {
"scope": "selected_scc",
"anchor_used": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"closest_point": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"node_refs": [
0,
1
],
"net_delta_refs": [
0
],
"edge_refs": [
0,
1
],
"trade_refs": [
0
],
"token_refs": [
0,
1
]
},
"full_tx": {
"scope": "full_tx",
"anchor_used": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"closest_point": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"node_refs": [
0,
1,
2
],
"net_delta_refs": [
0
],
"edge_refs": [
0,
1
],
"trade_refs": [
0
],
"token_refs": [
0,
1
]
}
},
"protocol_ids": [
"uniswap_v3"
],
"pool_uids": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
],
"token_addresses": [
"native_eth",
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
]
}/v1/tx/{tx_hash}/events
Events by transaction hash
Returns up to 5 matched public events for a specific transaction hash, with opaque cursor paging in tx_index order.
Authorization
API key required via apikey header.
Query / path parameters
tx_hash
string
Required
Transaction hash path parameter. Standard public format is lowercase 0x + 64 hex chars.
pricing_status
string
Optional
Filter by pricing status. Allowed values: priced, unpriced_outflow, no_price_data.
limit
integer
Optional
Maximum number of matching events to return. Default 5, maximum 5.
cursor
string
Optional
Opaque cursor token returned as next_cursor for the next page.
include / exclude
string[]
Optional
Toggle labels and flow_metadata sections.
Response shape
items
EventPublic[]
Matching events for the transaction.
next_cursor
string | null
Opaque cursor token for continuing in tx_index order.
Notes
- Useful for powering transaction drill-down screens from a known hash.
Example cURL
curl -s "https://api.americancrypto.net/api/v1/tx/0x8e00eff5993378f7ed1920511558dd53baa83222639f7087c1d37a6c1de5b37c/events?include=labels&exclude=flow_metadata" \
-H "Accept: application/json" \
-H "apikey: YOUR_API_KEY"Example output
{
"items": [
{
"public_event_id": 63616,
"chain_id": 1,
"event_type": "arbitrage",
"tx_hash": "0x8e00eff5993378f7ed1920511558dd53baa83222639f7087c1d37a6c1de5b37c",
"block_number": 22094567,
"block_timestamp": 1772047080,
"tx_index": 12,
"bot_address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"mev_revenue_usd": "1420.44",
"gas_fees_usd": "52.13",
"gross_revenue_usd": "1420.44",
"direct_fee_recipient_payment_usd": "0.00",
"inclusion_cost_usd": "52.13",
"profit_after_inclusion_usd": "1368.31",
"pricing_status": "priced",
"event_confidence": "0.98",
"event_subtype": null,
"orderflow_hypothesis": null,
"package_summary": null,
"labels": {
"tokens": {
"native_eth": {
"token_address": "native_eth",
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": {
"token_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"name": "USD Coin",
"symbol": "USDC",
"decimals": 6
},
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": {
"token_address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"name": "Wrapped Ether",
"symbol": "WETH",
"decimals": 18
}
},
"pools": [
{
"pool_uid": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"pool_address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"protocol_id": "uniswap_v3",
"pool_name": "USDC / WETH 0.05%",
"token0": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"token1": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"created_block": 12376729,
"attributes": {
"fee": 500,
"tick_spacing": 10
}
}
],
"protocols": [
{
"protocol_id": "uniswap_v3",
"name": "uniswap_v3"
}
],
"addresses": {
"0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12": {
"address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"type": "bot_address",
"event_roles": [
"bot_address"
]
},
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640": {
"address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"label": "USDC / WETH 0.05%",
"type": "pool",
"protocol_id": "uniswap_v3",
"event_roles": [
"pool_addresses"
]
},
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": {
"address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"label": "USDC",
"type": "token",
"event_roles": [
"revenue_tokens"
]
}
},
"event": {
"event_type": "arbitrage",
"tx_hash": "0x8e00eff5993378f7ed1920511558dd53baa83222639f7087c1d37a6c1de5b37c",
"pool_count": 1,
"token_count": 3,
"role_count": 3
},
"event_roles": {
"bot_address": [
"0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12"
],
"pool_addresses": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
],
"revenue_tokens": [
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
]
},
"entity_summary": {
"searcher": {
"bot_address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12"
},
"address_roles": {
"bot_address": [
"0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12"
],
"pool_addresses": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
]
},
"token_roles": {
"revenue_tokens": [
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
]
},
"address_role_count": 2,
"token_role_count": 1,
"protocol_ids": [
"uniswap_v3"
],
"pool_uids": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
],
"token_addresses": [
"native_eth",
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
],
"top_tokens_by_abs_usd": [
{
"token": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"usd_value": "420.00",
"route": "inflow",
"venue": "uniswap_v3"
}
]
}
},
"protocol_ids": [
"uniswap_v3"
],
"pool_uids": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
],
"token_addresses": [
"native_eth",
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
],
"flow_metadata": null
}
],
"next_cursor": null
}/v1/blocks/{block_number}/events
Events by block number
Returns up to 5 events for a single block, with opaque cursor paging in tx_index order.
Authorization
API key required via apikey header.
Query / path parameters
block_number
integer
Required
Block number path parameter.
chain_id
integer
Optional
Chain id filter. Defaults to 1.
event_type
string
Optional
Optional event type filter. Supported values: arbitrage, sandwich, liquidation.
pricing_status
string
Optional
Filter by pricing status. Allowed values: priced, unpriced_outflow, no_price_data.
limit
integer
Optional
Maximum rows returned. Default 5, maximum 5.
cursor
string
Optional
Opaque cursor token returned as next_cursor for the next page.
include / exclude
string[]
Optional
Toggle labels and flow_metadata sections.
Response shape
items
EventPublic[]
Events in the requested block.
next_cursor
string | null
Opaque cursor token for continuing in tx_index order.
Notes
- Results are sorted by tx_index ascending.
Example cURL
curl -s "https://api.americancrypto.net/api/v1/blocks/22094567/events?chain_id=1&limit=5&include=labels&exclude=flow_metadata" \
-H "Accept: application/json" \
-H "apikey: YOUR_API_KEY"Example output
{
"items": [
{
"public_event_id": 63616,
"chain_id": 1,
"event_type": "arbitrage",
"tx_hash": "0x8e00eff5993378f7ed1920511558dd53baa83222639f7087c1d37a6c1de5b37c",
"block_number": 22094567,
"block_timestamp": 1772047080,
"tx_index": 12,
"bot_address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"mev_revenue_usd": "1420.44",
"gas_fees_usd": "52.13",
"gross_revenue_usd": "1420.44",
"direct_fee_recipient_payment_usd": "0.00",
"inclusion_cost_usd": "52.13",
"profit_after_inclusion_usd": "1368.31",
"pricing_status": "priced",
"event_confidence": "0.98",
"event_subtype": null,
"orderflow_hypothesis": null,
"package_summary": null,
"labels": {
"tokens": {
"native_eth": {
"token_address": "native_eth",
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": {
"token_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"name": "USD Coin",
"symbol": "USDC",
"decimals": 6
},
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": {
"token_address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"name": "Wrapped Ether",
"symbol": "WETH",
"decimals": 18
}
},
"pools": [
{
"pool_uid": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"pool_address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"protocol_id": "uniswap_v3",
"pool_name": "USDC / WETH 0.05%",
"token0": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"token1": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"created_block": 12376729,
"attributes": {
"fee": 500,
"tick_spacing": 10
}
}
],
"protocols": [
{
"protocol_id": "uniswap_v3",
"name": "uniswap_v3"
}
],
"addresses": {
"0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12": {
"address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"type": "bot_address",
"event_roles": [
"bot_address"
]
},
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640": {
"address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"label": "USDC / WETH 0.05%",
"type": "pool",
"protocol_id": "uniswap_v3",
"event_roles": [
"pool_addresses"
]
},
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": {
"address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"label": "USDC",
"type": "token",
"event_roles": [
"revenue_tokens"
]
}
},
"event": {
"event_type": "arbitrage",
"tx_hash": "0x8e00eff5993378f7ed1920511558dd53baa83222639f7087c1d37a6c1de5b37c",
"pool_count": 1,
"token_count": 3,
"role_count": 3
},
"event_roles": {
"bot_address": [
"0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12"
],
"pool_addresses": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
],
"revenue_tokens": [
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
]
},
"entity_summary": {
"searcher": {
"bot_address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12"
},
"address_roles": {
"bot_address": [
"0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12"
],
"pool_addresses": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
]
},
"token_roles": {
"revenue_tokens": [
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
]
},
"address_role_count": 2,
"token_role_count": 1,
"protocol_ids": [
"uniswap_v3"
],
"pool_uids": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
],
"token_addresses": [
"native_eth",
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
],
"top_tokens_by_abs_usd": [
{
"token": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"usd_value": "420.00",
"route": "inflow",
"venue": "uniswap_v3"
}
]
}
},
"protocol_ids": [
"uniswap_v3"
],
"pool_uids": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
],
"token_addresses": [
"native_eth",
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
],
"flow_metadata": null
}
],
"next_cursor": null
}/v1/bots/{bot_address}/events
Events by bot address
Returns events associated with a bot address across a requested time or block range.
Authorization
API key required via apikey header.
Query / path parameters
bot_address
string
Required
Bot address path parameter.
chain_id
integer
Optional
Optional chain filter.
event_type
string
Optional
Optional event type filter. Supported values: arbitrage, sandwich, liquidation.
pricing_status
string
Optional
Filter by pricing status. Allowed values: priced, unpriced_outflow, no_price_data.
block_timestamp_gte / block_timestamp_lte
unix seconds
Optional
Time window filters.
block_number_gte / block_number_lte
integer
Optional
Block window filters.
limit
integer
Optional
Items per page. Default 5, maximum 5.
cursor
string
Optional
Opaque cursor token returned as next_cursor for the next page.
sort / order
string
Optional
Sort field and direction.
include / exclude
string[]
Optional
Toggle labels and flow_metadata in the payload.
Response shape
items
EventPublic[]
Events matching the bot address and filters.
next_cursor
string | null
Opaque cursor token for continuing with the same filters, sort, and order.
Notes
- This endpoint enforces your plan's range window and history rules.
- Reuse the same filters, sort, and order when continuing with a cursor.
Example cURL
curl -s "https://api.americancrypto.net/api/v1/bots/0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12/events?chain_id=1&block_timestamp_gte=1771960680&block_timestamp_lte=1772047080&limit=5&include=labels&exclude=flow_metadata" \
-H "Accept: application/json" \
-H "apikey: YOUR_API_KEY"Example output
{
"items": [
{
"public_event_id": 63616,
"chain_id": 1,
"event_type": "arbitrage",
"tx_hash": "0x8e00eff5993378f7ed1920511558dd53baa83222639f7087c1d37a6c1de5b37c",
"block_number": 22094567,
"block_timestamp": 1772047080,
"tx_index": 12,
"bot_address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"mev_revenue_usd": "1420.44",
"gas_fees_usd": "52.13",
"gross_revenue_usd": "1420.44",
"direct_fee_recipient_payment_usd": "0.00",
"inclusion_cost_usd": "52.13",
"profit_after_inclusion_usd": "1368.31",
"pricing_status": "priced",
"event_confidence": "0.98",
"event_subtype": null,
"orderflow_hypothesis": null,
"package_summary": null,
"labels": {
"tokens": {
"native_eth": {
"token_address": "native_eth",
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": {
"token_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"name": "USD Coin",
"symbol": "USDC",
"decimals": 6
},
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": {
"token_address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"name": "Wrapped Ether",
"symbol": "WETH",
"decimals": 18
}
},
"pools": [
{
"pool_uid": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"pool_address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"protocol_id": "uniswap_v3",
"pool_name": "USDC / WETH 0.05%",
"token0": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"token1": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"created_block": 12376729,
"attributes": {
"fee": 500,
"tick_spacing": 10
}
}
],
"protocols": [
{
"protocol_id": "uniswap_v3",
"name": "uniswap_v3"
}
],
"addresses": {
"0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12": {
"address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"type": "bot_address",
"event_roles": [
"bot_address"
]
},
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640": {
"address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"label": "USDC / WETH 0.05%",
"type": "pool",
"protocol_id": "uniswap_v3",
"event_roles": [
"pool_addresses"
]
},
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": {
"address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"label": "USDC",
"type": "token",
"event_roles": [
"revenue_tokens"
]
}
},
"event": {
"event_type": "arbitrage",
"tx_hash": "0x8e00eff5993378f7ed1920511558dd53baa83222639f7087c1d37a6c1de5b37c",
"pool_count": 1,
"token_count": 3,
"role_count": 3
},
"event_roles": {
"bot_address": [
"0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12"
],
"pool_addresses": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
],
"revenue_tokens": [
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
]
},
"entity_summary": {
"searcher": {
"bot_address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12"
},
"address_roles": {
"bot_address": [
"0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12"
],
"pool_addresses": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
]
},
"token_roles": {
"revenue_tokens": [
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
]
},
"address_role_count": 2,
"token_role_count": 1,
"protocol_ids": [
"uniswap_v3"
],
"pool_uids": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
],
"token_addresses": [
"native_eth",
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
],
"top_tokens_by_abs_usd": [
{
"token": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"usd_value": "420.00",
"route": "inflow",
"venue": "uniswap_v3"
}
]
}
},
"protocol_ids": [
"uniswap_v3"
],
"pool_uids": [
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
],
"token_addresses": [
"native_eth",
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
],
"flow_metadata": null
}
],
"next_cursor": null
}stats
Aggregate and leaderboard endpoints used for overviews, time series charts, and ranked entity views.
/v1/stats/overview
Overview stats
Returns one aggregate summary row for a given filter set and time range.
Authorization
API key required via apikey header.
Query / path parameters
chain_id
integer
Optional
Chain id filter. Defaults to 1.
event_type
string
Optional
Optional event type filter. Supported values: arbitrage, sandwich, liquidation.
pricing_status
string
Optional
Filter by pricing status. Allowed values: priced, unpriced_outflow, no_price_data.
block_timestamp_gte / block_timestamp_lte
unix seconds
Optional
Requested time window.
block_number_gte / block_number_lte
integer
Optional
Optional block window.
min_confidence
float
Optional
Only include events above the given confidence threshold.
protocol_id / pool_uid / token_address
string
Optional
Optional protocol, pool, or token filters.
Response shape
filters
object
Echoes the effective filters applied after access enforcement.
overview.event_count
integer
Number of matching events.
overview.profit_after_inclusion_usd_sum
decimal
Total profit across the filtered set.
overview.mev_revenue_usd_sum
decimal
Total MEV revenue across the filtered set.
overview.inclusion_cost_usd_sum
decimal
Total inclusion cost across the filtered set.
overview.event_confidence_avg
decimal | null
Average event confidence across matched rows.
overview.block_number_min / overview.block_number_max
integer | null
Minimum and maximum block number across matched rows.
overview.block_timestamp_min / overview.block_timestamp_max
unix seconds | null
Minimum and maximum block timestamp across matched rows.
Notes
- Great for dashboard KPI cards and quick summary panels.
Example cURL
curl -s "https://api.americancrypto.net/api/v1/stats/overview?chain_id=1&block_timestamp_gte=1771960680&block_timestamp_lte=1772047080&pricing_status=priced&min_confidence=0.8" \
-H "Accept: application/json" \
-H "apikey: YOUR_API_KEY"Example output
{
"filters": {
"chain_id": 1,
"event_type": null,
"block_number_gte": null,
"block_number_lte": null,
"block_timestamp_gte": 1771960680,
"block_timestamp_lte": 1772047080,
"pricing_status": "priced",
"min_confidence": 0.8,
"protocol_id": null,
"pool_uid": null,
"token_address": null
},
"overview": {
"event_count": 1245,
"profit_after_inclusion_usd_sum": "802144.55",
"mev_revenue_usd_sum": "861233.77",
"inclusion_cost_usd_sum": "59089.22",
"event_confidence_avg": "0.94",
"block_number_min": 22081234,
"block_number_max": 22094567,
"block_timestamp_min": 1771960680,
"block_timestamp_max": 1772047080
}
}/v1/stats/timeseries
Timeseries
Returns bucketed aggregate points for charting over time.
Authorization
API key required via apikey header.
Query / path parameters
bucket
string
Optional
Bucket size. Allowed values are hour or day.
chain_id
integer
Optional
Chain id filter.
event_type
string
Optional
Optional event type filter. Supported values: arbitrage, sandwich, liquidation.
block_timestamp_gte / block_timestamp_lte
unix seconds
Optional
Requested time window.
block_number_gte / block_number_lte
integer
Optional
Optional block window.
pricing_status
string
Optional
Filter by pricing status. Allowed values: priced, unpriced_outflow, no_price_data.
min_confidence
float
Optional
Confidence threshold filter.
protocol_id / pool_uid / token_address
string
Optional
Optional entity filters.
limit
integer
Optional
Maximum bucket count returned. Default 100, maximum 500.
Response shape
filters
object
Echoes the effective filters and bucket used.
points[].t
unix seconds
Bucket start timestamp.
points[].event_count
integer
Matching event count for the bucket.
points[].profit_after_inclusion_usd_sum
decimal
Total bucket profit.
points[].mev_revenue_usd_sum
decimal
Total bucket MEV revenue.
points[].inclusion_cost_usd_sum
decimal
Total bucket inclusion cost.
points[].event_confidence_avg
decimal | null
Average event confidence for the bucket.
Notes
- If an unsupported bucket is supplied, the API returns HTTP 400.
- The limit is a bucket count. For hourly windows longer than 500 buckets, query smaller time windows sequentially.
Example cURL
curl -s "https://api.americancrypto.net/api/v1/stats/timeseries?chain_id=1&bucket=day&block_timestamp_gte=1769455449&block_timestamp_lte=1772047449&pricing_status=priced&limit=100" \
-H "Accept: application/json" \
-H "apikey: YOUR_API_KEY"Example output
{
"filters": {
"chain_id": 1,
"event_type": null,
"bucket": "day",
"block_timestamp_gte": 1769455449,
"block_timestamp_lte": 1772047449,
"pricing_status": "priced",
"block_number_gte": null,
"block_number_lte": null,
"min_confidence": null,
"protocol_id": null,
"pool_uid": null,
"token_address": null,
"limit": 100
},
"points": [
{
"t": 1769472000,
"event_count": 418,
"profit_after_inclusion_usd_sum": "284551.10",
"mev_revenue_usd_sum": "301994.65",
"inclusion_cost_usd_sum": "17443.55",
"event_confidence_avg": "0.93"
}
]
}/v1/stats/top-bots
Top bots
Ranks bot addresses by profit_after_inclusion_usd, mev_revenue_usd, or event_count over a filtered window.
Authorization
API key required via apikey header.
Query / path parameters
by
string
Optional
Sort metric. Allowed values are profit_after_inclusion_usd, mev_revenue_usd, or event_count.
chain_id
integer
Optional
Chain id filter.
event_type
string
Optional
Optional event type filter. Supported values: arbitrage, sandwich, liquidation.
block_timestamp_gte / block_timestamp_lte
unix seconds
Optional
Requested time window.
block_number_gte / block_number_lte
integer
Optional
Optional block window.
pricing_status
string
Optional
Filter by pricing status. Allowed values: priced, unpriced_outflow, no_price_data.
min_confidence
float
Optional
Confidence threshold filter.
protocol_id / pool_uid / token_address
string
Optional
Optional entity filters.
limit
integer
Optional
Maximum number of rows returned. Default 50, maximum 500.
cursor
string
Optional
Opaque cursor token returned as next_cursor for the next page.
Response shape
filters
object
Echoes the effective filters and selected ranking metric.
items[].bot_address
string
Bot address.
items[].event_count
integer
Number of events attributed to the bot.
items[].profit_after_inclusion_usd_sum
decimal
Total profit across the filtered window.
items[].mev_revenue_usd_sum
decimal
Total MEV revenue across the filtered window.
items[].inclusion_cost_usd_sum
decimal
Total inclusion cost across the filtered window.
items[].event_confidence_avg
decimal | null
Average event confidence across the bot's matched rows.
next_cursor
string | null
Opaque cursor token for continuing the ranking.
Notes
- This is the endpoint used by the Leaderboards page for the Top Bots card, typically filtered to priced rows.
Example cURL
curl -s "https://api.americancrypto.net/api/v1/stats/top-bots?chain_id=1&block_timestamp_gte=1771960680&block_timestamp_lte=1772047080&pricing_status=priced&by=profit_after_inclusion_usd&limit=5" \
-H "Accept: application/json" \
-H "apikey: YOUR_API_KEY"Example output
{
"filters": {
"chain_id": 1,
"event_type": null,
"block_timestamp_gte": 1771960680,
"block_timestamp_lte": 1772047080,
"block_number_gte": null,
"block_number_lte": null,
"min_confidence": null,
"protocol_id": null,
"pool_uid": null,
"token_address": null,
"pricing_status": "priced",
"by": "profit_after_inclusion_usd",
"limit": 5
},
"items": [
{
"bot_address": "0x4f3c8a9f3e4b63c8d7a7e3cb6e2f7656a0a0bc12",
"event_count": 145,
"profit_after_inclusion_usd_sum": "146220.10",
"mev_revenue_usd_sum": "154912.33",
"inclusion_cost_usd_sum": "8692.23",
"event_confidence_avg": "0.97"
}
],
"next_cursor": null
}/v1/stats/top-tokens
Top tokens
Ranks token addresses by event count within the requested filter window.
Authorization
API key required via apikey header.
Query / path parameters
chain_id
integer
Optional
Chain id filter.
event_type
string
Optional
Optional event type filter. Supported values: arbitrage, sandwich, liquidation.
block_timestamp_gte / block_timestamp_lte
unix seconds
Optional
Requested time window.
block_number_gte / block_number_lte
integer
Optional
Optional block window.
pricing_status
string
Optional
Filter by pricing status. Allowed values: priced, unpriced_outflow, no_price_data.
min_confidence
float
Optional
Confidence threshold filter.
protocol_id / pool_uid / token_address
string
Optional
Optional entity filters.
limit
integer
Optional
Maximum number of rows returned. Default 50, maximum 500.
cursor
string
Optional
Opaque cursor token returned as next_cursor for the next page.
Response shape
filters
object
Echoes the effective filters.
items[].token_address
string
Token address.
items[].event_count
integer
Matching event count.
items[].profit_after_inclusion_usd_sum
decimal
Sum of matched event profit duplicated across every referenced token. This is not attributable token PnL.
items[].mev_revenue_usd_sum
decimal
Sum of matched event MEV revenue duplicated across every referenced token. This is not attributable token revenue.
items[].inclusion_cost_usd_sum
decimal
Sum of matched event inclusion cost duplicated across every referenced token. This is not attributable token cost.
items[].event_confidence_avg
decimal | null
Average event confidence across the token's matched rows.
next_cursor
string | null
Opaque cursor token for continuing the ranking.
Notes
- This is the ranking source for the Top Tokens leaderboard card when filtered to priced rows.
- Use event_count as the primary comparison metric. The USD sums are event totals duplicated across every matched token reference.
Example cURL
curl -s "https://api.americancrypto.net/api/v1/stats/top-tokens?chain_id=1&block_timestamp_gte=1771960680&block_timestamp_lte=1772047080&pricing_status=priced&limit=5" \
-H "Accept: application/json" \
-H "apikey: YOUR_API_KEY"Example output
{
"filters": {
"chain_id": 1,
"event_type": null,
"block_timestamp_gte": 1771960680,
"block_timestamp_lte": 1772047080,
"pricing_status": "priced",
"block_number_gte": null,
"block_number_lte": null,
"min_confidence": null,
"protocol_id": null,
"pool_uid": null,
"token_address": null,
"limit": 5
},
"items": [
{
"token_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"event_count": 503,
"profit_after_inclusion_usd_sum": "441220.44",
"mev_revenue_usd_sum": "470115.91",
"inclusion_cost_usd_sum": "28895.47",
"event_confidence_avg": "0.95"
}
],
"next_cursor": null
}/v1/stats/top-protocols
Top protocols
Ranks protocol ids by event count across the requested filter window.
Authorization
API key required via apikey header.
Query / path parameters
chain_id
integer
Optional
Chain id filter.
event_type
string
Optional
Optional event type filter. Supported values: arbitrage, sandwich, liquidation.
block_timestamp_gte / block_timestamp_lte
unix seconds
Optional
Requested time window.
block_number_gte / block_number_lte
integer
Optional
Optional block window.
pricing_status
string
Optional
Filter by pricing status. Allowed values: priced, unpriced_outflow, no_price_data.
min_confidence
float
Optional
Confidence threshold filter.
protocol_id / pool_uid / token_address
string
Optional
Optional entity filters.
limit
integer
Optional
Maximum number of rows returned. Default 50, maximum 500.
cursor
string
Optional
Opaque cursor token returned as next_cursor for the next page.
Response shape
filters
object
Echoes the effective filters.
items[].protocol_id
string
Protocol identifier.
items[].event_count
integer
Matching event count.
items[].profit_after_inclusion_usd_sum
decimal
Sum of matched event profit duplicated across every referenced protocol. This is not attributable protocol PnL.
items[].mev_revenue_usd_sum
decimal
Sum of matched event MEV revenue duplicated across every referenced protocol. This is not attributable protocol revenue.
items[].inclusion_cost_usd_sum
decimal
Sum of matched event inclusion cost duplicated across every referenced protocol. This is not attributable protocol cost.
items[].event_confidence_avg
decimal | null
Average event confidence across the protocol's matched rows.
next_cursor
string | null
Opaque cursor token for continuing the ranking.
Notes
- Useful for protocol share or venue distribution analysis.
- Use event_count as the primary comparison metric. The USD sums are event totals duplicated across every matched protocol reference.
Example cURL
curl -s "https://api.americancrypto.net/api/v1/stats/top-protocols?chain_id=1&block_timestamp_gte=1771960680&block_timestamp_lte=1772047080&pricing_status=priced&limit=5" \
-H "Accept: application/json" \
-H "apikey: YOUR_API_KEY"Example output
{
"filters": {
"chain_id": 1,
"event_type": null,
"block_timestamp_gte": 1771960680,
"block_timestamp_lte": 1772047080,
"pricing_status": "priced",
"block_number_gte": null,
"block_number_lte": null,
"min_confidence": null,
"protocol_id": null,
"pool_uid": null,
"token_address": null,
"limit": 5
},
"items": [
{
"protocol_id": "uniswap_v3",
"event_count": 882,
"profit_after_inclusion_usd_sum": "610332.88",
"mev_revenue_usd_sum": "645119.04",
"inclusion_cost_usd_sum": "34786.16",
"event_confidence_avg": "0.94"
}
],
"next_cursor": null
}/v1/stats/top-pools
Top pools
Ranks pools by event count across the requested filter window, keyed by pool_uid.
Authorization
API key required via apikey header.
Query / path parameters
chain_id
integer
Optional
Chain id filter.
event_type
string
Optional
Optional event type filter. Supported values: arbitrage, sandwich, liquidation.
block_timestamp_gte / block_timestamp_lte
unix seconds
Optional
Requested time window.
block_number_gte / block_number_lte
integer
Optional
Optional block window.
pricing_status
string
Optional
Filter by pricing status. Allowed values: priced, unpriced_outflow, no_price_data.
min_confidence
float
Optional
Confidence threshold filter.
protocol_id / pool_uid / token_address
string
Optional
Optional entity filters.
limit
integer
Optional
Maximum number of rows returned. Default 50, maximum 500.
cursor
string
Optional
Opaque cursor token returned as next_cursor for the next page.
Response shape
filters
object
Echoes the effective filters.
items[].pool_uid
string
Stable pool identifier emitted by the backend. This is a lowercase pool address for contract-per-pool venues and a lowercase raw pool_id for singleton-hosted venues.
items[].pool_address
string | null
On-chain pool address for v2/v3-style pools. Null for Uniswap v4 singleton pools.
items[].pool_name
string | null
Human-readable pool name when available (e.g. `USDC / WETH 0.05%`).
items[].pool_type
string | null
Pool protocol/type. Derived from pool labels when present and otherwise falls back to protocol_id.
items[].event_count
integer
Matching event count.
items[].profit_after_inclusion_usd_sum
decimal
Sum of matched event profit duplicated across every referenced pool. This is not attributable pool PnL.
items[].mev_revenue_usd_sum
decimal
Sum of matched event MEV revenue duplicated across every referenced pool. This is not attributable pool revenue.
items[].inclusion_cost_usd_sum
decimal
Sum of matched event inclusion cost duplicated across every referenced pool. This is not attributable pool cost.
items[].event_confidence_avg
decimal | null
Average event confidence across the pool's matched rows.
next_cursor
string | null
Opaque cursor token for continuing the ranking.
Notes
- This is the ranking source for the Top Pools leaderboard card when filtered to priced rows.
- Use event_count as the primary comparison metric. The USD sums are event totals duplicated across every matched pool reference.
Example cURL
curl -s "https://api.americancrypto.net/api/v1/stats/top-pools?chain_id=1&block_timestamp_gte=1771960680&block_timestamp_lte=1772047080&pricing_status=priced&limit=5" \
-H "Accept: application/json" \
-H "apikey: YOUR_API_KEY"Example output
{
"filters": {
"chain_id": 1,
"event_type": null,
"block_timestamp_gte": 1771960680,
"block_timestamp_lte": 1772047080,
"pricing_status": "priced",
"block_number_gte": null,
"block_number_lte": null,
"min_confidence": null,
"protocol_id": null,
"pool_uid": null,
"token_address": null,
"limit": 5
},
"items": [
{
"pool_uid": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"pool_address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"pool_name": "USDC / WETH 0.05%",
"pool_type": "uniswap_v3",
"event_count": 267,
"profit_after_inclusion_usd_sum": "201114.22",
"mev_revenue_usd_sum": "214900.11",
"inclusion_cost_usd_sum": "13785.89",
"event_confidence_avg": "0.96"
}
],
"next_cursor": null
}