Transpose Block API API
Low-level blockchain primitives including accounts, blocks, transactions, logs, and traces across EVM chains.
Low-level blockchain primitives including accounts, blocks, transactions, logs, and traces across EVM chains.
openapi: 3.0.3
info:
title: Transpose Block API API
description: 'Historical blockchain data REST API providing access to transaction history, token transfers, NFT metadata, smart contract events, DEX swaps, and price data across Ethereum and other EVM-compatible chains. Offers five enterprise-grade REST APIs plus a SQL Analytics API for querying indexed blockchain data across Ethereum, Polygon, Optimism, Base, Arbitrum, Avalanche, BSC, Bitcoin, and Tron.
'
version: 1.0.0
contact:
name: Transpose Support
url: https://www.transpose.io/
license:
name: Commercial
url: https://www.transpose.io/pricing
servers:
- url: https://api.transpose.io
description: Transpose production API
security:
- ApiKeyAuth: []
tags:
- name: Block API
description: 'Low-level blockchain primitives including accounts, blocks, transactions, logs, and traces across EVM chains.
'
paths:
/block/accounts:
get:
tags:
- Block API
summary: Get Accounts
operationId: getAccounts
description: 'Retrieve externally-owned accounts and smart contracts with metadata. Filter by address, creator, or date created.
'
parameters:
- $ref: '#/components/parameters/ChainId'
- name: address
in: query
required: false
description: Filter by a specific account address.
schema:
type: string
- name: creator_address
in: query
required: false
description: Filter accounts by the address that created them.
schema:
type: string
- name: created_after
in: query
required: false
description: Return accounts created after this date (ISO-8601 or Unix timestamp).
schema:
type: string
- name: created_before
in: query
required: false
description: Return accounts created before this date (ISO-8601 or Unix timestamp).
schema:
type: string
- $ref: '#/components/parameters/Order'
- $ref: '#/components/parameters/Limit'
responses:
'200':
description: Successful response containing matching accounts.
headers:
X-Credits-Charged:
schema:
type: integer
description: Number of API credits consumed by this request.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: ok
results:
type: array
items:
$ref: '#/components/schemas/Account'
'401':
description: Unauthorized — missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Rate limit exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/block/blocks:
get:
tags:
- Block API
summary: Get Blocks
operationId: getBlocks
description: 'Retrieve historical blocks with fee calculations. Filter by date or block number range.
'
parameters:
- $ref: '#/components/parameters/ChainId'
- name: block_number_above
in: query
required: false
description: Return blocks with number greater than or equal to this value.
schema:
type: integer
- name: block_number_below
in: query
required: false
description: Return blocks with number less than or equal to this value.
schema:
type: integer
- name: mined_after
in: query
required: false
description: Return blocks mined after this date (ISO-8601 or Unix timestamp).
schema:
type: string
- name: mined_before
in: query
required: false
description: Return blocks mined before this date (ISO-8601 or Unix timestamp).
schema:
type: string
- $ref: '#/components/parameters/Order'
- $ref: '#/components/parameters/Limit'
responses:
'200':
description: Successful response containing matching blocks.
headers:
X-Credits-Charged:
schema:
type: integer
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: ok
results:
type: array
items:
$ref: '#/components/schemas/Block'
'401':
description: Unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/block/transactions:
get:
tags:
- Block API
summary: Get Transactions
operationId: getTransactions
description: 'Query all transactions with flexible filtering by account, block, contract, date, or transaction hash.
'
parameters:
- $ref: '#/components/parameters/ChainId'
- name: from_address
in: query
required: false
description: Filter transactions by sender address.
schema:
type: string
- name: to_address
in: query
required: false
description: Filter transactions by recipient address.
schema:
type: string
- name: block_number
in: query
required: false
description: Filter transactions by block number.
schema:
type: integer
- name: transaction_hash
in: query
required: false
description: Retrieve a specific transaction by its hash.
schema:
type: string
- name: timestamp_above
in: query
required: false
description: Return transactions after this timestamp (ISO-8601 or Unix).
schema:
type: string
- name: timestamp_below
in: query
required: false
description: Return transactions before this timestamp (ISO-8601 or Unix).
schema:
type: string
- $ref: '#/components/parameters/Order'
- $ref: '#/components/parameters/Limit'
responses:
'200':
description: Successful response containing matching transactions.
headers:
X-Credits-Charged:
schema:
type: integer
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: ok
results:
type: array
items:
$ref: '#/components/schemas/Transaction'
'401':
description: Unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/block/logs:
get:
tags:
- Block API
summary: Get Logs
operationId: getLogs
description: Retrieve and filter historical smart contract event logs by block or transaction.
parameters:
- $ref: '#/components/parameters/ChainId'
- name: block_number
in: query
required: false
description: Filter logs by block number.
schema:
type: integer
- name: transaction_hash
in: query
required: false
description: Filter logs by transaction hash.
schema:
type: string
- name: contract_address
in: query
required: false
description: Filter logs by emitting contract address.
schema:
type: string
- $ref: '#/components/parameters/Order'
- $ref: '#/components/parameters/Limit'
responses:
'200':
description: Successful response containing matching logs.
headers:
X-Credits-Charged:
schema:
type: integer
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: ok
results:
type: array
items:
$ref: '#/components/schemas/Log'
'401':
description: Unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/block/traces:
get:
tags:
- Block API
summary: Get Traces
operationId: getTraces
description: Retrieve internal transaction traces filtered by account, block, transaction, or contract.
parameters:
- $ref: '#/components/parameters/ChainId'
- name: from_address
in: query
required: false
description: Filter traces by the calling address.
schema:
type: string
- name: to_address
in: query
required: false
description: Filter traces by the receiving address.
schema:
type: string
- name: block_number
in: query
required: false
description: Filter traces by block number.
schema:
type: integer
- name: transaction_hash
in: query
required: false
description: Filter traces by transaction hash.
schema:
type: string
- $ref: '#/components/parameters/Order'
- $ref: '#/components/parameters/Limit'
responses:
'200':
description: Successful response containing matching traces.
headers:
X-Credits-Charged:
schema:
type: integer
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: ok
results:
type: array
items:
$ref: '#/components/schemas/Trace'
'401':
description: Unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
Log:
type: object
description: Represents a smart contract event log.
properties:
transaction_hash:
type: string
description: Transaction hash containing this log.
log_index:
type: integer
description: Index of the log within the transaction.
block_number:
type: integer
description: Block number containing this log.
timestamp:
type: string
format: date-time
contract_address:
type: string
description: Address of the contract that emitted this log.
topic_0:
type: string
description: Event signature hash.
data:
type: string
description: Non-indexed log data.
ErrorResponse:
type: object
properties:
status:
type: string
example: error
message:
type: string
description: Human-readable error description.
Transaction:
type: object
description: Represents a blockchain transaction.
properties:
transaction_hash:
type: string
description: The transaction hash.
block_number:
type: integer
description: Block number containing this transaction.
timestamp:
type: string
format: date-time
description: When the transaction was included in a block.
from_address:
type: string
description: The sender's address.
to_address:
type: string
description: The recipient's address.
value:
type: string
description: Value transferred in wei.
gas_price:
type: string
description: Gas price in wei.
gas_used:
type: integer
description: Actual gas consumed.
status:
type: integer
description: Transaction status (1 = success, 0 = failure).
method_id:
type: string
description: First 4 bytes of call data identifying the contract method.
Trace:
type: object
description: Represents an internal transaction trace.
properties:
transaction_hash:
type: string
trace_index:
type: integer
block_number:
type: integer
timestamp:
type: string
format: date-time
from_address:
type: string
to_address:
type: string
value:
type: string
description: Value transferred in wei.
call_type:
type: string
enum:
- call
- staticcall
- delegatecall
- create
- selfdestruct
Block:
type: object
description: Represents a blockchain block.
properties:
block_number:
type: integer
description: The block number.
block_hash:
type: string
description: The block hash.
timestamp:
type: string
format: date-time
description: When the block was mined.
miner:
type: string
description: Address of the block miner.
transaction_count:
type: integer
description: Number of transactions in the block.
gas_used:
type: integer
description: Total gas used by all transactions.
base_fee_per_gas:
type: string
description: Base fee per gas in wei (EIP-1559 blocks).
Account:
type: object
description: Represents an externally-owned account or smart contract.
properties:
address:
type: string
description: The account's blockchain address.
account_type:
type: string
description: Whether the account is an EOA or smart contract.
enum:
- externally_owned_account
- contract
created_timestamp:
type: string
format: date-time
description: When the account was first seen on-chain.
creator_address:
type: string
description: The address that created this contract (if applicable).
created_block_number:
type: integer
description: Block number when the account was created.
parameters:
ChainId:
name: chain_id
in: query
required: true
description: 'A keyword (e.g., "ethereum") or CAIP-2 identifier specifying the blockchain to query. Supported values: ethereum, polygon, optimism, scroll, arbitrum, base, avalanche.
'
schema:
type: string
example: ethereum
enum:
- ethereum
- polygon
- optimism
- scroll
- arbitrum
- base
- avalanche
Order:
name: order
in: query
required: false
description: Sort direction for results.
schema:
type: string
enum:
- asc
- desc
default: desc
Limit:
name: limit
in: query
required: false
description: Maximum number of results to return.
schema:
type: integer
default: 100
minimum: 1
maximum: 500
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-KEY
description: API key obtained from your Transpose team dashboard.