Admin
Access several password protected features and functions specific to your AR.IO Gateway.
Admin debugging information.
Get detailed information about the current operational state of your AR.IO Gateway, including information about any current warnings or errors.
ADMIN_API_KEY set in your .env file.
In: header
Response Body
curl -X GET "https://turbo-gateway.com/ar-io/admin/debug"Prioritize a transaction or bundle in the queue.
Stage a specific TX ID as priority for your Gateway to locate and index. This will trigger and queue bundle processing if the transaction is a bundle, and your Gateway is configured to unbundle and index.
ADMIN_API_KEY set in your .env file.
In: header
TX ID of the transaction you would like to prioritize.
^[0-9a-zA-Z_-]{43}$Response Body
curl -X POST "https://turbo-gateway.com/ar-io/admin/queue-tx" \ -H "Content-Type: application/json" \ -d '{ "id": "3lyxgbgEvqNSvJrTX2J7CfRychUD5KClFhhVLyTPNCQ" }'{
"message": "TX queued"
}"Must provide 'id'""Unauthorized""Internal Server Error"Queue a bundle for indexing, bypassing any filter settings by default.
Queue a bundle for indexing, bypassing any filter settings by default.
ADMIN_API_KEY set in your .env file.
In: header
TX ID of the transaction you would like to prioritize.
^[0-9a-zA-Z_-]{43}$Response Body
curl -X POST "https://turbo-gateway.com/ar-io/admin/queue-bundle" \ -H "Content-Type: application/json" \ -d '{ "id": "3lyxgbgEvqNSvJrTX2J7CfRychUD5KClFhhVLyTPNCQ" }'{
"message": "TX queued"
}"Must provide 'id'""Unauthorized""Internal Server Error"Queue data items for indexing
Queue one or more data items for indexing. This endpoint accepts an array of data item headers and prioritizes them for processing.
ADMIN_API_KEY set in your .env file.
In: header
Response Body
curl -X POST "https://turbo-gateway.com/ar-io/admin/queue-data-item" \ -H "Content-Type: application/json" \ -d '[ { "data_size": 0, "id": "string", "owner": "string", "owner_address": "string", "signature": "string" } ]'{
"message": "Data item(s) queued"
}"Must provide array of data item headers""Unauthorized""Internal Server Error""Data item indexer saturated (queue depth 100001 exceeds 100000); retry after backpressure clears"Optimistically index a signed L1 transaction before it mines
Index one or more signed L1 transaction headers so the transaction is
resolvable (GraphQL transaction(id), returning block: null) before it
is mined. Trusted/allowlist only: requires the admin bearer token AND
OPTIMISTIC_TX_INDEXING_ENABLED=true (disabled by default → 403). Every
transaction is cryptographically verified (arweave.transactions.verify),
so a forged id or data_root is rejected. The row is inserted with a NULL
height and promoted in place when the transaction mines; never-mined rows
are reclaimed by the stale-transaction GC. The data is never marked
verified while the transaction is unmined (height IS NULL). Accepts a single
transaction object or an array, up to OPTIMISTIC_TX_MAX_BATCH_SIZE.
ADMIN_API_KEY set in your .env file.
In: header
A signed Arweave L1 transaction header (the same JSON shape returned by
GET /tx/:id). The signature is verified server-side, so every
consequential field (data_root, owner, target, quantity, reward,
last_tx, tags, data_size) is bound to the signature.
Transaction ID (sha256 of the signature)
^[0-9a-zA-Z_-]{43}$Transaction signer's public key
^[0-9a-zA-Z_-]{1,683}$Transaction signature
^[0-9a-zA-Z_-]{1,683}$Anchor (a recent block hash or tx ID)
Merkle root of the transaction's data
^[0-9a-zA-Z_-]{43}$Size of the data in bytes (stringified integer)
Transaction format (2 for current data transactions)
Optional recipient address
Optional transfer amount in winston (stringified integer)
Mining reward in winston (stringified integer)
Optional transaction tags
Response Body
curl -X POST "https://turbo-gateway.com/ar-io/admin/queue-optimistic-tx" \ -H "Content-Type: application/json" \ -d '{ "id": "string", "owner": "string", "signature": "string", "last_tx": "string" }'{
"message": "Optimistic transaction(s) indexed"
}"Invalid signature for transaction <id>""Unauthorized""Optimistic tx indexing is disabled""Internal Server Error"Get bundle processing status
Returns detailed status information about a bundle's processing state, including counts of data items, processing timestamps, and retry attempts. This endpoint helps monitor the progress and state of bundle processing through the gateway's pipeline.
ADMIN_API_KEY set in your .env file.
In: header
Path Parameters
Bundle ID
^[0-9a-zA-Z_-]{43}$Response Body
curl -X GET "https://turbo-gateway.com/ar-io/admin/bundle-status/string"{
"id": "string",
"formatId": 0,
"unbundleFilterId": 0,
"indexFilterId": 0,
"dataItemCount": 0,
"matchedDataItemCount": 0,
"firstQueuedAt": 0,
"lastQueuedAt": 0,
"firstSkippedAt": 0,
"lastSkippedAt": 0,
"firstUnbundledAt": 0,
"lastUnbundledAt": 0,
"firstFullyIndexedAt": 0,
"lastFullyIndexedAt": 0,
"rootTransactionId": "string",
"importAttemptCount": 0,
"duplicatedDataItemCount": 0,
"previousUnbundleFilterId": 0,
"previousIndexFilterId": 0,
"retryAttemptCount": 0,
"firstRetriedAt": 0,
"lastRetriedAt": 0
}"Must provide a valid bundle id""Unauthorized""Bundle not found""Internal Server Error"Blocks transactions or data-items so your AR.IO Gateway will not serve them.
Submits a TX ID/data-item ID or sha-256 content hash for content you do not want your AR.IO Gateway to serve. Once submitted, your Gateway will not respond to requests for these transactions or data-items.
WARNING - Testing a TX ID here WILL result in that data being blocked by your Gateway.
ADMIN_API_KEY set in your .env file.
In: header
TX ID for a transaction you want to block.
Any notes or comments related to the block data. Documentation purposes only.
The source from which the block data was obtained. Documentation purposes only.
Response Body
curl -X PUT "https://turbo-gateway.com/ar-io/admin/block-data" \ -H "Content-Type: application/json" \ -d '{ "id": "3lyxgbgEvqNSvJrTX2J7CfRychUD5KClFhhVLyTPNCQ", "notes": "This content is offensive", "source": "Public Block list" }'Blocks an ARNS name so your AR.IO Gateway will not serve it.
Blocks an ARNS name so your AR.IO Gateway will not serve it.
ADMIN_API_KEY set in your .env file.
In: header
The name you want to block.
Any notes or comments related to the block name. Documentation purposes only.
The source from which the block name was obtained. Documentation purposes only.
Response Body
curl -X PUT "https://turbo-gateway.com/ar-io/admin/block-name" \ -H "Content-Type: application/json" \ -d '{}'Unblock an ARNS name.
Unblock an ARNS name so your AR.IO Gateway will serve it again.
ADMIN_API_KEY set in your .env file.
In: header
The name you want to unblock.
Response Body
curl -X PUT "https://turbo-gateway.com/ar-io/admin/unblock-name" \ -H "Content-Type: application/json" \ -d '{}'Export data to Parquet format
Initiates an export of data to Parquet format files. This process runs in the background and exports data for the specified block height range.
ADMIN_API_KEY set in your .env file.
In: header
Directory in the server where Parquet files will be saved
Starting block height for the export
0 <= valueEnding block height for the export
0 <= valueMaximum number of rows per Parquet file
0 <= valueResponse Body
curl -X POST "https://turbo-gateway.com/ar-io/admin/export-parquet" \ -H "Content-Type: application/json" \ -d '{ "outputDir": "string", "startHeight": 0, "endHeight": 0, "maxFileRows": 0 }'{
"message": "Parquet export started",
"jobId": "2c3f4f8e-1b2d-4a4e-9e2a-6f2d2c3b4a5e"
}"Unauthorized""Internal Server Error"Get latest Parquet export status (singleton)
Returns the most recently updated export status. Because the server
runs at most one export at a time, this endpoint reflects whichever
export POSTed last — it can be overwritten mid-poll if another
caller submits. Prefer /status/{jobId} for per-job tracking.
ADMIN_API_KEY set in your .env file.
In: header
Response Body
curl -X GET "https://turbo-gateway.com/ar-io/admin/export-parquet/status"{
"status": "not_started",
"jobId": "string",
"outputDir": "string",
"startHeight": 0,
"endHeight": 0,
"maxFileRows": 0,
"heightPartitionSize": 0,
"skipL1Transactions": true,
"skipL1Tags": true,
"currentPartitionStart": 0,
"currentPartitionEnd": 0,
"completedPartitions": 0,
"totalPartitions": 0,
"durationInSeconds": 0,
"endTime": "2019-08-24T14:15:22Z",
"endTimestamp": 0,
"error": "string"
}"Unauthorized""Internal Server Error"Get Parquet export status for a specific job
Returns the status record for the export identified by jobId
(returned by POST /ar-io/admin/export-parquet). The server retains
a bounded history of recent jobs; older job ids are evicted and
return 404.
ADMIN_API_KEY set in your .env file.
In: header
Path Parameters
Response Body
curl -X GET "https://turbo-gateway.com/ar-io/admin/export-parquet/status/string"{
"status": "not_started",
"jobId": "string",
"outputDir": "string",
"startHeight": 0,
"endHeight": 0,
"maxFileRows": 0,
"heightPartitionSize": 0,
"skipL1Transactions": true,
"skipL1Tags": true,
"currentPartitionStart": 0,
"currentPartitionEnd": 0,
"completedPartitions": 0,
"totalPartitions": 0,
"durationInSeconds": 0,
"endTime": "2019-08-24T14:15:22Z",
"endTimestamp": 0,
"error": "string"
}"Unauthorized""Internal Server Error"Prune stable data items
Removes stable data items from the database that were indexed before the specified timestamp. This helps manage database size by removing older, stable data items.
ADMIN_API_KEY set in your .env file.
In: header
Unix timestamp - data items indexed before this time will be pruned
0 <= valueResponse Body
curl -X POST "https://turbo-gateway.com/ar-io/admin/prune-stable-data-items" \ -H "Content-Type: application/json" \ -d '{ "indexedAtThreshold": 1677721600 }'{
"message": "Stable data items pruned successfully"
}"Invalid indexedAtThreshold - must be a positive integer""Unauthorized""Internal Server Error"How is this guide?