C

Surf Twitter — MPP Grade C

Preview responses and set spending limits for this service through use.mpp.land Free budget controls, response samples, and reliability routing.

On-chain Activity

1,100 Total txs
5 7d txs
$0.03 7d volume
$3.48 Total volume
11 Unique payers
0 Unique clients
7-day activity ▁▁▁▁▁▁█

Compliance Checks

All paid ops declare 402 response MUST 10pt
All x-payment-info valid MUST 10pt
Challenge has Cache-Control: no-store MUST 5pt
- Challenge digest on POST SHOULD 3pt
Challenge has expires SHOULD 3pt
Challenge has Problem Details SHOULD 2pt
Challenge has required params MUST 5pt
Challenge has WWW-Authenticate MUST 5pt
Challenge returns 402 MUST 10pt
Correct Content-Type MUST 5pt
Has Cache-Control on discovery SHOULD 5pt
Has input schemas SHOULD 5pt
Has llms.txt SHOULD 5pt
Has /openapi.json at root MUST 10pt
Has required top-level fields MUST 10pt
Served over HTTPS MUST 10pt
Uses standard categories SHOULD 2pt
1 issue
  • 402 response missing Cache-Control: no-store

Paid Operations (26)

GET /tweets/search dynamic
Search tweets

Advanced search with 50+ operators

Amount
0.005
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.005 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
q query string Yes Search query with advanced operators
sort query string No Sort order
limit query integer No Max results
cursor query string No Pagination cursor

Response Schema (200)

{
  "$ref": "#/components/schemas/TweetSearchResponse"
}
GET /tweets/{id} dynamic
Fetch tweet by ID

Returns a single tweet with author, quoted tweet, and parent (if reply) auto-included

Amount
0.001
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.001 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
id path string Yes Tweet ID

Response Schema (200)

{
  "$ref": "#/components/schemas/SingleTweetResponse"
}
GET /tweets dynamic
Batch fetch tweets by IDs
Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
ids query string Yes Comma-separated tweet IDs

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedTweets"
}
GET /tweets/{id}/replies dynamic
Get tweet replies

Paginated replies, sortable by Relevance, Latest, or Likes

Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
id path string Yes Tweet ID
sort query string No Sort order
cursor query string No Pagination cursor
since query integer No Unix timestamp (seconds) - on or after
until query integer No Unix timestamp (seconds) - before

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedTweets"
}
GET /tweets/{id}/quotes dynamic
Get quote tweets
Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
id path string Yes Tweet ID
cursor query string No Pagination cursor
since query integer No Unix timestamp (seconds) - on or after
until query integer No Unix timestamp (seconds) - before
include_replies query boolean No Include replies in results

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedTweets"
}
GET /tweets/{id}/retweeters dynamic
Get users who retweeted
Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
id path string Yes Tweet ID
cursor query string No Pagination cursor

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedUsers"
}
GET /tweets/{id}/thread dynamic
Get thread context

Returns the full thread: parent chain and child replies

Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
id path string Yes Tweet ID
cursor query string No Pagination cursor

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedTweets"
}
GET /tweets/{id}/article dynamic
Get long-form article

Retrieve full article content for a tweet that contains a Twitter Article

Amount
0.005
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.005 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
id path string Yes Tweet ID

Response Schema (200)

{
  "$ref": "#/components/schemas/ArticleResponse"
}
GET /users/search dynamic
Search users by keyword
Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
q query string Yes Search keyword
cursor query string No Pagination cursor

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedUsers"
}
GET /users/relationship dynamic
Check follow relationship
Amount
0.001
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.001 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
source query string Yes Source username
target query string Yes Target username

Response Schema (200)

{
  "$ref": "#/components/schemas/RelationshipResponse"
}
GET /users/{ref} dynamic
Fetch user profile

By username or user ID (auto-detects)

Amount
0.001
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.001 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
ref path string Yes Username or user ID

Response Schema (200)

{
  "$ref": "#/components/schemas/SingleUserResponse"
}
GET /users dynamic
Batch fetch users by IDs
Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
ids query string Yes Comma-separated user IDs

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedUsers"
}
GET /users/{ref}/tweets dynamic
Get user tweets
Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
ref path string Yes Username or user ID
cursor query string No Pagination cursor
include_replies query boolean No Include replies

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedTweets"
}
GET /users/{ref}/mentions dynamic
Get tweets mentioning user
Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
ref path string Yes Username or user ID
cursor query string No Pagination cursor
since query integer No Unix timestamp (seconds) - on or after
until query integer No Unix timestamp (seconds) - before

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedTweets"
}
GET /users/{ref}/followers dynamic
Get user followers
Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
ref path string Yes Username or user ID
cursor query string No Pagination cursor
page_size query integer No Results per page

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedUsers"
}
GET /users/{ref}/following dynamic
Get user following
Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
ref path string Yes Username or user ID
cursor query string No Pagination cursor
page_size query integer No Results per page

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedUsers"
}
GET /users/{ref}/verified_followers dynamic
Get verified followers only
Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
ref path string Yes Username or user ID
cursor query string No Pagination cursor

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedUsers"
}
GET /lists/{id}/tweets dynamic
Get list tweets
Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
id path string Yes List ID
cursor query string No Pagination cursor
since query integer No Unix timestamp (seconds) - on or after
until query integer No Unix timestamp (seconds) - before
include_replies query boolean No Include replies

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedTweets"
}
GET /lists/{id}/members dynamic
Get list members
Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
id path string Yes List ID
cursor query string No Pagination cursor

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedUsers"
}
GET /lists/{id}/followers dynamic
Get list followers
Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
id path string Yes List ID
cursor query string No Pagination cursor

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedUsers"
}
GET /communities/search dynamic
Search community tweets
Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
q query string Yes Search keyword
sort query string No Sort order
cursor query string No Pagination cursor

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedTweets"
}
GET /communities/{id} dynamic
Get community info
Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
id path string Yes Community ID

Response Schema (200)

{
  "$ref": "#/components/schemas/CommunityResponse"
}
GET /communities/{id}/tweets dynamic
Get community tweets
Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
id path string Yes Community ID
cursor query string No Pagination cursor

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedTweets"
}
GET /communities/{id}/members dynamic
Get community members
Amount
0.004
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.004 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
id path string Yes Community ID
cursor query string No Pagination cursor

Response Schema (200)

{
  "$ref": "#/components/schemas/PaginatedUsers"
}
GET /spaces/{id} dynamic
Get space detail
Amount
0.001
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.001 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
id path string Yes Space ID

Response Schema (200)

{
  "$ref": "#/components/schemas/SpaceResponse"
}
GET /trends dynamic
Get trending topics
Amount
0.001
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.001 pricingMode: fixed protocols: [x402 mpp]

Parameters

NameInTypeRequiredDescription
woeid query integer No WOEID location identifier (1 = worldwide)
count query integer No Number of trends to return

Response Schema (200)

{
  "$ref": "#/components/schemas/TrendsResponse"
}

Payment Methods

Methods
tempo (from challenge)
Intents
charge, session (from challenge)
Currencies (discovery)
-
Currency (challenge)
USDC.e on Tempo Mainnet Presto (Tempo Mainnet Presto)
Multiple Challenges
Yes

Recipients

  • 0x2BB201f1bb056eb738718BD7A3ad1BEF24b883bb
Per-endpoint breakdown
GET /tweets
0x2BB201f1bb056eb738718BD7A3ad1BEF24b883bb
GET /tweets/search
0x2BB201f1bb056eb738718BD7A3ad1BEF24b883bb
GET /tweets/{id}
0x2BB201f1bb056eb738718BD7A3ad1BEF24b883bb
GET /tweets/{id}/quotes
0x2BB201f1bb056eb738718BD7A3ad1BEF24b883bb
GET /tweets/{id}/replies
0x2BB201f1bb056eb738718BD7A3ad1BEF24b883bb
GET /tweets/{id}/retweeters
0x2BB201f1bb056eb738718BD7A3ad1BEF24b883bb

Security

TLS Version
TLSv1.3
Challenge ID Unique
Yes
Challenge ID Length
43
Digest Binding
-

Uptime

Discovery
Reachable (99ms)
Challenge
Reachable (302ms)
Last Checked

Schema Completeness

Paid Operations
26
With Input Schema
0
With Description
26
26 missing schema
  • GET /tweets/search
  • GET /tweets/{id}
  • GET /tweets
  • GET /tweets/{id}/replies
  • GET /tweets/{id}/quotes
  • GET /tweets/{id}/retweeters
  • GET /tweets/{id}/thread
  • GET /tweets/{id}/article
  • GET /users/search
  • GET /users/relationship
  • GET /users/{ref}
  • GET /users
  • GET /users/{ref}/tweets
  • GET /users/{ref}/mentions
  • GET /users/{ref}/followers
  • GET /users/{ref}/following
  • GET /users/{ref}/verified_followers
  • GET /lists/{id}/tweets
  • GET /lists/{id}/members
  • GET /lists/{id}/followers
  • GET /communities/search
  • GET /communities/{id}
  • GET /communities/{id}/tweets
  • GET /communities/{id}/members
  • GET /spaces/{id}
  • GET /trends

Documentation

Homepage
-
API Reference
-
llms.txt
-

Discovery

OpenAPI URL
https://twitter.surf.cascade.fyi/openapi.json
OpenAPI Version
3.1.0
Service Version
2.0.0
Document Size
31062 bytes
Document Hash
76c14137e9d76cea3584702d40dd3339cf9e6235da6fc0507fe8621d77a22042

Version History (52 snapshots)

Grade: F (13%) → C (66%)
Grade: C (66%) → F (13%)
Grade: F (13%) → C (66%)
Grade: C (66%) → F (13%)
Grade: F (13%) → C (66%)
Grade: C (66%) → F (13%)
Grade: F (13%) → C (66%)
Grade: C (66%) → F (13%)
Scan snapshots
Date Grade Score Response Status
2026-04-06 C 66% 448ms Up
2026-04-07 C 66% 115ms Up
2026-04-08 C 66% 101ms Up
2026-04-09 C 66% 131ms Up
2026-04-10 C 66% 183ms Up
2026-04-11 C 66% 59ms Up
2026-04-12 C 66% 103ms Up
2026-04-13 C 66% 212ms Up
2026-04-14 C 66% 91ms Up
2026-04-15 C 66% 73ms Up
2026-04-16 C 66% 107ms Up
2026-04-17 C 66% 93ms Up
2026-04-18 C 66% 114ms Up
2026-04-19 C 66% 104ms Up
2026-04-20 C 66% 103ms Up
2026-04-21 C 66% 94ms Up
2026-04-22 C 66% 107ms Up
2026-04-23 C 66% 93ms Up
2026-04-24 C 66% 110ms Up
2026-04-25 C 66% 100ms Up
2026-04-26 C 66% 105ms Up
2026-04-27 C 66% 115ms Up
2026-04-28 C 66% 127ms Up
2026-04-29 C 66% 63ms Up
2026-04-30 C 66% 98ms Up
2026-05-01 C 66% 195ms Up
2026-05-02 C 66% 92ms Up
2026-05-03 C 66% 74ms Up
2026-05-04 C 66% 121ms Up
2026-05-05 C 66% 140ms Up
2026-05-06 C 66% 96ms Up
2026-05-07 C 66% 356ms Up
2026-05-08 C 66% 80ms Up
2026-05-09 C 66% 64ms Up
2026-05-10 C 66% 200ms Up
2026-05-11 C 66% 116ms Up
2026-05-12 C 66% 91ms Up
2026-05-13 C 66% 102ms Up
2026-05-14 C 66% 89ms Up
2026-05-15 C 66% 87ms Up
2026-05-16 C 66% 109ms Up
2026-05-17 C 66% 106ms Up
2026-05-18 C 66% 93ms Up
2026-05-19 C 66% 125ms Up
2026-05-20 C 66% 87ms Up
2026-05-21 C 66% 99ms Up
2026-05-22 C 66% 177ms Up
2026-05-23 C 66% 102ms Up
2026-05-24 C 66% 102ms Up
2026-05-25 C 66% 97ms Up
2026-05-26 C 66% 76ms Up
2026-05-27 C 66% 89ms Up