FeedPress API

Since FeedPress’ wee early years, it’s had a fairly robust and easy to use POST or GET method API, with answers formatted in JSON (YAY). This has given developers access to many parts of the web app. As we’ve been working on things, I realized we’ve never talked about it much on this blog, so this serves as an official announcement as well as update on the latest additions to the FeedPress API (up to July 2018).

I’m pleased to announce today that we’ve added numerous methods that bring the API closer to parity with the web app. Some of the most requested features you’ve asked of us are methods to access our podcast hosting service, such as uploading and deleting media files (MP3s).

Our most recent addition this summer is adding access to Custom Hostnames. For the uninitiated, Custom Hostnames allow you to fully whitelabel your RSS feeds by utilizing your own domain name with FeedPress, providing the ultimate in flexibility over the structure of your feed as well as complete ownership of your intellectual property.

With our new API method, you can register your hostname and path, which previously you could only do via the web app. Adding one hostname and path for an RSS feed isn’t a big deal, but if you need to add a lot in bulk, our API makes it very convenient and efficient. We’ve already had customers utilize this functionality when creating 50+ RSS feeds in one fell swoop via their Content Management System.

Our API documentation with full details are available for free. In order to utilize the API, you must have a FeedPress account.

Here’s an overview of the things you can do with the API

GET /login.json

Redirects the user to the FeedPress authentication page. See Authentication for more details.

GET /logout.json

Deletes the authenticated user’s token.

GET /account.json

Retrieves various informations about the authenticated user.

POST /feeds/create.json

Creates a new feed for the authenticated user.

POST /feeds/update.json

Updates a new feed for the authenticated user according to the submitted parameters.

GET /feeds/subscribers.json

Retrieves subscribers statistics for the last 30 days about a specific feed.

GET /feeds/readers.json

Retrieves the last readers statistics about a specific feed.

GET /feeds/ping.json

Tells FeedPress to refresh the specified feed.

GET /feeds/hit.json

Tells FeedPress to record a “virtual” hit for the specified feed.

GET /feeds/tracking/items.json

Returns the tracked items for the specified feed.

GET /feeds/tracking/url.json

Returns the FeedPress tracking URL for the specified feed and original URL.

GET /feeds/newsletter/subscribers.json

Retrieves the subscribers list for the feed’s newsletter.

GET /feeds/newsletter/check.json

Check the status of a particular email in your feed’s newsletter.

POST /feeds/newsletter/add.json

Adds an email address to the feed’s newsletter.

POST /feeds/hosting/upload.json

NEW: Uploads an audio file to your podcast hosting storage.

POST /feeds/hosting/delete.json

NEW: Deletes an audio file in your podcast hosting storage.

POST /hostnames/record.json

NEW (July 2018): Create a record for a specified hostname.


We would love to hear from you if you have build an app using the FeedPress API. Get in touch and let us know what creative ways you’ve used it in your projects and how it’s improved your workflow.

The FeedPress API is now closer to parity with the web app. Some of the most requested features you've asked of us have been added, such as podcast hosting media and Custom Hostname management. Click To Tweet

Stitcher Makes Technical Changes Affecting Podcasters

Stitcher has announced some favourable changes that will impact podcasters who have content in their directory. What started with initially removing the re-hosting of files and downloading direct to the source, further changes are being made to align themselves better with current analytics methodologies.

Podcast microphone

Last year, we began a process of implementing changes to the way Stitcher communicates with podcasters’ hosting providers. We started by moving all podcasters to direct streaming from the source–the Stitcher apps now make a direct file request to your hosting infrastructure whenever a user chooses to play or download an episode of a show.

This change, which we previously made on an ad-hoc basis for podcasters who requested it, gives you better insight into your overall download metrics and better facilitates server-side dynamic ad insertion.

To give podcasters more standardized, accurate and granular data about their shows, we will be making additional changes to align Stitcher’s downloading definitions with some of the emerging standards put forth by the IAB.

On October 2, 2017 we will remove this pinging behavior. This will provide clarity for all of our partners and it will support the IAB’s measurement initiatives. We will:

  • Make downloading new episodes in user Favorites the default app behavior
  • Record as a download any playback that downloads at least 200 kb (standard put forth by the IAB)
  • Present a separate “Front Page Impressions” metric in our partner portal.

We’re pleased to see these technical changes at Stitcher. As for how this affects FeedPress customers, it’s possible you may see an increase in downloads because of these changes.

FeedPress Adds Support for New Apple Podcast Tags

Apple Podcast Spec Updates

The week of Apple’s World Wide Developer Conference (WWDC), Apple announced that they have updated their RSS podcast spec to include additional tags for podcast publishers. These tags will provide support for additional functionality inside of their own “Apple Podcasts” app. The tags themselves add features that many podcasters have been looking for, such as the ability to specify an episode as trailer, bonus, or full episode.

Apple Podcast Spec Updates

New Podcast Tags

We have added support for the following podcast tags:


Customers who use FeedPress’ podcast publishing platform can use the “Episode Type” field to specify an episode as a trailer, bonus episode, or full episode, as illustrated below.

FeedPress Publisher Supports New Apple Podcast RSS Tags

it should be noted that whilst the tags can be included now, we won’t see the changes reflected until Apple releases iOS 11 to the public, which won’t be until September and likely after the release of iPhone 8.

[Tweet “FeedPress adds support for new Apple #Podcast tags”]


It’s really exciting to see Apple moving the needle on podcasts to improve both the listener’s and publisher’s experience. What do you think of the new podcast tags and the changes to Apple’s podcast app on iOS 11? Leave a comment below to chat with us.

FeedPress Adds Automatic JSON Feed Support


Beloved Mac developers and long time bloggers, Brent Simmons and Manton Reece have launched JSON Feed. The take away for developers is as follows:

For most developers, JSON is far easier to read and write than XML. Developers may groan at picking up an XML parser, but decoding JSON is often just a single line of code.

Why care?

So why should anyone care about this with respect to podcasts when Apple controls the ecosystem? Although its early days for the spec, our opinion is that innovation in a space with an established, albeit old spec is a healthy thing.

RSS is and continues to be a workable transportation method for podcast data, but even RSS–which has been around since 1999–needs enhancement. That’s why open source initiatives like syndicated.media exist to take podcast functionality and RSS to the next level (we’re closely watching this).

What impact does it have?

Does this mean that JSON Feed will make any significant impact? That remains to be seen, but we’re pleased to see people move the needle forward.

Co-creator, Manton Reece wrote about how JSON Feed relates to podcast functionality:

JSON Feed includes an attachments array, which is similar to the enclosure element in RSS that enabled podcasting. We love podcasting and included an example podcast feed in the JSON Feed specification.

How FeedPress supports JSON Feed

Experimental JSON support is live on FeedPress. JSON Feed is generated every time the XML feed is refreshed and is not a replication from the source, it’s a creation. The JSON feed validates and it handles podcasts on RSS and Atom.


There is nothing FeedPress customers need to do in order to get JSON compatible feeds. Simply append the ?format=json parameter to the end of your RSS feed.

Here’s an example URL: https://podcast.hologramradio.org/master?format=json

FeedPress customers are encouraged to test this with compatible RSS readers and Podcast apps. We’d love to hear your feedback.

[Tweet “FeedPress adds JSON Feed Support”]

Update: As of May 31, 2017, the feed_url paramter has been added. As per JSON Feed spec documentation, it’s highly recommended:

Apple Silently Adds Support for Let’s Encrypt Certificates on Podcast Feeds

FeedPress has had SSL support for RSS feeds and hosted podcast media since June 2016. Let’s Encrypt is an open source certificate authority that has been adopted by millions and provides easy access for companies like us to issue free SSL certificates to every customer.

An obstacle podcasters have had since Let’s Encrypt’s introduction is that iTunes Podcast Connect would reject feeds using their SSL certificates. The reason for this is because the iTunes Java Root Store was old and didn’t recognize Let’s Encrypt as a valid certificate authority.

This week we were alerted that the folks at iTunes had silently updated their infrastructure to support Let’s Encrypt. FeedPress has tested compatibility and is pleased to confirm that you can now submit podcast feeds to iTunes using Let’s Encrypt SSL certificates. As of the publication date of this blog post, Apple has yet to update their FAQ on official support for Let’s Encrypt.

Please refer to our tutorial below to learn how to enable HTTPS on podcast feeds:



Note that although SSL is a feature that is available in FeedPress, it’s not a compatibility requirement for iTunes at the moment. If you don’t feel comfortable turning it on, we recommend leaving it off until Apple provides a cut off date when it must be enabled.