Dispatch← Back to site
Terms of ServiceSoftware License & Subscription AgreementPrivacy PolicyAcceptable Use Policy

DispatchListening

Dispatch's feed reader · for site owners

DispatchListening is how Dispatch reads the public feeds that newsrooms choose to follow, such as a police department's news releases, a city's RSS feed, a YouTube channel or a Bluesky account. When a newsroom adds one of your feeds, DispatchListening checks it for new posts so the newsroom sees them in one place.

It is a reader for feeds that people subscribed to, not a crawler. It reads the address a newsroom gave it, a few likely feed addresses when that address is a web page, and your robots.txt: it never follows the links in a feed, never walks the pages of your site and never builds a search index.

How to recognize it

Every request it makes to your site carries this user agent:

DispatchListening/1.0 (+https://dispatchsocial.app/bot)

It never presents itself as a web browser, and it never changes its name, even after a site turns it away.

What it reads

  • The feed a newsroom added, in RSS or Atom.
  • Your robots.txt, before it reads an address a newsroom gave it, and again about once a day while a newsroom follows a feed on your site.
  • When a newsroom adds a web page instead of a feed: that page, to find the feed it points to with a rel="alternate" link in its head. If it points to none, DispatchListening tries a few common feed addresses on the same site, such as /feed/ and /rss.xml, and stops after a handful of requests.
  • From each post in a feed: the headline, a summary of up to 300 characters, the author's name, the date and the link. It doesn't keep the full text of your articles or their images.
  • YouTube channels through the YouTube Data API, and Bluesky accounts through Bluesky's public API, never by loading pages on youtube.com or bsky.app.

How often it checks

  • Each feed or Bluesky account is checked every 5 to 10 minutes, depending on the kind of source. A YouTube channel is checked every 30 minutes at most.
  • If your feed sends Cache-Control: max-age, these regular checks wait at least that long, up to 30 minutes.
  • A newsroom can also ask for a check by hand, at most once every 5 minutes for each feed. A check by hand doesn't wait out max-age, but none is made while DispatchListening is waiting after an error, a Retry-After or a refusal from your site, or after it has stopped reading a feed, so the waits below hold for checks by hand too.
  • It sends If-None-Match and If-Modified-Since whenever your server gave an ETag or a Last-Modified date, so an unchanged feed can answer 304 Not Modified without sending the feed again.
  • However many newsrooms follow the same feed, DispatchListening fetches it once per check.
  • It reads at most 2 MB of a feed and waits at most 20 seconds for an answer.
  • When your server answers with an error or takes too long, it waits longer before each new try, up to about 6 hours. When it sends Retry-After, DispatchListening waits that long before it asks again, up to the same 6 hours.
  • When your site refuses a feed 3 times in a row (a 401, 403 or 451 answer, or a challenge page in place of the feed), it checks that feed only every 6 hours after that, and it never tries again under another name. The newsroom is told that your site blocks automated readers and is pointed to your email alerts instead.
  • A feed that has answered 404 or 410 for 3 days is checked every 24 hours after that.
  • These waits are kept for each feed. A newsroom adding a different feed from your site starts that feed's own checks, with a robots.txt check first.

How to opt out

DispatchListening follows robots.txt. To keep it off your whole site, add this group:

User-agent: DispatchListening
Disallow: /

To keep it away from one feed, disallow that feed's path instead. It follows the group that names DispatchListening, or the * group when no group does. The longest matching rule wins, Allow wins a tie, and the * and $ wildcards work. A site without a robots.txt is read as usual.

It reads robots.txt when a newsroom adds a feed and again about once a day, so a new rule usually takes effect within a day. The newsroom is told that your site asks automated readers not to read that feed, and Dispatch stops reading the feed. It keeps reading your robots.txt about once a day, in case the rule changes.

Redirects are checked too: if a feed's address starts redirecting somewhere your robots.txt disallows, Dispatch stops reading that feed.

On Bluesky, an account that asks apps not to show it to people who aren't logged in isn't followed, and Dispatch stops checking an account within about a day after it turns that setting on. For 3 days after DispatchListening first sees a Bluesky post, Dispatch rechecks it from time to time and removes it if it was deleted. Anything it already keeps otherwise goes on the schedule below, or sooner if you ask.

What Dispatch keeps

Only the newsrooms that follow a source see the posts DispatchListening reads from it: in Dispatch, and in the alerts each newsroom chooses to get by email, in Slack or at its own web address. Dispatch deletes the posts it keeps about 30 days after DispatchListening first saw them. Alerts already delivered stay wherever the newsroom received them.

Contact and removal requests

To ask Dispatch to stop checking a feed or an account, or to delete the posts it keeps from one, email [email protected] with the address of the feed or account. Questions about DispatchListening go to the same address.

Terms of ServiceSoftware License & Subscription AgreementPrivacy PolicyAcceptable Use PolicyStatus
Audience Builders · Dispatch