{"eid":"portplay","name":"PortPlay","domain":"portplay.net","resolved_by":"domain","topics":["egress"],"n_records":1,"best_vorder":1,"review":null,"aliases":["PortPlay","portplay.net"],"records":[{"rid":"egress/portplay","card":{"rid":"egress/portplay","eid":"portplay","topic":"egress","slug":"portplay","provider":"PortPlay","url":"https://portplay.net/","domain":"portplay.net","category":"game tunnel (UDP port forward)","tier":"free","verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","confidence":"documented","binding":"per-ip-shaping","identity_kind":"email","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":null,"egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-23T00:00:00.000Z","verified_basis":"live","checked_on":"2026-10-23","stale_on":"2026-11-22","n_evidence":4,"usd_month":null,"usd_per_tb_month":null,"summary":"Free: EUR 0, free forever. Session 24h, Max players 10, Ports 1, Speed 10 Mbps, Latency Standard.","duplicate_of":null,"n_unknown":3},"record":{"topic":"egress","slug":"portplay","provider":"PortPlay","url":"https://portplay.net/","category":"game tunnel (UDP port forward)","tier":"free","free_tier":{"stated":"Free: EUR 0, free forever. Session 24h, Max players 10, Ports 1, Speed 10 Mbps, Latency Standard.","unit":"mixed","metered_on":"unstated","source_url":"https://portplay.net/","read_on":"2026-10-23","notes":""},"per_object_cap":{"stated":"not applicable","bytes":null,"source_url":"https://portplay.net/","notes":""},"retention":{"stated":"not applicable","days":null,"source_url":"https://portplay.net/","notes":""},"egress":{"terms":"No byte allowance is published, on the pricing table or in the FAQ. The free plan states Session 24h, Max players 10, Ports 1, Speed 10 Mbps.; ingress: tcp+udp","metered":false,"free_allowance":"none published","price_per_tb":null,"source_url":"https://portplay.net/"},"interface":["unknown"],"interface_detail":"A Windows tray app: sign in, pick a preset or a port, copy the address. No API or CLI is described.","tooling":"PortPlay Windows app only; no CLI and no Linux client is offered","chaining":"Needs a Windows host, so it composes with a Windows instance rather than a Linux one.","limits":[{"kind":"per-ip-shaping","value":"Speed 10 Mbps on Free, 50 Mbps on Pro, 100+ Mbps on Pro Max","source":"https://portplay.net/"},{"kind":"retention-clamped","value":"Session 24h on Free, 6 months on Pro, Unlimited on Pro Max","source":"https://portplay.net/"}],"limits_note":"","binding":"per-ip-shaping","binding_note":"10 Mbps held for 30 days is about 3.2 TiB, so the byte target is reachable on paper. What actually stops a 1 TiB/month service is the pair above it: the free session is closed after 24h, one port is shared with any voice or Geyser plugin, and the plan caps the server at 10 players. The speed cap is the only number the vendor publishes, so it is named as the binding constraint.","identity_cost":{"kind":"email","detail":"An account, or Google sign-in: 'Create an account or continue with Google. Getting started is fast and free.'","country":"None"},"reliability_note":"One port and 10 players on Free. The app reconnects automatically when the link drops. No statement on end-of-session behaviour or on idle reclamation.","confidence":"documented","confidence_note":"One free session would show whether the assigned UDP port survives a reconnect and whether 10 Mbps is enforced per tunnel, per account or per session.","evidence":[{"url":"https://portplay.net/","date":"2026-10-23","proved":"Free is EUR 0 with Session 24h, Max players 10, Ports 1, Speed 10 Mbps; Pro is EUR 1.49 with 3 ports and 50 Mbps; Pro Max is EUR 4.99 with 10 ports"},{"url":"https://portplay.net/","date":"2026-10-23","proved":"Arbitrary ports: 'Set the ports you need. Simple Voice Chat, Geyser, and other plugins that require an extra TCP or UDP port work too.'"},{"url":"https://portplay.net/","date":"2026-10-23","proved":"FAQ: 'Java usually uses TCP port 25565, Bedrock and Geyser use UDP port 19132, and Simple Voice Chat uses UDP port 24454 by default.'"},{"url":"https://portplay.net/","date":"2026-10-23","proved":"The sample address is play.portplay.net:25565, so a customer gets a shared hostname plus an assigned port, not an IP of their own"}],"verdict":"qualifies-with-caveat","verified_at":"2026-10-23T00:00:00.000Z","price_per_tb_month":"EUR 0","notes":"The free allowance is a speed and a session length, not a byte quota. Because the endpoint is a vendor hostname plus a port, PortPlay demultiplexes UDP by port on a shared edge instead of spending an IP per customer, which is the structural reason it can give UDP away. Windows 10/11 only. Nothing on the site says what happens at the end of the 24h session.","extras":{"wg_path":"inside-udp","wg_detail":"No WireGuard mode of its own, but the free port forwards any UDP the client names, so a WireGuard datagram addressed to the assigned host and port would pass. That is a reading of 'Any TCP/UDP port', not a test.","ingress":"tcp+udp","volume_tib_month":null,"volume_stated":"No byte allowance is published, on the pricing table or in the FAQ. The free plan states Session 24h, Max players 10, Ports 1, Speed 10 Mbps.","bytes_transit":"yes","transit_note":"The PortPlay relay carries the datagrams; the origin only makes an outbound connection."}},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[0].value","kind":"limit:per-ip-shaping","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[1].value","kind":"limit:retention-clamped","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.price_per_tb_month","kind":"price-per-tb","num":0.0,"unit":"TB","per":"month","currency":"EUR","usd":0.0,"fx_date":"2026-10-23","parse":"ok"}],"unknown":[["$.interface","interface-unknown"],["$.per_object_cap.stated","not-applicable"],["$.retention.stated","not-applicable"]],"history":[],"drift":[]}]}