Docs · Publishing & distribution · Hosted publishing

Hosted publishing Pro

Publish your feed to a stable URL at feeds.gtfsx.com/<slug>/gtfs.zip. That URL is what you hand to Google Transit, the Mobility Database, trip planners, and your own riders — and it keeps working when you re-publish.

What it is

"Hosted publishing" means GTFS·X stores your feed and serves it from a fixed URL that doesn't change between versions. Every time you publish, the canonical URL updates atomically: trip planners get the new schedule on their next fetch without you mailing anyone a new link.

For each published project you get four things:

The current-publication section also gives you a "Copy editor link" button (alongside "Open in editor"). That link opens the published feed straight in the GTFS·X editor — no account needed — so a colleague can review or tweak the live feed in one click. It's the same share pattern as a draft review link, but it tracks the canonical published version.

How to publish a feed

Open the feed in the editor and click Share & Publish in the footer (next to Timetable / Service Summary / Validation). The publish flow needs a signed-in account on the Pro or Agency plan — anonymous drafts can be exported as ZIP but not hosted.

  1. Pick a slug. The default is derived from the feed name (e.g. "Sunny Valley Transit" → sunny-valley-transit). You can edit it before the first publish: lowercase letters, digits, and hyphens, up to 63 characters, must start with a letter or digit. The slug is the part of the URL that doesn't change between updates, so pick something a regulator wouldn't be embarrassed by.
  2. Confirm what's included. Publishing snapshots the current state of the project: every file the editor would produce on Export GTFS goes into the published ZIP. Validation errors block publishing; warnings don't.
  3. Click Publish. Within a few seconds the canonical URL serves the new ZIP. Re-publishing later replaces the served ZIP atomically; consumers hitting the URL never see a half-written file.
Share & Publish tab in the GTFS·X editor showing a published Sunny Valley Transit feed: canonical URL, publish timestamp, snapshot dropdown, Routes/Stops/Trips counts.
Share & Publish for an already-published feed. Current publication URL at the top with Copy URL, a "Copy editor link" that opens the feed in the editor, and Unpublish; the snapshot picker below selects which version is serving canonical.

Updating a published feed

There's no separate "update" action: when you click Publish on a feed that already has a canonical slug, the new snapshot replaces the old one at the same URL. Cache headers tell consumers the feed is fresh for one hour and revalidate after that, so most ingestors will pick up your change within a day even if they don't poll aggressively. Trip planners that pull on their own cadence (Google Maps, Apple Maps) will follow their own schedule.

The previous snapshot stays in storage (the editor's Snapshots tab is where you can browse and roll back), but only the latest snapshot is served at the canonical URL. There's no public history of past versions.

Scheduling a publish for later

Sometimes a change should go live at a specific time — a service change that starts on the first of the month, an overnight cutover, or a new feed that shouldn't appear until the route opens. Rather than clicking Publish at that exact moment, schedule it.

In Share & Publish, pick the snapshot, switch the publish control from Publish now to Schedule for later, and choose a date and time (shown in your browser's local time zone). GTFS·X renders that snapshot's feed when you schedule and stores it, so the publish runs on its own — you don't need to keep the editor open or even be online when the time arrives.

Draft preview links

Before publishing a change to riders, you'll often want a stakeholder to look at it — a board member, an agency director, a partner operator. Draft preview links solve that without exposing your work-in-progress at the canonical URL.

From the same Share & Publish tab, generate a draft link. You get back an unlisted URL like https://feeds.gtfsx.com/<slug>/draft/<token>.zip that serves the current working snapshot without overwriting the published version. Defaults to expiring in 30 days (configurable up to one year), and you can revoke a link before it expires from the same tab.

Draft URLs are marked X-Robots-Tag: noindex and aren't listed anywhere, but they're not authenticated — anyone with the link can fetch the ZIP. Treat them like an unlisted YouTube video: fine for "share with a few people," not fine for confidential data.

What's not included

Publishing gives you the URL. Getting that URL into the trip planners and catalogs that riders actually use is still on you. The agency-side submissions GTFS·X does not do for you:

You only have to do each of these once. After that the catalogs poll your URL on their own.

Tier limits and pricing

Hosted publishing is part of the Pro and Agency plans:

See pricing for the full feature comparison.

Edge cases and gotchas

See also