Tempo API
Use the Tempo API for indexed chain data, readable account activity, token metadata, balances, transfers, transaction receipts, and RPC methods.
Start with the Tempo API
Every endpoint is served over HTTPS from https://api.tempo.xyz under the /v1 prefix. Most read endpoints are public, so you can make your first request without any credentials:
curl 'https://api.tempo.xyz/v1/blocks'The same base URL and credentials give you access to three surfaces:
-
REST API: typed endpoints for indexed chain data such as blocks, transactions, tokens, balances, transfers, and receipts.
curl 'https://api.tempo.xyz/v1/addresses/0x.../balances' -
JSON-RPC API: a node-level RPC entrypoint for raw chain access.
curl 'https://api.tempo.xyz/rpc' \ --data '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}' -
Indexer API: a SQL-over-HTTP entrypoint for read-only queries against indexed chain data.
curl --get 'https://api.tempo.xyz/v1/indexer/query' \ --data-urlencode 'chainId=mainnet' \ --data-urlencode 'sql=SELECT num, hash FROM blocks ORDER BY num DESC LIMIT 10'
There are three ways to authenticate, depending on the throughput you need:
| Method | How | Limit |
|---|---|---|
| Public | No credentials | 20 requests / minute per IP |
| MPP | Authorization: Payment <credential> | Pay per request, no key required |
| API key | Authorization: Bearer tempo:sk:... | Higher, dedicated quota per key |
Public access lets you try the API and serve low-volume reads, and MPP lets you pay per request without a key. For higher, dedicated quotas, use an API key.
Try a Tempo API request
Check out an endpoint below and click "Try" to run it directly against the API. For example, fetch the token balances for an address:
Tempo REST API endpoints
- POSTadmin_validatorKey
- POSTconsensus_getFinalization
- POSTconsensus_getIdentityTransitionProof
- POSTconsensus_getLatest
- POSTconsensus_subscribe
- POSTconsensus_unsubscribe
- POSTeth_blockNumber
- POSTeth_call
- POSTeth_chainId
- POSTeth_createAccessList
- POSTeth_estimateGas
- POSTeth_feeHistory
- POSTeth_fillTransaction
- POSTeth_gasPrice
- POSTeth_getBlockAccessList
- POSTeth_getBlockByHash
- POSTeth_getBlockByNumber
- POSTeth_getBlockReceipts
- POSTeth_getBlockTransactionCountByHash
- POSTeth_getBlockTransactionCountByNumber
- POSTeth_getCode
- POSTeth_getFilterChanges
- POSTeth_getFilterLogs
- POSTeth_getLogs
- POSTeth_getProof
- POSTeth_getStorageAt
- POSTeth_getStorageValues
- POSTeth_getTransactionByBlockHashAndIndex
- POSTeth_getTransactionByBlockNumberAndIndex
- POSTeth_getTransactionByHash
- POSTeth_getTransactionCount
- POSTeth_getTransactionReceipt
- POSTeth_maxPriorityFeePerGas
- POSTeth_newBlockFilter
- POSTeth_newFilter
- POSTeth_newPendingTransactionFilter
- POSTeth_sendRawTransaction
- POSTeth_sendRawTransactionSync
- POSTeth_simulateV1
- POSTeth_syncing
- POSTeth_uninstallFilter
- POSTtempo_forkSchedule
- POSTtempo_fundAddress
Next API integration steps
Use production and sandbox API keys, or pay per request with MPP.
Shared formatting for identifiers, amounts, timestamps, errors, and rate limits.
Page through list endpoints with cursors, page numbers, and optional total counts.
Per-minute quotas, RateLimit-* headers, and retry best practices.
HTTP status codes, the error envelope, and the full error code catalog.
Understand compatible changes, breaking changes, deprecations, and sunsets.
Was this helpful?