x402 List

x402 Protocol Service Directory

ReadX

Data

Public X/Twitter data as read-only JSON: profiles, timelines, single tweets and conversations, search, hashtags, lists, followers and following. Paid per single call via x402, $0.01 in USDC on Base or Solana, with no API key or registration.

Pay from $0.01 per request in USDC on Base / Solana, settled onchain via the x402 protocol, no signup, no API key needed.

UPTIME 24H 100% 7D 100% 30D 100%
BASE URL https://readx.sh ENDPOINTS 10 NETWORK Base / Solana ASSET USDC MEMBER SINCE 2026-07-20 MONITORED SINCE 2026-07-20

ASSESSMENT

updated 59m ago

Evidence-backed signals, not a single score. Click any chip for the proof. Measured values stay read-only; unknown is honest.

reliability 100%
uptime 24h
100%
uptime 7d
100%
uptime 30d
100%
uptime 90d
100%
response p95
410ms
avg response
325ms
total checks
70
compliance A (11/11)

11 of 11 x402 conformance checks pass. Full checklist below.

jump to compliance checklist

price $0.01 (p62 in Data)
price (min)
$0.01
category percentile (min)
p62 in Data
endpoints / prices
10 / 1
model
flat
stability
100%
risk clean

No deterministic risk flag. Risk fires only on an exact blocklist match, or a reserved-brand name with a mismatched verified payTo. Never from low uptime, a high price, or a model guess.

traction $15.13 30d · 15 buyers
volume 30d
$15.13
buyers 30d
15
settlements 30d
743
last settlement
2026-07-20
top buyer share
42% of 30d volume
trend 7d vs 30d
1.34x the 30d daily rate
networks
eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d

Conservative undercount: only USDC settlements via facilitators we measure are counted. A measured floor, not an estimate.

Top buyer share is a concentration signal, not part of the ranking score.

WHAT IT DOES

ai-derived

ReadX provides a read-only API for accessing Twitter/X user data, timelines, and tweets as JSON responses.

category
twitter-api
in
path
auth
none
twitter-apisocial-mediauser-datatimelinetweetsprofile

AI-generated summary. The measured data is never altered by it.

ENDPOINTS

Service endpoints with HTTP method, path, description, pricing, and network
METHOD PATH DESCRIPTION PRICE NETWORK ASSET
GET /api/:name $0.01 Base/Solana USDC
GET /api/:name/about $0.01 Base/Solana USDC
GET /api/:name/profile $0.01 Base/Solana USDC
GET /api/:name/tweets/:id $0.01 Base/Solana USDC
GET /api/lists/:id $0.01 Base/Solana USDC
GET /api/lists/:id/timeline $0.01 Base/Solana USDC
GET /api/search/tweets $0.01 Base/Solana USDC
GET /api/tools/get_user_id $0.01 Base/Solana USDC
GET /api/tools/get_username $0.01 Base/Solana USDC
GET /api/tweets/:id/replies $0.01 Base/Solana USDC
10 endpoints

REQUEST / RESPONSE EXAMPLE

An unpaid request to GET /api/:name returns HTTP 402 with the payment terms. Settle onchain via your facilitator, then retry with the X-Payment header.

// request
curl -i 'https://readx.sh/api/:name'
// 402 response (captured by monitor) · 10 payloads · click to expand
[
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x13E060ADcc6F4b731Da8382B333027B8B2bfF707",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      },
      {
        "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "extra": {
          "feePayer": "BFK9TLC3edb13K6v4YyH3DwPb5DSUpkWvb7XnqCL9b4F"
        },
        "payTo": "CHHWRYyo8exGvcLGn3AxzHEZseLZDTnq3FaYkzZVQDQr",
        "amount": "10000",
        "scheme": "exact",
        "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://readx.sh/api/:name",
      "tags": [
        "twitter",
        "x",
        "social",
        "data",
        "api"
      ],
      "mimeType": "",
      "description": "A user's timeline: tweets, retweets and quotes. Example: GET /api/jack",
      "serviceName": "ReadX"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "pathParams": {
              "name": ":name"
            },
            "queryParams": {}
          },
          "output": {
            "type": "json",
            "example": {
              "code": 0,
              "data": {
                "timeline": [
                  {
                    "id": "20",
                    "text": "just setting up my twttr",
                    "time": 1142974214,
                    "stats": {
                      "likes": 200000,
                      "views": 0,
                      "quotes": 9000,
                      "replies": 200000,
                      "retweets": 130000
                    }
                  }
                ],
                "pagination": {
                  "top": "",
                  "bottom": "DAABCgAB...cursor",
                  "beginning": true
                }
              }
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "pathParams": {
                  "type": "object"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "name"
                  ],
                  "properties": {
                    "name": {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9_]+$",
                      "minLength": 1,
                      "description": "X handle without the leading @ (alphanumeric and underscore)."
                    },
                    "cursor": {
                      "type": "string",
                      "description": "Pagination cursor from a previous response's pagination.bottom (or replies.bottom)."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              }
            }
          }
        },
        "routeTemplate": "/api/:name"
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x13E060ADcc6F4b731Da8382B333027B8B2bfF707",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      },
      {
        "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "extra": {
          "feePayer": "BFK9TLC3edb13K6v4YyH3DwPb5DSUpkWvb7XnqCL9b4F"
        },
        "payTo": "CHHWRYyo8exGvcLGn3AxzHEZseLZDTnq3FaYkzZVQDQr",
        "amount": "10000",
        "scheme": "exact",
        "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://readx.sh/api/:name/about",
      "tags": [
        "twitter",
        "x",
        "social",
        "data",
        "api"
      ],
      "mimeType": "",
      "description": "Account info: join date, base location, verification, username changes. Example: GET /api/jack/about",
      "serviceName": "ReadX"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "pathParams": {
              "name": ":name"
            },
            "queryParams": {}
          },
          "output": {
            "type": "json",
            "example": {
              "code": 0,
              "data": {}
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "pathParams": {
                  "type": "object"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "name"
                  ],
                  "properties": {
                    "name": {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9_]+$",
                      "minLength": 1,
                      "description": "X handle without the leading @ (alphanumeric and underscore)."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              }
            }
          }
        },
        "routeTemplate": "/api/:name/about"
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x13E060ADcc6F4b731Da8382B333027B8B2bfF707",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      },
      {
        "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "extra": {
          "feePayer": "BFK9TLC3edb13K6v4YyH3DwPb5DSUpkWvb7XnqCL9b4F"
        },
        "payTo": "CHHWRYyo8exGvcLGn3AxzHEZseLZDTnq3FaYkzZVQDQr",
        "amount": "10000",
        "scheme": "exact",
        "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://readx.sh/api/:name/profile",
      "tags": [
        "twitter",
        "x",
        "social",
        "data",
        "api"
      ],
      "mimeType": "",
      "description": "Full profile: bio, counts, banner, pinned tweet and a photo rail. Example: GET /api/jack/profile",
      "serviceName": "ReadX"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "pathParams": {
              "name": ":name"
            },
            "queryParams": {}
          },
          "output": {
            "type": "json",
            "example": {
              "code": 0,
              "data": {
                "user": {
                  "id": "12",
                  "bio": "",
                  "tweets": 30000,
                  "fullname": "jack",
                  "joinDate": 1142974214,
                  "username": "jack",
                  "followers": 6500000,
                  "following": 4000,
                  "verifiedType": "none"
                },
                "pinned": null,
                "photoRail": []
              }
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "pathParams": {
                  "type": "object"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "name"
                  ],
                  "properties": {
                    "name": {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9_]+$",
                      "minLength": 1,
                      "description": "X handle without the leading @ (alphanumeric and underscore)."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              }
            }
          }
        },
        "routeTemplate": "/api/:name/profile"
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x13E060ADcc6F4b731Da8382B333027B8B2bfF707",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      },
      {
        "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "extra": {
          "feePayer": "BENrLoUbndxoNMUS5JXApGMtNykLjFXXixMtpDwDR9SP"
        },
        "payTo": "CHHWRYyo8exGvcLGn3AxzHEZseLZDTnq3FaYkzZVQDQr",
        "amount": "10000",
        "scheme": "exact",
        "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://readx.sh/api/:name/tweets/:id",
      "tags": [
        "twitter",
        "x",
        "social",
        "data",
        "api"
      ],
      "mimeType": "",
      "description": "A single tweet with its full conversation: tweets before, after and replies. Example: GET /api/jack/tweets/20",
      "serviceName": "ReadX"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "pathParams": {
              "id": ":id",
              "name": ":name"
            },
            "queryParams": {}
          },
          "output": {
            "type": "json",
            "example": {
              "code": 0,
              "data": {}
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "pathParams": {
                  "type": "object"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "name",
                    "id"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "pattern": "^[0-9]{1,19}$",
                      "description": "Numeric tweet id (up to 19 digits)."
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9_]+$",
                      "minLength": 1,
                      "description": "X handle without the leading @ (alphanumeric and underscore)."
                    },
                    "cursor": {
                      "type": "string",
                      "description": "Pagination cursor from a previous response's pagination.bottom (or replies.bottom)."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              }
            }
          }
        },
        "routeTemplate": "/api/:name/tweets/:id"
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x13E060ADcc6F4b731Da8382B333027B8B2bfF707",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      },
      {
        "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "extra": {
          "feePayer": "BENrLoUbndxoNMUS5JXApGMtNykLjFXXixMtpDwDR9SP"
        },
        "payTo": "CHHWRYyo8exGvcLGn3AxzHEZseLZDTnq3FaYkzZVQDQr",
        "amount": "10000",
        "scheme": "exact",
        "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://readx.sh/api/lists/:id",
      "tags": [
        "twitter",
        "x",
        "social",
        "data",
        "api"
      ],
      "mimeType": "",
      "description": "A list's metadata (name, owner, description, member count). Example: GET /api/lists/1",
      "serviceName": "ReadX"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "pathParams": {
              "id": ":id"
            },
            "queryParams": {}
          },
          "output": {
            "type": "json",
            "example": {
              "code": 0,
              "data": {}
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "pathParams": {
                  "type": "object"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "id"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "pattern": "^[0-9]+$",
                      "description": "Numeric resource id."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              }
            }
          }
        },
        "routeTemplate": "/api/lists/:id"
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x13E060ADcc6F4b731Da8382B333027B8B2bfF707",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      },
      {
        "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "extra": {
          "feePayer": "BFK9TLC3edb13K6v4YyH3DwPb5DSUpkWvb7XnqCL9b4F"
        },
        "payTo": "CHHWRYyo8exGvcLGn3AxzHEZseLZDTnq3FaYkzZVQDQr",
        "amount": "10000",
        "scheme": "exact",
        "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://readx.sh/api/lists/:id/timeline",
      "tags": [
        "twitter",
        "x",
        "social",
        "data",
        "api"
      ],
      "mimeType": "",
      "description": "The combined timeline of every account in a list. Example: GET /api/lists/1/timeline",
      "serviceName": "ReadX"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "pathParams": {
              "id": ":id"
            },
            "queryParams": {}
          },
          "output": {
            "type": "json",
            "example": {
              "code": 0,
              "data": {}
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "pathParams": {
                  "type": "object"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "id"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "pattern": "^[0-9]+$",
                      "description": "Numeric resource id."
                    },
                    "cursor": {
                      "type": "string",
                      "description": "Pagination cursor from a previous response's pagination.bottom (or replies.bottom)."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              }
            }
          }
        },
        "routeTemplate": "/api/lists/:id/timeline"
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x13E060ADcc6F4b731Da8382B333027B8B2bfF707",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      },
      {
        "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "extra": {
          "feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
        },
        "payTo": "CHHWRYyo8exGvcLGn3AxzHEZseLZDTnq3FaYkzZVQDQr",
        "amount": "10000",
        "scheme": "exact",
        "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://readx.sh/api/search/tweets",
      "tags": [
        "twitter",
        "x",
        "social",
        "data",
        "api"
      ],
      "mimeType": "",
      "description": "Search for tweets by query (optional product filter; paginate with cursor). Example: GET /api/search/tweets?q=typescript",
      "serviceName": "ReadX"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {}
          },
          "output": {
            "type": "json",
            "example": {
              "tweets": [
                {
                  "id": "20",
                  "text": "... typescript ...",
                  "userName": "someone",
                  "createdAt": "Tue Mar 21 20:50:14 +0000 2006",
                  "likeCount": 42
                }
              ],
              "has_more": true,
              "next_cursor": "DAABCgABG..."
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "q"
                  ],
                  "properties": {
                    "q": {
                      "type": "string",
                      "minLength": 1,
                      "description": "Tweet search query."
                    },
                    "cursor": {
                      "type": "string",
                      "description": "Pagination cursor from a previous response's pagination.bottom (or replies.bottom)."
                    },
                    "product": {
                      "type": "string",
                      "description": "Result ordering, e.g. Top or Latest."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x13E060ADcc6F4b731Da8382B333027B8B2bfF707",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      },
      {
        "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "extra": {
          "feePayer": "D6ZhtNQ5nT9ZnTHUbqXZsTx5MH2rPFiBBggX4hY1WePM"
        },
        "payTo": "CHHWRYyo8exGvcLGn3AxzHEZseLZDTnq3FaYkzZVQDQr",
        "amount": "10000",
        "scheme": "exact",
        "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://readx.sh/api/tools/get_user_id",
      "tags": [
        "twitter",
        "x",
        "social",
        "data",
        "api"
      ],
      "mimeType": "",
      "description": "Resolve an @handle to its numeric user id. Example: GET /api/tools/get_user_id?username=jack",
      "serviceName": "ReadX"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {}
          },
          "output": {
            "type": "json",
            "example": {
              "code": 0,
              "data": {
                "id": "12"
              }
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "username"
                  ],
                  "properties": {
                    "username": {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9_]+$",
                      "minLength": 1,
                      "description": "The @handle, without the @ (alphanumeric and underscore)."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x13E060ADcc6F4b731Da8382B333027B8B2bfF707",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      },
      {
        "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "extra": {
          "feePayer": "D6ZhtNQ5nT9ZnTHUbqXZsTx5MH2rPFiBBggX4hY1WePM"
        },
        "payTo": "CHHWRYyo8exGvcLGn3AxzHEZseLZDTnq3FaYkzZVQDQr",
        "amount": "10000",
        "scheme": "exact",
        "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://readx.sh/api/tools/get_username",
      "tags": [
        "twitter",
        "x",
        "social",
        "data",
        "api"
      ],
      "mimeType": "",
      "description": "Resolve a numeric user id to its current @username. Example: GET /api/tools/get_username?user_id=12",
      "serviceName": "ReadX"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {}
          },
          "output": {
            "type": "json",
            "example": {
              "code": 0,
              "data": {
                "username": "jack"
              }
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "user_id"
                  ],
                  "properties": {
                    "user_id": {
                      "type": "string",
                      "pattern": "^[0-9]+$",
                      "description": "The numeric user id."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x13E060ADcc6F4b731Da8382B333027B8B2bfF707",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      },
      {
        "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "extra": {
          "feePayer": "BFK9TLC3edb13K6v4YyH3DwPb5DSUpkWvb7XnqCL9b4F"
        },
        "payTo": "CHHWRYyo8exGvcLGn3AxzHEZseLZDTnq3FaYkzZVQDQr",
        "amount": "10000",
        "scheme": "exact",
        "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://readx.sh/api/tweets/:id/replies",
      "tags": [
        "twitter",
        "x",
        "social",
        "data",
        "api"
      ],
      "mimeType": "",
      "description": "Replies to a tweet (paginate with cursor until has_more is false). Example: GET /api/tweets/20/replies",
      "serviceName": "ReadX"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "pathParams": {
              "id": ":id"
            },
            "queryParams": {}
          },
          "output": {
            "type": "json",
            "example": {
              "tweets": [
                {
                  "id": "21",
                  "text": "great point",
                  "userName": "someone",
                  "createdAt": "Tue Mar 21 20:50:14 +0000 2006",
                  "likeCount": 3
                }
              ],
              "has_more": true,
              "next_cursor": "DAABCgABG..."
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "pathParams": {
                  "type": "object"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "id"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "pattern": "^[0-9]{1,19}$",
                      "description": "Numeric tweet id (up to 19 digits)."
                    },
                    "cursor": {
                      "type": "string",
                      "description": "Pagination cursor from a previous response's pagination.bottom (or replies.bottom)."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              }
            }
          }
        },
        "routeTemplate": "/api/tweets/:id/replies"
      }
    },
    "x402Version": 2
  }
]

UPTIME

07-21 · uptime 100.0% · 316ms avg07-2107-21
RESPONSE TIME
07-21 · 316ms avg07-21 · 316ms avg07-2107-21
24h UPTIME 100%
UPTIME 24H 100%
AVG RESP 327ms
TOTAL CHECKS 74

RECENT CHECKS

TIME STATUS RESP
● OK 419ms
● OK 339ms
● OK 330ms
● OK 338ms
● OK 355ms
● OK 292ms
● OK 340ms
● OK 384ms
● OK 255ms
● OK 438ms
● OK 341ms
● OK 390ms
● OK 249ms
● OK 323ms
● OK 306ms
● OK 386ms
● OK 375ms
● OK 361ms

OVER TIME

All charts share the 24h window selected here. Every series is also served as JSON at /api/v1/services/readx/price, /scores, /volume and /buyers. On-chain volume and distinct buyers are measured over the service's settlement address and are a conservative undercount (only settlements that reach a measured facilitator are counted).

PRICE (captured 402, USD)
07-20 · $0.0107-21 · $0.01$0.0107-2007-21

Median across 10 endpoints. Use the selector to isolate one.

SUB-SCORES (uptime + x402 compliance)
07-20 uptime: 100.0% compliance: 100% checks07-21 uptime: 100.0% compliance: 100% checksuptimecompliance07-2007-21
VOLUME (on-chain settlement, USD)
building volume history (1 day so far)
DISTINCT BUYERS
building buyer history (1 day so far)

COMPLIANCE

11/11 checks pass · grade A
  • 402 payload captured
  • accepts[] array present
  • payTo address recoverable
  • payTo at accepts[0].payTo (conformant shape)
  • payTo is a valid on-chain address
  • atomic price declared
  • atomic price in a sane range
  • asset (token) address declared
  • network resolves to CAIP-2
  • payment scheme declared
  • served over HTTPS

EMBED THIS BADGE

Show that ReadX is monitored on x402-list. Paste this on your site or README, it links back to this live listing.

ReadX listed on x402-list
status
ReadX uptime on x402-list
live uptime
// HTML
<a href="https://x402-list.com/services/readx?utm_source=badge&utm_medium=referral&utm_campaign=embed">
  <img src="https://x402-list.com/badge/readx.svg" alt="ReadX listed on x402-list" height="28">
</a>
// Markdown
[![ReadX on x402-list](https://x402-list.com/badge/readx.svg)](https://x402-list.com/services/readx?utm_source=badge&utm_medium=referral&utm_campaign=embed)
// HTML · live uptime variant
<a href="https://x402-list.com/services/readx?utm_source=badge&utm_medium=referral&utm_campaign=embed">
  <img src="https://x402-list.com/badge/readx.svg?data=uptime" alt="ReadX uptime on x402-list" height="28">
</a>

RUN THIS SERVICE?

Keep this listing accurate: propose changes to the name, description, website, category or add new endpoints to monitor. Ownership is verified with a domain proof and every change is reviewed manually; measured data stays read-only.

[ update this listing ]