Introduction
To fully use FeedPress and integrate it in your website or application, you can use the API methods.
The API is for paid members only, but if you want to use FeedPress API in your project, please contact us, we would be happy to offer you a free account.
All API requests must be made to https://api.feedpress.com with POST or GET method and answers are JSON formatted.
All API requests must have a key parameter with your API key.
If you want a specific method that is not in this list, please contact us.
Authentication
The authentication system for the FeedPress API is token-based.
In order to authenticate an user, you have to send the user to the /login.json method with a callback parameter:
https://api.feedpress.com/login.json?key=APIKey&callback=http://mywebsite.com/auth
The callback parameter must be an URL of your website. When the user is successfully authenticated, he will be redirected to the callback URL with a token parameter added.
You can therefore use this token to make API requests on behalf of the user.
Account
Login
curl -v -G "https://api.feedpress.com/login.json" \-d "key=APIKey" \-d "callback=http://mywebsite.com/auth"
Redirects the user to the FeedPress authentication page. See Authentication for more details.
HTTP Request
GET https://api.feedpress.com/login.json
Query Parameters
Parameter | Description |
---|---|
callback | URL to send the user to after the authentication. |
Logout
curl "https://api.feedpress.com/logout.json" \-H "Authorization: Bearer <token>"
The above command returns JSON structured like this:
{errors: [ ],data: [ ],code: 1,message: "The token has been deleted."}
Deletes the authenticated user's token.
HTTP Request
GET https://api.feedpress.com/logout.json
Account details
curl "https://api.feedpress.com/account.json" \-H "Authorization: Bearer <token>"
The above command returns JSON structured like this:
{login: "maxime",premium: true,feeds: [{id: 1,name: "maxime",subscribers: 962,url: "https://feedpress.me/maxime"}],code: 1}
Retrieves various details about the authenticated user.
HTTP Request
GET https://api.feedpress.com/account.json
Feeds
Create a feed
curl -X POST "https://api.feedpress.com/" \-H "Authorization: Bearer <token>" \-d "url=" \-d "alias="
The above command returns JSON structured like this:
{"errors": [ ],"data": [ ],"code": 1,"message": "The feed has been created."}
Creates a new feed for the authenticated user.
HTTP Request
POST https://api.feedpress.com/feeds/create.json
Query Parameters
Parameter | Description | Details |
---|---|---|
url | The current feed's URL (Not a FeedBurner URL). | Mandatory |
alias | Desired feed alias on FeedPress. | Mandatory |
tracking | If sent, enables click tracking and link opening. | Not enabled by default. |
locale | Desired locale for the feed: "en" or "fr". | Default value: "en" |
Update a feed
curl -X POST "https://api.feedpress.com/feeds/update.json" \-H "Authorization: Bearer <token>"-d "feed=XXXX"
The above command returns JSON structured like this:
{"errors": [ ],"data": [ ],"code": 1,"message": "The feed has been updated."}
Updates a new feed for the authenticated user according to the submitted parameters.
HTTP Request
POST https://api.feedpress.com/feeds/update.json
Query Parameters
Parameter | Description | Details |
---|---|---|
feed | Feed name. | Mandatory |
url | Updates the original feed URL. |
Get subscribers statistics
curl -G "https://api.feedpress.com/feeds/subscribers.json" \-H "Authorization: Bearer <token>" \-d "feed=XXXX"
The above command returns JSON structured like this:
{"stats": [{"day": 1364425200,"greader": 742,"other": 13,"direct": 186,"newsletter": 21},...],"code": 1}
Retrieves subscribers statistics for the last 30 days about a specific feed.
HTTP Request
GET https://api.feedpress.com/feeds/subscribers.json
Query Parameters
Parameter | Description | Details |
---|---|---|
feed | Feed name. | Mandatory |
Get readers statistics
curl -G "https://api.feedpress.com/feeds/readers.json" \-H "Authorization: Bearer <token>" \-d "feed=XXXX"
The above command returns JSON structured like this:
{"readers": [{"name": "NewsBlur Feed Fetcher","feedId": null,"subscribers": 12},{"name": "Feedfetcher-Google","feedId": 4161868654975714300,"subscribers": 51},{"name": "Netvibes","feedId": 20818948,"subscribers": 4},...],"code": 1}
Retrieves the last readers statistics about a specific feed.
HTTP Request
GET https://api.feedpress.com/feeds/readers.json
Query Parameters
Parameter | Description | Details |
---|---|---|
feed | Feed name. | Mandatory |
Refresh a feed
curl -G "https://api.feedpress.com/feeds/ping.json" \-H "Authorization: Bearer <token>" \-d "feed=XXXX"
The above command returns JSON structured like this:
{"errors": [],"data": [],"code": 1,"message": "The feed has been refreshed."}
HTTP Request
GET https://api.feedpress.com/feeds/ping.json
Query Parameters
Parameter | Description | Details |
---|---|---|
feed | Feed name. | Mandatory |
Record a hit
curl -G "https://api.feedpress.com/feeds/hit.json" \-H "Authorization: Bearer <token>" \-d "feed=XXXX" \-d "ua=XXXX" \-d "ip=XXXX"
The above command returns JSON structured like this:
{"errors": [],"data": [],"code": 1,"message": "The hit has been recorded."}
Tells FeedPress to record a "virtual" hit for the specified feed.
Useful if you don't want FeedPress to distribute your feed but still want the analytics.
HTTP Request
GET https://api.feedpress.com/feeds/hit.json
Query Parameters
Parameter | Description | Details |
---|---|---|
feed | Feed name. | Mandatory |
ua | User Agent. | Mandatory |
ip | IP address. | Mandatory |
Tracking
Get tracked items
curl -G "https://api.feedpress.com/feeds/tracking/items.json" \-H "Authorization: Bearer <token>" \-d "feed=XXX"
The above command returns JSON structured like this:
{"code": 1,"items": [{"id": 1,"title": "#1 Welcome to my podcast","url": "http:\/\/feed.mypodcast.com\/shows\/1_Welcome.mp3","type": "podcast","hits": 251,"uniques": 228}]}
Returns the tracked items for the specified feed.
HTTP Request
GET https://api.feedpress.com/feeds/tracking/items.json
Query Parameters
Parameter | Description | Details |
---|---|---|
feed | Feed name. | Mandatory |
since | Start date. | Format: YYYY-MM-DD. By default, "0000-00-00". |
to | End date. | Format: YYYY-MM-DD. By default, today's date. |
Get a tracking URL
curl -G "https://api.feedpress.com/feeds/tracking/url.json" \-H "Authorization: Bearer <token>" \-d "feed=XXXX" \-d "url=XXXX"
The above command returns JSON structured like this:
{"errors": [],"data": [],"code": 1,"message": "https://tracking.feedpress.it/link/1/1/podcast.mp3"}
Returns the FeedPress tracking URL for the specified feed and original URL.
HTTP Request
GET https://api.feedpress.com/feeds/tracking/url.json
Query Parameters
Parameter | Description | Details |
---|---|---|
feed | Feed name. | Mandatory |
url | Original link URL. | Mandatory |
Newsletters
Get newsletter subscribers
curl -G "https://api.feedpress.com/feeds/newsletter/subscribers.json" \-H "Authorization: Bearer <token>" \-d "feed=XXXX"
The above command returns JSON structured like this:
{"subscribers": [{"confirmed": 1}]}
Retrieves the subscribers list for the feed's newsletter.
HTTP Request
GET https://api.feedpress.com/feeds/newsletter/subscribers.json
Query Parameters
Parameter | Description | Details |
---|---|---|
feed | Feed name. | Mandatory |
Get subscriber status
curl -G "https://api.feedpress.com/feeds/newsletter/check.json" \-H "Authorization: Bearer <token>" \-d "feed=XXXX" \-d "email=XXXX"
The above command returns JSON structured like this:
{"subscribers": [{"confirmed": 1}]}
Check the status of a particular email in your feed's newsletter.
HTTP Request
GET https://api.feedpress.com/feeds/newsletter/check.json
Query Parameters
Parameter | Description | Details |
---|---|---|
feed | Feed name. | Mandatory |
Email address. | Mandatory |
Add a subscriber
curl -X POST "https://api.feedpress.com/feeds/newsletter/add.json" \-H "Authorization: Bearer <token>" \-d "feed=XXXX" \-d "email=XXXX"
The above command returns JSON structured like this:
{"errors": [],"data": [],"code": 1,"message": "The email has been added to the newsletter."}
Adds an email address to the feed's newsletter.
HTTP Request
POST https://api.feedpress.com/feeds/newsletter/add.json
Query Parameters
Parameter | Description | Details |
---|---|---|
feed | Feed name. | Mandatory |
Email address. | Mandatory |
Publishing
Create a new post
curl -X POST "https://api.feedpress.com/feeds/publishing/create.json" \-H "Authorization: Bearer <token>" \-d "feed=XXXX"…
The above command returns JSON structured like this:
{"message": "Your podcast post has been successfully published!","code": 1}
Create and publish automatically a new post for the feed.
HTTP Request
POST https://api.feedpress.com/feeds/publishing/create.json
Query Parameters
Parameter | Description | Details |
---|---|---|
feed | Feed name | Mandatory |
title | Post title | Mandatory |
episode_title | Episode title | Mandatory |
season | Season number | Null by default |
episode | Episode number | Null by default |
episode_id | Episode ID | Generated by default |
episode_type | Episode type | full (default), trailer or bonus |
description | Post summary | Mandatory |
content | Post text content | Mandatory |
link | Link to external URL | Null by default |
enclosure | Enclosure (podcast) URL | Mandatory if podcast feed |
transcript | Transcript URL | Null by default |
date_day | Post date day | YYYY-MM-DD, today by default |
date_time | Post date time | HH:MM:SS, today by default |
Private feeds
List private keys
curl "https://api.feedpress.com/feeds/private/keys.json" \-H "Authorization: Bearer <token>"
The above command returns JSON structured like this:
{"keys": [{"name": "maximevalette","key": "0e2df13870a05558a4aa764dd829b6a3","limit": 20,"url": "https://example.feed.press/private?key=0e2df13870a05558a4aa764dd829b6a3"}],"feed": "example","code": 1}
List all keys currently available for the specified private feed.
HTTP Request
GET https://api.feedpress.com/feeds/private/keys.json
Query Parameters
Parameter | Description | Details |
---|---|---|
feed | Feed name. | Mandatory |
Create a private key
curl -X POST "https://api.feedpress.com/feeds/private/key.json" \-H "Authorization: Bearer <token>" \-d "feed=XXXX" \-d "name=XXXX"
The above command returns JSON structured like this:
{"key": {"name": "maximevalette","key": "0e2df13870a05558a4aa764dd829b6a3","limit": 20,"url": "https://example.feed.press/private?key=0e2df13870a05558a4aa764dd829b6a3"},"feed": "example","code": 1}
Create a new private key based on the provided name.
HTTP Request
POST https://api.feedpress.com/feeds/private/key.json
Query Parameters
Parameter | Description | Details |
---|---|---|
feed | Feed name. | Mandatory |
name | Key name. | Mandatory |
limit | Limit of different signatures per 30 days. | Default value: 20 |
Retrieve a private key
curl "https://api.feedpress.com/feeds/private/key.json" \-H "Authorization: Bearer <token>"
The above command returns JSON structured like this:
{"key": {"name": "maximevalette","key": "0e2df13870a05558a4aa764dd829b6a3","limit": 20,"url": "https://example.feed.press/private?key=0e2df13870a05558a4aa764dd829b6a3"},"feed": "example","code": 1}
Retrieve a specific key based on the provided name.
HTTP Request
GET https://api.feedpress.com/feeds/private/key.json
Query Parameters
Parameter | Description | Details |
---|---|---|
feed | Feed name. | Mandatory |
name | Key name. | Mandatory |
Delete a private key
curl -X DELETE "https://api.feedpress.com/feeds/private/key.json" \-H "Authorization: Bearer <token>"
The above command returns JSON structured like this:
{"key": {"key": "0e2df13870a05558a4aa764dd829b6a3"},"feed": "example","code": 1}
Delete a private key based on the provided name.
HTTP Request
DELETE https://api.feedpress.com/feeds/private/key.json
Query Parameters
Parameter | Description | Details |
---|---|---|
feed | Feed name. | Mandatory |
name | Key name. | Mandatory |
Hosting
Upload a file
curl -X POST "https://api.feedpress.com/feeds/hosting/upload.json" \-H "Authorization: Bearer <token>" \-d "feed=XXXX" \-F "file=@path/to/local/file"
The above command returns JSON structured like this:
{"message": "The file has been uploaded.","data": {"url": "http:\/\/podcasts-1.feedpress.co\/618\/Podcast.mp3"},"code": 1}
Uploads an audio file to your podcast hosting storage.
HTTP Request
POST https://api.feedpress.com/feeds/hosting/upload.json
Query Parameters
Parameter | Description | Details |
---|---|---|
feed | Feed name. | Mandatory |
file | Binary data of the file to upload. | Mandatory |
artwork | Binary data of the file to upload for the audio file artwork. | Keeps existing tags by default. |
title | ID3v2 tag for "Title" field. | Keeps existing tags by default. |
album | ID3v2 tag for "Album" field. | Keeps existing tags by default. |
artist | ID3v2 tag for "Artist" field. | Keeps existing tags by default. |
comment | ID3v2 tag for "Comment" field. | Keeps existing tags by default. |
Delete a file
curl -X POST "https://api.feedpress.com/feeds/hosting/delete.json" \-H "Authorization: Bearer <token>" \-d "feed=XXXX" \-d "url=XXXX"
The above command returns JSON structured like this:
{"message": "The file has been deleted.","data": {"url": "http:\/\/podcasts-1.feedpress.co\/618\/Podcast.mp3"},"code": 1}
Deletes an audio file in your podcast hosting storage.
HTTP Request
POST https://api.feedpress.com/feeds/hosting/delete.json
Query Parameters
Parameter | Description | Details |
---|---|---|
feed | Feed name. | Mandatory |
url | URL on FeedPress of the uploaded file to delete. | Mandatory |
Custom hostname
Create a record
curl -X POST "https://api.feedpress.com/hostnames/record.json" \-H "Authorization: Bearer <token>" \-d "hostname_id=XXXX" \-d "path=XXXX" \-d "type=XXXX" \-d "destination=XXXX"
The above command returns JSON structured like this:
{"errors": [],"data": [],"code": 1,"message": "The record has been added. The update will be visible in less than 2 minutes."}
Create a record for a specified hostname.
HTTP Request
POST https://api.feedpress.com/hostnames/record.json
Query Parameters
Parameter | Description | Details |
---|---|---|
hostname_id | Hostname numeric ID. | Mandatory |
path | Relative path of the record, for instance / or /myfeed. | Mandatory |
type | Record type: feed for feed redirection or url for standard HTTP redirection. | Mandatory |
destination | Feed ID or URL depending on the type specified. | Mandatory |