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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| 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 |