B
StableUpload
Preview responses and set spending limits for this service through use.mpp.land
Free budget controls, response samples, and reliability routing.
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
- POST endpoint challenge missing digest parameter (SHOULD per spec)
Paid Operations (3)
POST /api/site/renew dynamic
Renew a site for count × 6 months. Price = tier price × count.
- Amount
- map[currency:USD max:20.00 min:0.02 mode:dynamic]
- Currency
- -
- Method
- Intent
- -
- 402 Declared
- Yes
Non-standard x-payment-info fields:
price: map[currency:USD max:20.00 min:0.02 mode:dynamic] protocols: [map[x402:map[]] map[mpp:map[currency:0x20c0000000000000000000000000000000000001 intent:charge method:tempo]]]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| count | integer | No |
Number of 6-month periods to extend (default 1)
default: 1
|
| tier | string | Yes |
Tier of the upload (must match the original tier)
enum: 10mb, 100mb, 1gb |
| uploadId | string | Yes | Upload ID to renew |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| count | number | - |
| newExpiresAt | string | - |
| uploadId | string | - |
POST /api/upload dynamic
Buy an upload slot. Agent uploads file via returned URL.
- Amount
- map[currency:USD max:2.00 min:0.02 mode:dynamic]
- Currency
- -
- Method
- Intent
- -
- 402 Declared
- Yes
Non-standard x-payment-info fields:
price: map[currency:USD max:2.00 min:0.02 mode:dynamic] protocols: [map[x402:map[]] map[mpp:map[currency:0x20c0000000000000000000000000000000000001 intent:charge method:tempo]]]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| contentType | string | Yes | MIME type of the file (e.g. image/png, video/mp4) |
| filename | string | Yes | Name of the file to upload |
| tier | string | Yes |
Upload tier: 10mb ($0.02), 100mb ($0.20), 1gb ($2.00)
enum: 10mb, 100mb, 1gb |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| curlExample | string | - |
| expiresAt | string | - |
| maxSize | number | - |
| publicUrl | string | - |
| siteUrl | string | - |
| txHash | string | - |
| uploadId | string | - |
| uploadUrl | string | - |
POST /api/site dynamic
Buy a site upload slot. Upload a zip file, then activate to extract and serve as a static site.
- Amount
- map[currency:USD max:2.00 min:0.02 mode:dynamic]
- Currency
- -
- Method
- Intent
- -
- 402 Declared
- Yes
Non-standard x-payment-info fields:
price: map[currency:USD max:2.00 min:0.02 mode:dynamic] protocols: [map[x402:map[]] map[mpp:map[currency:0x20c0000000000000000000000000000000000001 intent:charge method:tempo]]]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| filename | string | Yes | Name of the zip file to upload |
| tier | string | Yes |
Upload tier: 10mb ($0.02), 100mb ($0.20), 1gb ($2.00)
enum: 10mb, 100mb, 1gb |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| curlExample | string | - |
| expiresAt | string | - |
| maxSize | number | - |
| txHash | string | - |
| uploadId | string | - |
| uploadUrl | string | - |
Payment Methods
- Methods
- tempo (from challenge)
- Intents
- charge (from challenge)
- Currencies (discovery)
- -
- Currency (challenge)
- USDC.e on Tempo (Tempo)
- Multiple Challenges
- No
Recipients
- 0x06dFF3c8380b5D1799874adA903fc3422882FD6f
Per-endpoint breakdown
- POST /api/site
- 0x06dFF3c8380b5D1799874adA903fc3422882FD6f
- POST /api/site/renew
- 0x06dFF3c8380b5D1799874adA903fc3422882FD6f
- POST /api/upload
- 0x06dFF3c8380b5D1799874adA903fc3422882FD6f
Security
- TLS Version
- TLSv1.3
- Challenge ID Unique
- Yes
- Challenge ID Length
- 43
- Digest Binding
- -
Uptime
- Discovery
- Reachable (691ms)
- Challenge
- Reachable (601ms)
- Last Checked
Schema Completeness
- Paid Operations
- 3
- With Input Schema
- 3
- With Description
- 3
Documentation
- Homepage
- -
- API Reference
- -
- llms.txt
- -
Discovery
- OpenAPI URL
- https://stableupload.dev/openapi.json
- OpenAPI Version
- 3.1.0
- Service Version
- 1.0.0
- Document Size
- 21992 bytes
- Document Hash
- 37be108e7834c2e2ac5c6a2c1179115678fa8b56fd848a3b45ec31d0bbe922c9
Version History (2 snapshots)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- price changed on POST /api/site: None → {'mode': 'dynamic', 'currency': 'USD', 'min': '0.02', 'max': '2.00'}
- price changed on POST /api/site/renew: None → {'mode': 'dynamic', 'currency': 'USD', 'min': '0.02', 'max': '20.00'}
- price changed on POST /api/upload: None → {'mode': 'dynamic', 'currency': 'USD', 'min': '0.02', 'max': '2.00'}
Scan snapshots
| Date | Grade | Score | Response | Status |
|---|---|---|---|---|
| 2026-04-06 | B | 79% | 557ms | Up |
| 2026-04-07 | B | 79% | 446ms | Up |