FETCH402
← Protocol index

Resource / 108

healthy

Otto AI.

Search X/Twitter for any query and get the actual matching tweets — keyword, $CASHTAG, from:handle (a user timeline), @handle (mentions), or boolean OR. Each tweet returns author, full text (long-form note tweets included), timestamp, likes and retweets (reply/quote counts when available). Most-recent-first for real-time monitoring and alerting. Live X search backend, pay-per-call USDC, structured JSON — no API keys, no sign-up.

Eligibility
probeable
Failures
0
Last quote
2026-08-12 21:30:02 UTC
Last probe
2026-08-12 21:30:02 UTC
Payment requirements / accepts[] 1 options
State Network Scheme Atomic amount Asset payTo / untrusted
active eip155:8453 exact 5000 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 0x0E84dDEdAaE6A779c462C22a59F301EC31B6b808

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:02 UTC GET · HTTP 402 · 121ms · accepts 1 · base 1 ok
Request
GET https://x402.ottoai.services/tweet-search
Robots
error
Note
robots_error:{:robots_http_status, 404};http_402;accepts=1;base=1
Accepts fingerprint
ca3599c4d580076c381093eb0638cddc72c477038813d0fe3d76a2b2b1dfefc4

Accepts snapshot

[
  {
    "amount": "5000",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "assetTransferMethod": null,
    "extra": {
      "name": "USD Coin",
      "version": "2"
    },
    "maxTimeoutSeconds": 300,
    "network": "eip155:8453",
    "payTo": "0x0E84dDEdAaE6A779c462C22a59F301EC31B6b808",
    "paymentFlow": null,
    "raw": {
      "amount": "5000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 300,
      "max_timeout_seconds": 300,
      "network": "eip155:8453",
      "payTo": "0x0E84dDEdAaE6A779c462C22a59F301EC31B6b808",
      "pay_to": "0x0E84dDEdAaE6A779c462C22a59F301EC31B6b808",
      "scheme": "exact"
    },
    "scheme": "exact"
  }
]

PaymentRequired raw

{
  "accepts": [
    {
      "amount": "5000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 300,
      "network": "eip155:8453",
      "payTo": "0x0E84dDEdAaE6A779c462C22a59F301EC31B6b808",
      "scheme": "exact"
    }
  ],
  "error": "Payment required",
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "method": "GET",
          "queryParams": {
            "query": "$BTC"
          },
          "type": "http"
        },
        "output": {
          "example": {
            "data": {
              "count": 2,
              "generatedAt": "2026-06-30T13:45:00.000Z",
              "mode": "Latest",
              "query": "$BTC",
              "tweets": []
            },
            "meta": {
              "degraded": false,
              "generatedAt": "",
              "stalenessSec": 0,
              "validUntil": ""
            },
            "status": "success"
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "queryParams": {
                "properties": {
                  "query": {
                    "description": "X/Twitter search query. Plain keywords/topics, a $CASHTAG, from:handle for a user timeline, @handle for mentions, or boolean OR (uppercase). Example: \"$BTC OR bitcoin -is:retweet\".",
                    "type": "string"
                  }
                },
                "required": [
                  "query"
                ],
                "type": "object"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "properties": {
                  "data": {
                    "description": "Endpoint payload (see meta.generatedAt for freshness)"
                  },
                  "meta": {
                    "type": "object"
                  },
                  "status": {
                    "enum": [
                      "success"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "status",
                  "data",
                  "meta"
                ],
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    },
    "builder-code": {
      "info": {
        "a": "bc_hc2dhq09"
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {
          "a": {
            "description": "App builder code",
            "pattern": "^[a-z0-9_]{1,32}$",
            "type": "string"
          },
          "s": {
            "description": "Service builder codes",
            "items": {
              "pattern": "^[a-z0-9_]{1,32}$",
              "type": "string"
            },
            "type": "array"
          },
          "w": {
            "description": "Wallet builder code",
            "pattern": "^[a-z0-9_]{1,32}$",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "offer-receipt": {
      "info": {
        "offers": [
          {
            "acceptIndex": 0,
            "format": "eip712",
            "payload": {
              "amount": "5000",
              "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
              "network": "eip155:8453",
              "payTo": "0x0E84dDEdAaE6A779c462C22a59F301EC31B6b808",
              "resourceUrl": "https://x402.ottoai.services/tweet-search",
              "scheme": "exact",
              "validUntil": 1786570502,
              "version": 1
            },
            "signature": "0x11fe8c2f5aa741599dc7579bba931b41b61c3cb93ef59de83ca445e2fee7c8c34326787907fbf9481c828b6c31ec0b3f262cebe9e95e860ce35769d0cf1a9f891b"
          }
        ]
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "offers": {
            "items": {
              "properties": {
                "acceptIndex": {
                  "type": "integer"
                },
                "format": {
                  "type": "string"
                },
                "payload": {
                  "properties": {
                    "amount": {
                      "type": "string"
                    },
                    "asset": {
                      "type": "string"
                    },
                    "network": {
                      "type": "string"
                    },
                    "payTo": {
                      "type": "string"
                    },
                    "resourceUrl": {
                      "type": "string"
                    },
                    "scheme": {
                      "type": "string"
                    },
                    "validUntil": {
                      "type": "integer"
                    },
                    "version": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "version",
                    "resourceUrl",
                    "scheme",
                    "network",
                    "asset",
                    "payTo",
                    "amount"
                  ],
                  "type": "object"
                },
                "signature": {
                  "type": "string"
                }
              },
              "required": [
                "format",
                "signature"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "offers"
        ],
        "type": "object"
      }
    },
    "otto-content-receipt": {}
  },
  "resource": {
    "description": "Search X/Twitter for any query and get the actual matching tweets — keyword, $CASHTAG, from:handle (a user timeline), @handle (mentions), or boolean OR. Each tweet returns author, full text (long-form note tweets included), timestamp, likes and retweets (reply/quote counts when available). Most-recent-first for real-time monitoring and alerting. Live X search backend, pay-per-call USDC, structured JSON — no API keys, no sign-up.",
    "iconUrl": "https://x402.ottoai.services/assets/otto-icon.png",
    "mimeType": "application/json",
    "serviceName": "Otto AI",
    "tags": [
      "twitter search",
      "x search",
      "tweet search",
      "social data",
      "crypto twitter"
    ],
    "url": "https://x402.ottoai.services/tweet-search"
  },
  "x402Version": 2
}

Response headers

{
  "access-control-allow-origin": "*",
  "access-control-expose-headers": "PAYMENT-RESPONSE,PAYMENT-REQUIRED,PAYMENT-SIGNATURE,X-Payment-Response,WWW-Authenticate,X-Payment,X-Payment-Receipt",
  "connection": "keep-alive",
  "content-type": "application/json; charset=utf-8",
  "date": "Wed, 12 Aug 2026 21:30:02 GMT",
  "etag": "W/\"28a-WJlKoL+QnB9XkOGOWAzmEKQR9u0\"",
  "payment-required": "eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQYXltZW50IHJlcXVpcmVkIiwicmVzb3VyY2UiOnsidXJsIjoiaHR0cHM6Ly94NDAyLm90dG9haS5zZXJ2aWNlcy90d2VldC1zZWFyY2giLCJkZXNjcmlwdGlvbiI6IlNlYXJjaCBYL1R3aXR0ZXIgZm9yIGFueSBxdWVyeSBhbmQgZ2V0IHRoZSBhY3R1YWwgbWF0Y2hpbmcgdHdlZXRzIOKAlCBrZXl3b3JkLCAkQ0FTSFRBRywgZnJvbTpoYW5kbGUgKGEgdXNlciB0aW1lbGluZSksIEBoYW5kbGUgKG1lbnRpb25zKSwgb3IgYm9vbGVhbiBPUi4gRWFjaCB0d2VldCByZXR1cm5zIGF1dGhvciwgZnVsbCB0ZXh0IChsb25nLWZvcm0gbm90ZSB0d2VldHMgaW5jbHVkZWQpLCB0aW1lc3RhbXAsIGxpa2VzIGFuZCByZXR3ZWV0cyAocmVwbHkvcXVvdGUgY291bnRzIHdoZW4gYXZhaWxhYmxlKS4gTW9zdC1yZWNlbnQtZmlyc3QgZm9yIHJlYWwtdGltZSBtb25pdG9yaW5nIGFuZCBhbGVydGluZy4gTGl2ZSBYIHNlYXJjaCBiYWNrZW5kLCBwYXktcGVyLWNhbGwgVVNEQywgc3RydWN0dXJlZCBKU09OIOKAlCBubyBBUEkga2V5cywgbm8gc2lnbi11cC4iLCJtaW1lVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLCJzZXJ2aWNlTmFtZSI6Ik90dG8gQUkiLCJ0YWdzIjpbInR3aXR0ZXIgc2VhcmNoIiwieCBzZWFyY2giLCJ0d2VldCBzZWFyY2giLCJzb2NpYWwgZGF0YSIsImNyeXB0byB0d2l0dGVyIl0sImljb25VcmwiOiJodHRwczovL3g0MDIub3R0b2FpLnNlcnZpY2VzL2Fzc2V0cy9vdHRvLWljb24ucG5nIn0sImFjY2VwdHMiOlt7InNjaGVtZSI6ImV4YWN0IiwibmV0d29yayI6ImVpcDE1NTo4NDUzIiwiYW1vdW50IjoiNTAwMCIsImFzc2V0IjoiMHg4MzM1ODlmQ0Q2ZURiNkUwOGY0YzdDMzJENGY3MWI1NGJkQTAyOTEzIiwicGF5VG8iOiIweDBFODRkREVkQWFFNkE3NzljNDYyQzIyYTU5RjMwMUVDMzFCNmI4MDgiLCJtYXhUaW1lb3V0U2Vjb25kcyI6MzAwLCJleHRyYSI6eyJuYW1lIjoiVVNEIENvaW4iLCJ2ZXJzaW9uIjoiMiJ9fV0sImV4dGVuc2lvbnMiOnsib2ZmZXItcmVjZWlwdCI6eyJpbmZvIjp7Im9mZmVycyI6W3siZm9ybWF0IjoiZWlwNzEyIiwiYWNjZXB0SW5kZXgiOjAsInBheWxvYWQiOnsidmVyc2lvbiI6MSwicmVzb3VyY2VVcmwiOiJodHRwczovL3g0MDIub3R0b2FpLnNlcnZpY2VzL3R3ZWV0LXNlYXJjaCIsInNjaGVtZSI6ImV4YWN0IiwibmV0d29yayI6ImVpcDE1NTo4NDUzIiwiYXNzZXQiOiIweDgzMzU4OWZDRDZlRGI2RTA4ZjRjN0MzMkQ0ZjcxYjU0YmRBMDI5MTMiLCJwYXlUbyI6IjB4MEU4NGRERWRBYUU2QTc3OWM0NjJDMjJhNTlGMzAxRUMzMUI2YjgwOCIsImFtb3VudCI6IjUwMDAiLCJ2YWxpZFVudGlsIjoxNzg2NTcwNTAyfSwic2lnbmF0dXJlIjoiMHgxMWZlOGMyZjVhYTc0MTU5OWRjNzU3OWJiYTkzMWI0MWI2MWMzY2I5M2VmNTlkZTgzY2E0NDVlMmZlZTdjOGMzNDMyNjc4NzkwN2ZiZjk0ODFjODI4YjZjMzFlYzBiM2YyNjJjZWJlOWU5NWU4NjBjZTM1NzY5ZDBjZjFhOWY4OTFiIn1dfSwic2NoZW1hIjp7IiRzY2hlbWEiOiJodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYSIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7Im9mZmVycyI6eyJ0eXBlIjoiYXJyYXkiLCJpdGVtcyI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJmb3JtYXQiOnsidHlwZSI6InN0cmluZyJ9LCJhY2NlcHRJbmRleCI6eyJ0eXBlIjoiaW50ZWdlciJ9LCJwYXlsb2FkIjp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7InZlcnNpb24iOnsidHlwZSI6ImludGVnZXIifSwicmVzb3VyY2VVcmwiOnsidHlwZSI6InN0cmluZyJ9LCJzY2hlbWUiOnsidHlwZSI6InN0cmluZyJ9LCJuZXR3b3JrIjp7InR5cGUiOiJzdHJpbmcifSwiYXNzZXQiOnsidHlwZSI6InN0cmluZyJ9LCJwYXlUbyI6eyJ0eXBlIjoic3RyaW5nIn0sImFtb3VudCI6eyJ0eXBlIjoic3RyaW5nIn0sInZhbGlkVW50aWwiOnsidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInZlcnNpb24iLCJyZXNvdXJjZVVybCIsInNjaGVtZSIsIm5ldHdvcmsiLCJhc3NldCIsInBheVRvIiwiYW1vdW50Il19LCJzaWduYXR1cmUiOnsidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiZm9ybWF0Iiwic2lnbmF0dXJlIl19fX0sInJlcXVpcmVkIjpbIm9mZmVycyJdfX0sIm90dG8tY29udGVudC1yZWNlaXB0Ijp7fSwiYnVpbGRlci1jb2RlIjp7ImluZm8iOnsiYSI6ImJjX2hjMmRocTA5In0sInNjaGVtYSI6eyIkc2NoZW1hIjoiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWEiLCJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJhIjp7InR5cGUiOiJzdHJpbmciLCJwYXR0ZXJuIjoiXlthLXowLTlfXXsxLDMyfSQiLCJkZXNjcmlwdGlvbiI6IkFwcCBidWlsZGVyIGNvZGUifSwidyI6eyJ0eXBlIjoic3RyaW5nIiwicGF0dGVybiI6Il5bYS16MC05X117MSwzMn0kIiwiZGVzY3JpcHRpb24iOiJXYWxsZXQgYnVpbGRlciBjb2RlIn0sInMiOnsidHlwZSI6ImFycmF5IiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyIsInBhdHRlcm4iOiJeW2EtejAtOV9dezEsMzJ9JCJ9LCJkZXNjcmlwdGlvbiI6IlNlcnZpY2UgYnVpbGRlciBjb2RlcyJ9fSwiYWRkaXRpb25hbFByb3BlcnRpZXMiOmZhbHNlfX0sImJhemFhciI6eyJpbmZvIjp7ImlucHV0Ijp7InR5cGUiOiJodHRwIiwicXVlcnlQYXJhbXMiOnsicXVlcnkiOiIkQlRDIn0sIm1ldGhvZCI6IkdFVCJ9LCJvdXRwdXQiOnsidHlwZSI6Impzb24iLCJleGFtcGxlIjp7InN0YXR1cyI6InN1Y2Nlc3MiLCJkYXRhIjp7InF1ZXJ5IjoiJEJUQyIsIm1vZGUiOiJMYXRlc3QiLCJjb3VudCI6MiwidHdlZXRzIjpbXSwiZ2VuZXJhdGVkQXQiOiIyMDI2LTA2LTMwVDEzOjQ1OjAwLjAwMFoifSwibWV0YSI6eyJnZW5lcmF0ZWRBdCI6IiIsInZhbGlkVW50aWwiOiIiLCJzdGFsZW5lc3NTZWMiOjAsImRlZ3JhZGVkIjpmYWxzZX19fX0sInNjaGVtYSI6eyIkc2NoZW1hIjoiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWEiLCJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJpbnB1dCI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJ0eXBlIjp7InR5cGUiOiJzdHJpbmciLCJjb25zdCI6Imh0dHAifSwibWV0aG9kIjp7InR5cGUiOiJzdHJpbmciLCJlbnVtIjpbIkdFVCJdfSwicXVlcnlQYXJhbXMiOnsidHlwZSI6Im9iamVjdCIsInByb3BlcnRpZXMiOnsicXVlcnkiOnsidHlwZSI6InN0cmluZyIsImRlc2NyaXB0aW9uIjoiWC9Ud2l0dGVyIHNlYXJjaCBxdWVyeS4gUGxhaW4ga2V5d29yZHMvdG9waWNzLCBhICRDQVNIVEFHLCBmcm9tOmhhbmRsZSBmb3IgYSB1c2VyIHRpbWVsaW5lLCBAaGFuZGxlIGZvciBtZW50aW9ucywgb3IgYm9vbGVhbiBPUiAodXBwZXJjYXNlKS4gRXhhbXBsZTogXCIkQlRDIE9SIGJpdGNvaW4gLWlzOnJldHdlZXRcIi4ifX0sInJlcXVpcmVkIjpbInF1ZXJ5Il19fSwicmVxdWlyZWQiOlsidHlwZSIsIm1ldGhvZCJdLCJhZGRpdGlvbmFsUHJvcGVydGllcyI6ZmFsc2V9LCJvdXRwdXQiOnsidHlwZSI6Im9iamVjdCIsInByb3BlcnRpZXMiOnsidHlwZSI6eyJ0eXBlIjoic3RyaW5nIn0sImV4YW1wbGUiOnsidHlwZSI6Im9iamVjdCIsInByb3BlcnRpZXMiOnsic3RhdHVzIjp7InR5cGUiOiJzdHJpbmciLCJlbnVtIjpbInN1Y2Nlc3MiXX0sImRhdGEiOnsiZGVzY3JpcHRpb24iOiJFbmRwb2ludCBwYXlsb2FkIChzZWUgbWV0YS5nZW5lcmF0ZWRBdCBmb3IgZnJlc2huZXNzKSJ9LCJtZXRhIjp7InR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbInN0YXR1cyIsImRhdGEiLCJtZXRhIl19fSwicmVxdWlyZWQiOlsidHlwZSJdfX0sInJlcXVpcmVkIjpbImlucHV0Il19fX19",
  "server": "railway-hikari",
  "transfer-encoding": "chunked",
  "vary": "accept-encoding",
  "x-hikari-trace": "iad1.fp5t,ams1.aydy",
  "x-powered-by": "Express",
  "x-railway-edge": "iad1",
  "x-railway-request-id": "jPVRlBRqS8m0u7n85nX1uw, rGfkxkJGSPOdNLGds_GTAg"
}

Response body

{
  "contact": {
    "email": "admin@useotto.xyz",
    "feedback": "POST https://x402.ottoai.services/feedback ($0.001) -- money-back guarantee on Otto-recommended services and Full Auto; feature requests welcome (email/Telegram are free).",
    "telegram": "https://t.me/DeFAI_Capital",
    "twitter": "https://twitter.com/useOttoAI"
  },
  "docs": "https://docs.useotto.xyz/getting-started/agent-quickstart",
  "error": "payment_required",
  "hint": "This is a pay-per-call x402 endpoint. The price and payment options (networks, signed offers) are in the PAYMENT-REQUIRED response header (x402 v2). Pay with an x402 client, then retry to receive the data.",
  "price": "$0.005",
  "x402Version": 2
}

Request headers

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

Machine contract

Schemas.

InputJSON
{
  "method": "GET",
  "queryParams": {
    "query": "$BTC"
  },
  "type": "http"
}
OutputJSON
{
  "example": {
    "data": {
      "count": 2,
      "generatedAt": "2026-06-30T13:45:00.000Z",
      "mode": "Latest",
      "query": "$BTC",
      "tweets": []
    },
    "meta": {
      "degraded": false,
      "generatedAt": "",
      "stalenessSec": 0,
      "validUntil": ""
    },
    "status": "success"
  },
  "type": "json"
}