{"uid":"cap_6sLKT4A-jdC9I3DvwXAjj","slug":"tempvpn-stream-metered-wireguard-vpn-session-f10ec4f5","name":"TempVPN Stream — Metered WireGuard VPN Session","description":"Separate node-bound metered product. The registry is the public payment and control origin; the selected node executes the stream and WireGuard peer. A JSON-body POST returns an MPP Session v2 Challenge when unpaid and an SSE control stream after valid funding. Parse the response as Server-Sent Events (`event:` followed by JSON `data:`), never as a one-shot JSON response. The first `message` event has type `vpn-session` and supplies WireGuard configuration; its following `message` event has type `paid-interval` for the first 60-second unit consumed at open. Further `paid-interval` messages arrive every 60 seconds while live. `payment-need-voucher` pauses access until a higher cumulative voucher or top-up is accepted. `payment-receipt` is the final event for normal expiry or close. All atomic payment amounts are decimal strings. The stream ends after its final receipt or a client disconnect. An authenticated empty POST with the same request fields in its query sends a Session v2 voucher, top-up, resume, or close operation; this is the canonical MPPX Session manager transport. Streaming credentials are not portable fixed-session balances.","url":"https://registry.tempvpn.xyz/sessions/stream","method":"POST","headers":{},"bodySchema":{"type":"object","required":["node_id","client_public_key","duration_seconds"],"properties":{"node_id":{"type":"string","minLength":1,"description":"ID of the node that will own this non-portable streaming session."},"duration_seconds":{"type":"integer","format":"uint64","minimum":60,"multipleOf":60,"description":"Safety cap in seconds as a positive multiple of 60. Streaming usage costs $0.01 per minute."},"client_public_key":{"type":"string","pattern":"^[A-Za-z0-9+/]{43}=$","maxLength":44,"minLength":44,"description":"Canonical base64-encoded 32-byte WireGuard public key."}},"additionalProperties":false},"responseSchema":{"type":"string","description":"SSE-framed event stream. Parse each event: and JSON data: field."},"example":null,"exampleRequest":null,"tags":["networking","privacy","tempo","vpn","wireguard","web"],"displayCostAmount":"0.01","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"registry","requiresHandshake":false,"reviewCount":1,"rating":{"score":"0.50","successRate":"1.00","reviews":1,"stars":"3.0","state":"rated"},"availabilityStatus":"healthy","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.01/call","primary":{"kind":"static","protocol":"mpp","network":"tempo","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"mpp","network":"tempo","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_3TacMcHmJMDbEruDQ-Yjq","protocol":"mpp","methodType":"crypto","chain":"tempo","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":null,"unit":"request","depositMicros":null,"planRef":null}],"brandName":"TempVPN","brandSlug":"tempvpn-mpp","brandBaseUrl":"https://registry.tempvpn.xyz","brandDocsUrl":"https://registry.tempvpn.xyz/docs","whatItDoes":"Creates or resumes a node-bound, per-minute-billed WireGuard VPN streaming session with SSE-based lifecycle events and MPP payment integration.","exampleAgentPrompt":"Connect me to TempVPN node abc123 using my WireGuard public key dGVzdGtleXRlc3RrZXl0ZXN0a2V5dGVzdGtleXQ= for up to 300 seconds — I need a metered VPN stream billed per minute.","exampleUseCases":[{"title":"Temporary privacy tunnel for sensitive task","prompt":"Open a TempVPN streaming session on node nyc-01 with my WireGuard public key dGVzdGtleXRlc3RrZXl0ZXN0a2V5dGVzdGtleXQ= for 120 seconds — I just need a quick private tunnel for this one task."},{"title":"Agent-managed per-minute VPN for automation","prompt":"Start a metered WireGuard stream on TempVPN node lon-02 using public key dGVzdGtleXRlc3RrZXl0ZXN0a2V5dGVzdGtleXQ= with a 600-second safety cap — keep it alive and handle the minute-by-minute payment events automatically."},{"title":"Resuming a paused TempVPN stream","prompt":"My TempVPN streaming session on node sfo-03 got paused waiting for a voucher — resume it using my WireGuard key dGVzdGtleXRlc3RrZXl0ZXN0a2V5dGVzdGtleXQ= and the same node and duration settings I used before."}],"resultDescription":"On unpaid requests, returns an MPP Session v2 Challenge for payment. After valid funding, returns a Server-Sent Events (SSE) control stream. The first SSE message (type 'vpn-session') delivers WireGuard peer configuration. Subsequent 'paid-interval' events arrive every 60 seconds while the session is live. 'payment-need-voucher' events pause access pending top-up. 'payment-receipt' is the terminal event for normal expiry or explicit close. All payment amounts are decimal strings.","failureModes":["Invalid or malformed client_public_key (not valid base64 WireGuard key format) — request rejected","node_id does not exist or is offline — node unavailable error","duration_seconds not a positive multiple of 60 — validation error","Insufficient payment / voucher not received — payment-need-voucher event pauses stream","Client disconnect terminates the stream prematurely","Session credentials are node-bound and non-portable — cannot transfer to another node","Top-up or close operations sent without authentication — rejected"],"whenToPreferThis":"Choose this endpoint when you need a metered, pay-as-you-go WireGuard VPN stream billed at $0.01 per 60-second interval rather than a fixed prepaid session. Prefer this over the fixed Sessions endpoint when session duration is uncertain or you want fine-grained per-minute cost control. This endpoint is the right choice when you need real-time SSE lifecycle events (vpn-session config, paid-interval, payment-need-voucher, payment-receipt) and MPPX Session v2 voucher/top-up/close management on a specific node.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":1,"lastUsedAt":"2026-09-02T17:59:51.781Z","lastSuccessfullyRanAt":"2026-09-02T17:59:51.781Z","lastHealthCheckAt":"2026-09-13T18:36:18.680Z","isFirstParty":false}