URL suffixes

A URL suffix is text you append to the URL of a deployed page to ask RTEdge.net for something other than the page itself: its source, its versions, a sign-in, a QR code. This page lists every suffix and special query that RTEdge.net answers on deployed URLs, as checked on 2026-10-04, and links to the page that describes each one.

How to read the tables

Each row names a suffix, the exact URL form, what it returns, who may use it and which layer answers it. A platform suffix is answered before RTEdge.net reads your deployment, on every URL of every host the platform serves. A router suffix is answered by the RTEdge.net router for a deployed route, once the router has picked the route from the URL.

Rows marked Experimental work today, but they are not part of the stable surface and may change.

Source, versions and indexes

SuffixURL formReturnsWho may use itLayer
?The URL ends in /?.A 200 page that opens the saved playground URL in RTCode.io.Anyone for a public source. The owner, the editors and io:user permits for a private one.Router
?io, ?sync ExperimentalThe query is exactly ?io or ?sync, on any path of the route.As ?.As ?.Router
::i ::e ::c ExperimentalThe path ends in ::i, ::e or ::c, optionally followed by word characters.303 to <path>?.Anyone.Platform
??The URL ends in ??.307 to the versions page of the route.Anyone. The versions page asks you to sign in.Router
::v ExperimentalThe path ends in ::v, optionally followed by word characters.303 to <path>??.Anyone.Platform
*The path ends in one or more *.An HTML index of the routes you own or edit under the prefix. Signed out: 303 to <path>::sit.Signed-in visitors.Router

Worker

SuffixURL formReturnsWho may use itLayer
/:The path contains a :, as <route>/:<worker path>.The response of the route's edge worker. 404 "Worker does not exist." when the route has no worker.Anyone. edge:user is not applied.Router

Sign in

SuffixURL formReturnsWho may use itLayer
::si ::sa ::su ::soThe path ends in one of the four suffixes.A sign-in page, the signed-in user as JSON, or a 303 after signing out.Anyone.Platform
::sit, ::sud ExperimentalThe path ends in the suffix.Sign in through (a 303 when already signed in), or { u, i } as JSON.Anyone.Platform
::sic ::sac ::sitc ::soc ::suc ExperimentalThe path ends in one of the popup forms.A page that posts the user to its opener and closes.Anyone.Platform
::sh ExperimentalThe path ends in ::sh.An ES module for sign-in from a cross-site embed.Anyone.Platform

Usage and diagnostics

SuffixURL formReturnsWho may use itLayer
::u ::t ExperimentalThe path ends exactly in ::u or ::t.303 to the usage or tail dashboard at u.rt.ht.Anyone. The dashboards need sign-in.Platform
::kv ExperimentalThe path is <route path>/::kv.An HTML or JSON viewer of the route's KV storage.Signed-in visitors. The owner sees six scopes, others their own three.Router
::meta ExperimentalThe path is <route path>/::meta.JSON with a digest that changes on every deploy. 404 with null for an undeployed route.Anyone allowed to view the deployment.Router
::owner ExperimentalThe path is <route path>/::owner.JSON { "<email>": true } or false, or null when signed out.Anyone.Router
?m=uo ExperimentalThe query parameter m=uo on any path that is not a worker, index or ?? URL.Plain text: true, false or null.Anyone.Router
/::edge ExperimentalThe path contains /::edge.JSON diagnostics about the request, served as text/plain.Anyone.Platform

Utilities

SuffixURL formReturnsWho may use itLayer
::qr ExperimentalThe path ends in ::qr. Parameters: t, s, m, fg, bg, ec.A QR code as image/svg+xml, cached for a day.Anyone. Any URL.Platform
::clear ExperimentalThe path ends in ::clear.A 200 page with a Clear-Site-Data header.Anyone. Any URL.Platform
?::/h: ExperimentalThe raw query contains ::/h:.The normal response, with the header changes you ask for.Anyone. Any URL.Platform

Query parameters

These parameters change what a deployed root page returns, or filter an index. Query parameters describes each one.

ParameterWhereEffect
?<ext> ExperimentalThe root pageServes the page with the content type of a known extension, such as ?txt.
?ogo ExperimentalThe root pageReturns only the generated social tags.
Social preview parameters ExperimentalThe root pageOverrides the generated social preview for one link.
e, s, N, cursorThe * indexFilters and pages the list of routes.

Platform files

The platform answers a few fixed paths before any deployment is consulted, so a deployment cannot serve its own. Reserved paths lists them.

PathAnswer
/favicon.icoThe RTEdge.net logo as SVG. Give your page an icon with a <link rel=icon> element instead.
/apple-touch-icon*307 to https://rtcode.io/.svg.
/robots.txtA fixed policy text.

Notes

Reserved text in paths

The platform matches some text anywhere in a path, so these sequences are reserved, worker paths included:

Keep these sequences out of route, file and worker paths. /::source signs the visitor out and /::stuff returns the signed-in user, because the sign-in handler reads the letters after ::s. /a::cool redirects to /a?. A ::name that nothing claims is an ordinary worker path: /::zz reaches the worker as /:zz.

Addressing a route

Write a suffix as <route path>/::suffix. The router picks the route from the text before the first : and drops the last path segment unless that text ends in /. /docs/::meta, /docs/::kv, /docs/::owner and /docs/:api address the route name/docs. /docs::meta addresses the root route name.

The shortcuts ::u, ::t, ::i, ::e, ::c and ::v keep the whole path instead, so /docs::u and /docs::v address name/docs. Always write the slash.

Redirects to the slash form

The platform redirects some URLs before a suffix is read. A bare ? must follow a slash, so write /docs/?.

URLRedirects to
/docs??/docs/?? (307)
/docs:/docs/: (307)
/docs/*/docs* (307)

Where suffixes work

Platform suffixes answer on every URL of every host the platform serves: *.rt.ht hosts and custom domains, deployed or not. https://rtcode.io/::qr returns a QR code too. Router suffixes work on deployed routes. The in.rt.ht gateway serves any route through one origin, so https://in.rt.ht/new/::u works like https://new.rt.ht/::u.

In the playground

The playground output emulates ::su and the /: worker paths. Every other suffix on this page works on deployed URLs only. ?, ??, *, ::kv, ::meta, ::owner and the social-preview parameters are features of the RTEdge.net router. See Playground and edge differences.

See also