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

ParameterDescription
callbackURL 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

ParameterDescriptionDetails
urlThe current feed's URL (Not a FeedBurner URL).Mandatory
aliasDesired feed alias on FeedPress.Mandatory
trackingIf sent, enables click tracking and link opening.Not enabled by default.
localeDesired 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

ParameterDescriptionDetails
feedFeed name.Mandatory
urlUpdates 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

ParameterDescriptionDetails
feedFeed 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

ParameterDescriptionDetails
feedFeed 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

ParameterDescriptionDetails
feedFeed 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

ParameterDescriptionDetails
feedFeed name.Mandatory
uaUser Agent.Mandatory
ipIP 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

ParameterDescriptionDetails
feedFeed name.Mandatory
sinceStart date.Format: YYYY-MM-DD. By default, "0000-00-00".
toEnd 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

ParameterDescriptionDetails
feedFeed name.Mandatory
urlOriginal 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": [
{
"email": "[email protected]",
"confirmed": 1
}
]
}

Retrieves the subscribers list for the feed's newsletter.

HTTP Request

GET https://api.feedpress.com/feeds/newsletter/subscribers.json

Query Parameters

ParameterDescriptionDetails
feedFeed 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": [
{
"email": "[email protected]",
"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

ParameterDescriptionDetails
feedFeed name.Mandatory
emailEmail 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

ParameterDescriptionDetails
feedFeed name.Mandatory
emailEmail 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

ParameterDescriptionDetails
feedFeed nameMandatory
titlePost titleMandatory
episode_titleEpisode titleMandatory
seasonSeason numberNull by default
episodeEpisode numberNull by default
episode_idEpisode IDGenerated by default
episode_typeEpisode typefull (default), trailer or bonus
descriptionPost summaryMandatory
contentPost text contentMandatory
linkLink to external URLNull by default
enclosureEnclosure (podcast) URLMandatory if podcast feed
transcriptTranscript URLNull by default
date_dayPost date dayYYYY-MM-DD, today by default
date_timePost date timeHH: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

ParameterDescriptionDetails
feedFeed 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

ParameterDescriptionDetails
feedFeed name.Mandatory
nameKey name.Mandatory
limitLimit of different signatures per 30 days.Default value: 300

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

ParameterDescriptionDetails
feedFeed name.Mandatory
nameKey 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

ParameterDescriptionDetails
feedFeed name.Mandatory
nameKey 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

ParameterDescriptionDetails
feedFeed name.Mandatory
fileBinary data of the file to upload.Mandatory
artworkBinary data of the file to upload for the audio file artwork.Keeps existing tags by default.
titleID3v2 tag for "Title" field.Keeps existing tags by default.
albumID3v2 tag for "Album" field.Keeps existing tags by default.
artistID3v2 tag for "Artist" field.Keeps existing tags by default.
commentID3v2 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

ParameterDescriptionDetails
feedFeed name.Mandatory
urlURL 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

ParameterDescriptionDetails
hostname_idHostname numeric ID.Mandatory
pathRelative path of the record, for instance / or /myfeed.Mandatory
typeRecord type: feed for feed redirection or url for standard HTTP redirection.Mandatory
destinationFeed ID or URL depending on the type specified.Mandatory