Implementing the External Data Provider 
The External Data Provider is used to syndicate this information to external websites. This feature uses the permissions for the Unregistered / Not Logged In usergroup. If that usergroup doesn't have permissions to view the forum, the feeds will not work.

Below are examples on how you can control what is shown on these websites.

To syndicate in a Javascript format you would call the following URL from your external site. This will require additional javascript on the external site (an example is listed below).

Example Code:
<script src="" type="text/javascript"></script>
<script type="text/javascript">
for (i in threads)
document.writeln(threads[i].title + " (" + threads[i].poster + ")<br />");
The External Data Provider also gives alternative feeds in commonly used formats. These are useful if you have external readers or a script to read them already. These feeds are available in XML, RSS .91, RSS 1.0 and RSS 2.0 so it should fit a wide variety of readers. The system defaults to RSS 2.0 so if you leave off the type, that is what you get. RSS 1.0 and 2.0 feeds will include HTML markup and attachments unless &nohtml=1 is added to the feed url. Many aggregates support HTML markup and so posts will appear close to how they would appear when viewed on the forum.

The URLS to access these feeds are:
RSS 1.0 -
RSS 2.0 -

You can refine the listings by specifying forumids in the path. For multiple forums separate them with a comma. This will limit the feed to the specified forums only. (Below example uses xml as type, but it works with rss, rss2, and js too),2,3,4

Threads will be returned in descending order based on the date of their creation. Description information will be returned from the first post of the thread.

If &lastpost=1 is added to the feed URL, threads will be returned in descending order based on the date of the last post of the thread. Description information will be returned from the last post of the thread.

If vBulletin Options > External Data Provider > Enable Podcasting is enabled, the first attachment of the post will also be returned within an <enclosure> tag. The enclosure tag is used within iTunes and other RSS aggregates to allow files to be downloaded from the feed.
User Contributed Notes: Implementing the External Data Provider Add a Comment
Andy 11th Mar 2006, 12:29pm
A very useful switch is the lastpost=true setting, this will display the RSS feed just like New Posts do, that is it will show the most recent posts.

Here is an example combined with RSS2 switch:
Barry 08th Aug 2006, 11:19am
There is an error in the javascript example above. The line

document.writeln(threads.title + " (" + threads[i].poster + ")<br />");

should read:

document.writeln(threads[i].title + " (" + threads[i].poster + ")<br />");
Andy 05th Oct 2006, 02:51am
A very useful switch is the lastpost=true setting, this will display the RSS feed just like New Posts do, that is it will show the most recent posts.

Here is an example:
Bill 04th May 2008, 11:29pm
Thank you Andy, I was going crazy trying to figure out why my RSS feed wasn't showing the newest posts. I thought it would by default, and it seemed to be working at first, until I reached the limit of 10, then it stopped updating. Using the lastpost=true fixed the problem.
Alexander Sinev 25th Jul 2008, 04:56am
Unfortunately lastpost=true is not so helpful, because it shows only last post in the thread and, besides, the link goes to the newpost instead of the last one.
Steven 04th Sep 2009, 09:14pm
Is there a way for us o trim the tittle a little shorter?
Some threads have a very long titles, and it looks messy.

Keith 18th Oct 2009, 04:56pm
Cut the length of the title:

document.writeln(threads[i].title.slice(0,20) + " (" + threads[i].poster + ")<br />");

where the '20' represents the number of characters to show:
diades 19th Oct 2009, 10:08am
Strictly speaking, document writeln should not be used as it was deprecated some years ago. Perhaps using the DOM as an alternative:
<script src="" type="text/javascript"></script>
<div id="vb_Ext">
<script type="text/javascript">
var ext = document.getElementById("vb_Ext");
for (i in threads)
var txt = document.createTextNode(threads[i].title + " (" + threads[i].poster + ")");
var br = document.createElement("br");

The added "div" (id="vb_Ext") may, of course, be any element that you wish provided the identifier is used correctly and it is legitimate to use.
Add a Comment