ar.io Logoar.io Documentation

Gateway

Operations related to the AR.IO Gateway server itself, including health checks, metrics, and gateway-specific information

Gateway Info or Apex Content

Returns either gateway information or serves content based on configuration:

  • If neither APEX_TX_ID nor APEX_ARNS_NAME is set, returns gateway information
  • If APEX_TX_ID is set, serves that transaction's content
  • If APEX_ARNS_NAME is set, resolves and serves that ArNS name's content

The Content-Type of the response will match the content type of the transaction or ArNS-resolved data (e.g., text/html for HTML documents, application/json for JSON documents, application/octet-stream for binary data, etc.).

GET
/

Response Body

curl -X GET "https://turbo-gateway.com"
{
  "wallet": "string",
  "ans104UnbundleFilter": {},
  "ans104IndexFilter": {},
  "supportedManifestVersions": [
    "0.1.0"
  ],
  "release": "string"
}

Health check endpoint

Get the current health status of the AR.IO Gateway.

GET
/ar-io/healthcheck

Response Body

curl -X GET "https://turbo-gateway.com/ar-io/healthcheck"
{
  "status": "ok",
  "uptime": 0,
  "date": "2019-08-24T14:15:22Z",
  "reasons": [
    "string"
  ]
}

Get root transaction offsets for a data item

Returns the location of a data item within its root L1 transaction, read directly from this node's index.

This is the cheap counterpart to HEAD /raw/{id}, which exposes the same values in X-AR-IO-Root-* headers but only as a side effect of a successful data retrieval — on a cache miss that route runs the node's entire retrieval cascade before answering. This endpoint performs a single indexed lookup and never reads contiguous data, so a miss is as cheap as a hit.

Offsets resolve for any data item this node has unbundled and indexed, even when none of its bytes are cached locally.

GET
/ar-io/offsets/{id}

Path Parameters

idstring

The 43-character base64url data item or transaction ID.

Match^[a-zA-Z0-9_-]{43}$

Response Body

curl -X GET "https://turbo-gateway.com/ar-io/offsets/string"
{
  "rootTxId": "string",
  "path": [
    "string"
  ],
  "rootOffset": 0,
  "rootDataOffset": 0,
  "contentType": "string",
  "size": 0,
  "dataSize": 0
}
"string"
"string"
"string"

Get AR.IO Gateway information

Returns information about the AR.IO Gateway, including:

  • Gateway wallet address
  • Process ID
  • ANS-104 filter configurations
  • Supported manifest versions
  • Gateway software release version
  • Bundler service URLs for data upload service discovery
  • Rate limiter configuration (if enabled)
  • x402 payment protocol configuration (if enabled)
  • HTTPSIG response signing configuration (if enabled)
GET
/ar-io/info

Response Body

curl -X GET "https://turbo-gateway.com/ar-io/info"
{
  "wallet": "string",
  "ans104UnbundleFilter": {},
  "ans104IndexFilter": {},
  "supportedManifestVersions": [
    "0.1.0"
  ],
  "release": "string",
  "services": {
    "bundlers": [
      {
        "url": "https://turbo.ardrive.io/"
      }
    ]
  },
  "rateLimiter": {
    "enabled": true,
    "dataEgress": {
      "buckets": {
        "resource": {
          "capacity": 1000000,
          "refillRate": 100,
          "capacityBytes": 1024000000,
          "refillRateBytesPerSec": 102400
        },
        "ip": {
          "capacity": 100000,
          "refillRate": 20,
          "capacityBytes": 102400000,
          "refillRateBytesPerSec": 20480
        }
      }
    }
  },
  "x402": {
    "enabled": true,
    "network": "base-sepolia",
    "walletAddress": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "facilitatorUrl": "https://x402.org/facilitator",
    "dataEgress": {
      "pricing": {
        "perBytePrice": 1e-10,
        "minPrice": 0.001,
        "maxPrice": 1,
        "currency": "USDC",
        "exampleCosts": {
          "1KB": 0.001,
          "1MB": 0.0001024,
          "1GB": 0.1048576
        }
      },
      "rateLimiterCapacityMultiplier": 10
    }
  },
  "httpsig": {
    "enabled": true,
    "algorithm": "ed25519",
    "publicKey": "1Jw2EpGba2umSMoCNEQh-QKaYA_GztxaoWTpcsyfyxk",
    "keyId": "ed25519:1Jw2EpGba2umSMoCNEQh-QKaYA_GztxaoWTpcsyfyxk",
    "solanaAddress": "FJwaz3DWJ2TuDRDaBRsE7t29LDm1wB8txPHcBNoCDwkt",
    "attestation": {
      "txId": "4w-39da6R7eklq9d3sMhEx7tc-t4p4PZD6cTZIG3f3c",
      "observerAddress": "7p90oVDWv8euAJsHHuz8tVw9OBrQdIB8qrOn5YEjiVc",
      "payload": "string",
      "signature": "string",
      "rsaPublicKey": "string"
    }
  }
}

Get AR.IO Gateway peer information

Returns information about AR.IO Gateway peers and Arweave node peers. For gateways, includes both data and chunk weights used for peer selection. Peer keys are formatted as host:port.

GET
/ar-io/peers

Response Body

curl -X GET "https://turbo-gateway.com/ar-io/peers"
{
  "gateways": {
    "gateway.example.com:443": {
      "url": "https://gateway.example.com",
      "dataWeight": 50,
      "chunkWeight": 50
    }
  },
  "arweaveNodes": {
    "arweave.example.com:1984": {
      "url": "http://arweave.example.com:1984",
      "blocks": 165967,
      "height": 1732652,
      "lastSeen": 1755190447700
    }
  }
}

Get Prometheus metrics

Returns metrics in Prometheus format for monitoring the Gateway's performance and status. These metrics include various counters, gauges, and histograms tracking:

  • HTTP request statistics
  • Transaction processing metrics
  • System resource usage
  • Cache performance
  • Bundle processing statistics
GET
/ar-io/__gateway_metrics

Response Body

curl -X GET "https://turbo-gateway.com/ar-io/__gateway_metrics"
"# HELP errors_total Total error count\n# TYPE errors_total counter\nerrors_total 0\n\n# HELP uncaught_exceptions_total Count of uncaught exceptions\n# TYPE uncaught_exceptions_total counter\nuncaught_exceptions_total 0\n"

How is this guide?