Home > New Features, News > Feed Posting API Beta Release

Feed Posting API Beta Release

We want to make it is as easy as possible for our publishers to get their content on FeedAgg.com to get exposure and audiences.  To help with that we announced the start of a feed posting API almost a year ago. We have since then rewritten it in a more formal restful API interface.  Below you will find the basics for using it. Feed content policies still apply. Please give us any feedback, good or bad, on how it works for you.

Background

Feed addition requests can be posted to http://www.feedagg.com/add_feed_api.php. You will receive the response as xml containing either a success code(200) or error code(400′s and 500′s).  Successful posts will include the FeedAgg.com url for your feed.

* The API is in a very beta stage and error status codes (ie >200) may change. *

Error codes are 400′s and 500′s. Success codes are 200′s.

A minimum of one tag per feed is required, max 100 50.

Feed submissions via API require a username.

URL Encode your feed urls.

Tags are separated by commas when submitting via API.

Rate limiting still applies. Currently set at 60 submissions per minute.

Updated: 2/10/11

Variables

FeedURL (Required, URL Encoded)

Tags (A minimum of one tag per feed is required, max 100 50.)

UserName (Required)

Example Successful Submission XML Response

<?xml version="1.0" encoding="UTF-8"?>
<response>
     <status_code>200</status_code>
     <status_txt>Your feed, FeedAgg Blog, has been saved.</status_txt>
     <data>
          <title>FeedAgg Blog</title>
          <submitted_url>http://www.feedagg.com/blog/feed/</submitted_url>
          <feedagg_url>http://www.feedagg.com/feed/258970/FeedAgg</feedagg_url>
          <feedagg_id>258970</feedagg_id>
     </data>
</response>

Example PHP(v5.0) Code To Submit VIA API

//---------------------------------------------------------------------------------
// The feedagg.com API address
 $url = 'http://www.feedagg.com/add_feed_api.php';
// Set up and execute the curl process
 $curl_handle = curl_init();
 curl_setopt($curl_handle, CURLOPT_URL, "$url");
 curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
 curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($curl_handle, CURLOPT_POST, 1);
 curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "FeedURL=".urlencode('http://www.feedagg.com/blog/feed/')."&Tags=tag1,tag2&UserName=<yourusername>");
 $buffer = curl_exec($curl_handle);
 curl_close($curl_handle);

// check for success or failure
 if (empty($buffer))
 {
      echo 'message' . "<br>";
 }
 else
 {
      echo 'success' . "<br>";
 }

//load to xml obj
 $xml = simplexml_load_string($buffer);

//sample results
 echo "code " . $xml->status_code . "<br>";
 echo "message " . $xml->status_txt . "<br>";
 echo "title " . $xml->data->title . "<br>";
 echo "submitted_url " . $xml->data->submitted_url .  "<br>";
 echo "feedagg_url " . $xml->data->feedagg_url . "<br>";
 echo "feedagg_id " . $xml->data->feedagg_id . "<br>";

Example C# Code To Submit VIA API
Courtesy of one of our users.  Thank you!


using System;
using System.Text;
using System.IO;
using System.Web;
using System.Net;
using System.Collections.Specialized;

namespace FeedAggExample
{
 public class FeedAgg
 {
 private const string FeedAggApiUrl = "http://www.feedagg.com/add_feed_api.php";

 public static string SubmitFeed(string FeedUrl, string Tags, string Username)
 {
 //set up the return value
 string returnValue = "";

 //Create a name value collection to hold the paramaters to be passed in the post
 NameValueCollection m_values = new NameValueCollection();

 //add all of the specified values
 m_values.Add("FeedURL", FeedUrl);
 m_values.Add("Tags", Tags);
 m_values.Add("UserName", Username);

 //encode the paramaters
 StringBuilder parameters = new StringBuilder();
 for (int i = 0; i < m_values.Count; i++)
 {
 EncodeAndAddItem(ref parameters, m_values.GetKey(i), m_values[i]);
 }

 try
 {
 //set up the request
 HttpWebRequest request = null;
 Uri uri = new Uri(FeedAggApiUrl);
 request = (HttpWebRequest)WebRequest.Create(uri);
 request.Method = "POST";
 request.ContentType = "application/x-www-form-urlencoded";
 request.ContentLength = parameters.ToString().Length;
 using (Stream writeStream = request.GetRequestStream())
 {
 UTF8Encoding encoding = new UTF8Encoding();
 byte[] bytes = encoding.GetBytes(parameters.ToString());
 writeStream.Write(bytes, 0, bytes.Length);
 }

 //Set up the response
 HttpWebResponse response = (HttpWebResponse)request.GetResponse();

 if (response.StatusCode == HttpStatusCode.OK)
 {
 using (Stream responseStream = response.GetResponseStream())
 {
 using (StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8))
 {
 returnValue = readStream.ReadToEnd();
 }
 }
 }
 else
 {
 returnValue = String.Format("Error: There was an error processing the request. The exact error was: {0} {1}", response.StatusCode, response.StatusDescription);
 }

 }
 catch (Exception ex)
 {

 returnValue = "Exception occured while processing your request. The exception was:" + ex.Message;
 }

 return returnValue;
 }

 /// <summary>
 /// Encodes an item and ads it to the string.
 /// </summary>
 /// <param name="baseRequest">The previously encoded data.</param>
 /// <param name="dataItem">The data to encode.</param>
 /// <returns>A string containing the old data and the previously encoded data.</returns>
 private static void EncodeAndAddItem(ref StringBuilder baseRequest, string key, string dataItem)
 {
 if (baseRequest == null)
 {
 baseRequest = new StringBuilder();
 }
 if (baseRequest.Length != 0)
 {
 baseRequest.Append("&");
 }
 baseRequest.Append(key);
 baseRequest.Append("=");
 baseRequest.Append(System.Web.HttpUtility.UrlEncode(dataItem));
 }

 }
}
Categories: New Features, News Tags: , , ,
  1. May 17th, 2010 at 14:39 | #1

    This must surely be an enhancement to your excellent service.
    FeedAgg hold the prime position, in my view, in the aggregator league table.
    Keep getting better!

  2. June 6th, 2010 at 02:47 | #2

    Great service and good api for webmaster or me.

  3. July 9th, 2010 at 00:40 | #3

    Great service:)

  4. July 13th, 2010 at 04:53 | #4

    Excellent service!!

  5. Billy
    July 22nd, 2010 at 21:24 | #5

    I use this service and it work until last night. it show me this warning. Please help me solve this problem.

    Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : Start tag expected, ‘<' not found in /home/….. on line 53

    Warning: simplexml_load_string() [function.simplexml-load-string]: add to cue_feeds_tagsadd to cue_feeds_tagsadd to cue_feeds_tagsadd to cue_feeds_ in /home/….. on line 53

    Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in /home/….. on line 53

  6. August 12th, 2010 at 04:56 | #6

    Thanks Brad , excellent API .

  7. June 12th, 2011 at 09:45 | #7

    Great service and good api for webmaster or me.

  1. May 8th, 2010 at 09:46 | #1