FETCH402
← Protocol index

Resource / 140

healthy

ReadX.

Search for tweets by query (optional product filter; paginate with cursor). Example: GET /api/search/tweets?q=typescript

Eligibility
probeable
Failures
0
Last quote
2026-08-12 21:30:03 UTC
Last probe
2026-08-12 21:30:03 UTC
Payment requirements / accepts[] 2 options
State Network Scheme Atomic amount Asset payTo / untrusted
active eip155:8453 exact 10000 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 0x13E060ADcc6F4b731Da8382B333027B8B2bfF707
active solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp exact 10000 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v CHHWRYyo8exGvcLGn3AxzHEZseLZDTnq3FaYkzZVQDQr

All advertised payment options are stored. Base (`eip155:8453`) is the operational network for ranking and canaries; non-Base options remain visible for transparency.

Probe evidence 1 recent
healthy 2026-08-12 21:30:03 UTC GET · HTTP 402 · 936ms · accepts 2 · base 1 ok
Request
GET https://readx.sh/api/search/tweets
Robots
allow
Note
http_402;accepts=2;base=1
Accepts fingerprint
d7af762b628aecc23b3ef6a86e910d0f1323fb7268cef5e70111479377306cba

Accepts snapshot

[
  {
    "amount": "10000",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "assetTransferMethod": null,
    "extra": {
      "name": "USD Coin",
      "version": "2"
    },
    "maxTimeoutSeconds": 300,
    "network": "eip155:8453",
    "payTo": "0x13E060ADcc6F4b731Da8382B333027B8B2bfF707",
    "paymentFlow": null,
    "raw": {
      "amount": "10000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 300,
      "max_timeout_seconds": 300,
      "network": "eip155:8453",
      "payTo": "0x13E060ADcc6F4b731Da8382B333027B8B2bfF707",
      "pay_to": "0x13E060ADcc6F4b731Da8382B333027B8B2bfF707",
      "scheme": "exact"
    },
    "scheme": "exact"
  },
  {
    "amount": "10000",
    "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "assetTransferMethod": null,
    "extra": {
      "feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
    },
    "maxTimeoutSeconds": 300,
    "network": "solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp",
    "payTo": "CHHWRYyo8exGvcLGn3AxzHEZseLZDTnq3FaYkzZVQDQr",
    "paymentFlow": null,
    "raw": {
      "amount": "10000",
      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "extra": {
        "feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
      },
      "maxTimeoutSeconds": 300,
      "max_timeout_seconds": 300,
      "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
      "payTo": "CHHWRYyo8exGvcLGn3AxzHEZseLZDTnq3FaYkzZVQDQr",
      "pay_to": "CHHWRYyo8exGvcLGn3AxzHEZseLZDTnq3FaYkzZVQDQr",
      "scheme": "exact"
    },
    "scheme": "exact"
  }
]

PaymentRequired raw

{
  "accepts": [
    {
      "amount": "10000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 300,
      "network": "eip155:8453",
      "payTo": "0x13E060ADcc6F4b731Da8382B333027B8B2bfF707",
      "scheme": "exact"
    },
    {
      "amount": "10000",
      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "extra": {
        "feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
      },
      "maxTimeoutSeconds": 300,
      "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
      "payTo": "CHHWRYyo8exGvcLGn3AxzHEZseLZDTnq3FaYkzZVQDQr",
      "scheme": "exact"
    }
  ],
  "error": "Payment required",
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "method": "GET",
          "queryParams": {},
          "type": "http"
        },
        "output": {
          "example": {
            "code": 0,
            "data": {
              "tweets": [
                {
                  "attribution": null,
                  "available": true,
                  "card": null,
                  "hasThread": false,
                  "history": null,
                  "id": "22",
                  "isAI": false,
                  "isAd": false,
                  "location": "",
                  "media": null,
                  "mediaTags": null,
                  "note": null,
                  "pinned": false,
                  "poll": null,
                  "quote": null,
                  "reply": [],
                  "replyId": "0",
                  "retweet": null,
                  "source": "",
                  "stats": {
                    "likes": 42,
                    "quotes": 0,
                    "replies": 0,
                    "retweets": 0,
                    "views": 0
                  },
                  "text": "... typescript ...",
                  "threadId": "20",
                  "time": 1142974214,
                  "tombstone": "",
                  "user": {
                    "banner": "",
                    "bio": "",
                    "followers": 599,
                    "following": 307,
                    "fullname": "Someone",
                    "id": "99",
                    "joinDate": 1142974214,
                    "likes": 0,
                    "location": "",
                    "media": 0,
                    "pinnedTweet": "0",
                    "protected": false,
                    "suspended": false,
                    "tweets": 30000,
                    "userPic": "",
                    "username": "someone",
                    "verifiedType": "Blue",
                    "website": ""
                  }
                }
              ]
            },
            "pagination": {
              "has_more": true,
              "next_cursor": "DAABCgABG...cursor"
            }
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "queryParams": {
                "properties": {
                  "cursor": {
                    "description": "Pagination cursor from a previous response's pagination.next_cursor (the conversation endpoint at /api/{name}/tweets/{id} instead takes its own nested reply cursor — see that endpoint).",
                    "type": "string"
                  },
                  "product": {
                    "description": "Result ordering, e.g. Top or Latest.",
                    "type": "string"
                  },
                  "q": {
                    "description": "Tweet search query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "resource": {
    "description": "Search for tweets by query (optional product filter; paginate with cursor). Example: GET /api/search/tweets?q=typescript",
    "mimeType": "application/json",
    "serviceName": "ReadX",
    "tags": [
      "twitter",
      "x",
      "social",
      "data",
      "api"
    ],
    "url": "https://readx.sh/api/search/tweets"
  },
  "x402Version": 2
}

Response headers

{
  "alt-svc": "h3=\":443\"; ma=86400",
  "cf-ray": "a2a294380f0f430c-IAD",
  "connection": "keep-alive",
  "content-length": "2",
  "content-type": "application/json",
  "date": "Wed, 12 Aug 2026 21:30:03 GMT",
  "link": "<https://readx.sh/openapi.json>; rel=\"service-desc\"; type=\"application/openapi+json\", <https://readx.sh/skill.md>; rel=\"alternate\"; type=\"text/markdown\", <https://readx.sh/.well-known/agent-card.json>; rel=\"describedby\"; type=\"application/json\"",
  "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}",
  "payment-required": "eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQYXltZW50IHJlcXVpcmVkIiwicmVzb3VyY2UiOnsidXJsIjoiaHR0cHM6Ly9yZWFkeC5zaC9hcGkvc2VhcmNoL3R3ZWV0cyIsImRlc2NyaXB0aW9uIjoiU2VhcmNoIGZvciB0d2VldHMgYnkgcXVlcnkgKG9wdGlvbmFsIHByb2R1Y3QgZmlsdGVyOyBwYWdpbmF0ZSB3aXRoIGN1cnNvcikuIEV4YW1wbGU6IEdFVCAvYXBpL3NlYXJjaC90d2VldHM/cT10eXBlc2NyaXB0IiwibWltZVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwic2VydmljZU5hbWUiOiJSZWFkWCIsInRhZ3MiOlsidHdpdHRlciIsIngiLCJzb2NpYWwiLCJkYXRhIiwiYXBpIl19LCJhY2NlcHRzIjpbeyJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJlaXAxNTU6ODQ1MyIsImFtb3VudCI6IjEwMDAwIiwiYXNzZXQiOiIweDgzMzU4OWZDRDZlRGI2RTA4ZjRjN0MzMkQ0ZjcxYjU0YmRBMDI5MTMiLCJwYXlUbyI6IjB4MTNFMDYwQURjYzZGNGI3MzFEYTgzODJCMzMzMDI3QjhCMmJmRjcwNyIsIm1heFRpbWVvdXRTZWNvbmRzIjozMDAsImV4dHJhIjp7Im5hbWUiOiJVU0QgQ29pbiIsInZlcnNpb24iOiIyIn19LHsic2NoZW1lIjoiZXhhY3QiLCJuZXR3b3JrIjoic29sYW5hOjVleWt0NFVzRnY4UDhOSmRUUkVwWTF2enFLcVpLdmRwIiwiYW1vdW50IjoiMTAwMDAiLCJhc3NldCI6IkVQakZXZGQ1QXVmcVNTcWVNMnFOMXh6eWJhcEM4RzR3RUdHa1p3eVREdDF2IiwicGF5VG8iOiJDSEhXUll5bzhleEd2Y0xHbjNBeHpIRVpzZUxaRFRucTNGYVlrelpWUURRciIsIm1heFRpbWVvdXRTZWNvbmRzIjozMDAsImV4dHJhIjp7ImZlZVBheWVyIjoiR1ZKSjdyZEdpWHI1eGFZYlJ3UmJqZmFKTDdmbXdSeWdGaTFINmFHcUR2ZWIifX1dLCJleHRlbnNpb25zIjp7ImJhemFhciI6eyJpbmZvIjp7ImlucHV0Ijp7InR5cGUiOiJodHRwIiwibWV0aG9kIjoiR0VUIiwicXVlcnlQYXJhbXMiOnt9fSwib3V0cHV0Ijp7InR5cGUiOiJqc29uIiwiZXhhbXBsZSI6eyJjb2RlIjowLCJkYXRhIjp7InR3ZWV0cyI6W3siaWQiOiIyMiIsInRocmVhZElkIjoiMjAiLCJyZXBseUlkIjoiMCIsInVzZXIiOnsiaWQiOiI5OSIsInVzZXJuYW1lIjoic29tZW9uZSIsImZ1bGxuYW1lIjoiU29tZW9uZSIsImxvY2F0aW9uIjoiIiwid2Vic2l0ZSI6IiIsImJpbyI6IiIsInVzZXJQaWMiOiIiLCJiYW5uZXIiOiIiLCJwaW5uZWRUd2VldCI6IjAiLCJmb2xsb3dpbmciOjMwNywiZm9sbG93ZXJzIjo1OTksInR3ZWV0cyI6MzAwMDAsImxpa2VzIjowLCJtZWRpYSI6MCwidmVyaWZpZWRUeXBlIjoiQmx1ZSIsInByb3RlY3RlZCI6ZmFsc2UsInN1c3BlbmRlZCI6ZmFsc2UsImpvaW5EYXRlIjoxMTQyOTc0MjE0fSwidGV4dCI6Ii4uLiB0eXBlc2NyaXB0IC4uLiIsInRpbWUiOjExNDI5NzQyMTQsInJlcGx5IjpbXSwicGlubmVkIjpmYWxzZSwiaGFzVGhyZWFkIjpmYWxzZSwiYXZhaWxhYmxlIjp0cnVlLCJ0b21ic3RvbmUiOiIiLCJsb2NhdGlvbiI6IiIsInNvdXJjZSI6IiIsInN0YXRzIjp7InJlcGxpZXMiOjAsInJldHdlZXRzIjowLCJsaWtlcyI6NDIsInF1b3RlcyI6MCwidmlld3MiOjB9LCJyZXR3ZWV0IjpudWxsLCJhdHRyaWJ1dGlvbiI6bnVsbCwibWVkaWFUYWdzIjpudWxsLCJxdW90ZSI6bnVsbCwiY2FyZCI6bnVsbCwicG9sbCI6bnVsbCwibWVkaWEiOm51bGwsImhpc3RvcnkiOm51bGwsIm5vdGUiOm51bGwsImlzQWQiOmZhbHNlLCJpc0FJIjpmYWxzZX1dfSwicGFnaW5hdGlvbiI6eyJoYXNfbW9yZSI6dHJ1ZSwibmV4dF9jdXJzb3IiOiJEQUFCQ2dBQkcuLi5jdXJzb3IifX19fSwic2NoZW1hIjp7IiRzY2hlbWEiOiJodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYSIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImlucHV0Ijp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7InR5cGUiOnsidHlwZSI6InN0cmluZyIsImNvbnN0IjoiaHR0cCJ9LCJtZXRob2QiOnsidHlwZSI6InN0cmluZyIsImVudW0iOlsiR0VUIl19LCJxdWVyeVBhcmFtcyI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJxIjp7InR5cGUiOiJzdHJpbmciLCJtaW5MZW5ndGgiOjEsImRlc2NyaXB0aW9uIjoiVHdlZXQgc2VhcmNoIHF1ZXJ5LiJ9LCJwcm9kdWN0Ijp7InR5cGUiOiJzdHJpbmciLCJkZXNjcmlwdGlvbiI6IlJlc3VsdCBvcmRlcmluZywgZS5nLiBUb3Agb3IgTGF0ZXN0LiJ9LCJjdXJzb3IiOnsidHlwZSI6InN0cmluZyIsImRlc2NyaXB0aW9uIjoiUGFnaW5hdGlvbiBjdXJzb3IgZnJvbSBhIHByZXZpb3VzIHJlc3BvbnNlJ3MgcGFnaW5hdGlvbi5uZXh0X2N1cnNvciAodGhlIGNvbnZlcnNhdGlvbiBlbmRwb2ludCBhdCAvYXBpL3tuYW1lfS90d2VldHMve2lkfSBpbnN0ZWFkIHRha2VzIGl0cyBvd24gbmVzdGVkIHJlcGx5IGN1cnNvciDigJQgc2VlIHRoYXQgZW5kcG9pbnQpLiJ9fSwicmVxdWlyZWQiOlsicSJdfX0sInJlcXVpcmVkIjpbInR5cGUiLCJtZXRob2QiXSwiYWRkaXRpb25hbFByb3BlcnRpZXMiOmZhbHNlfSwib3V0cHV0Ijp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7InR5cGUiOnsidHlwZSI6InN0cmluZyJ9LCJleGFtcGxlIjp7InR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbInR5cGUiXX19LCJyZXF1aXJlZCI6WyJpbnB1dCJdfX19fQ==",
  "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=k5IWynUTwbBMF0Z6fUsh8uqWNHO4dwziWcv39RkzAlrOiXR7axIvpuGWGtZtfnPNHKVt60nW%2BNf5OJWU2m%2BrxjjvRwvK%2BDmvA53mpejvhYzxmDHfhxGN%2FleS2Q%3D%3D\"}]}",
  "server": "cloudflare"
}

Response body

{}

Request headers

{
  "accept": "*/*",
  "user-agent": "Fetch402Bot/0.1 (+https://fetch402.com/crawler; contact: crawler@fetch402.com)"
}

Machine contract

Schemas.

InputJSON
{
  "method": "GET",
  "queryParams": {},
  "type": "http"
}
OutputJSON
{
  "example": {
    "code": 0,
    "data": {
      "tweets": [
        {
          "attribution": null,
          "available": true,
          "card": null,
          "hasThread": false,
          "history": null,
          "id": "22",
          "isAI": false,
          "isAd": false,
          "location": "",
          "media": null,
          "mediaTags": null,
          "note": null,
          "pinned": false,
          "poll": null,
          "quote": null,
          "reply": [],
          "replyId": "0",
          "retweet": null,
          "source": "",
          "stats": {
            "likes": 42,
            "quotes": 0,
            "replies": 0,
            "retweets": 0,
            "views": 0
          },
          "text": "... typescript ...",
          "threadId": "20",
          "time": 1142974214,
          "tombstone": "",
          "user": {
            "banner": "",
            "bio": "",
            "followers": 599,
            "following": 307,
            "fullname": "Someone",
            "id": "99",
            "joinDate": 1142974214,
            "likes": 0,
            "location": "",
            "media": 0,
            "pinnedTweet": "0",
            "protected": false,
            "suspended": false,
            "tweets": 30000,
            "userPic": "",
            "username": "someone",
            "verifiedType": "Blue",
            "website": ""
          }
        }
      ]
    },
    "pagination": {
      "has_more": true,
      "next_cursor": "DAABCgABG...cursor"
    }
  },
  "type": "json"
}