Development Gallery
FAP Trail by ekigyuu
FAP Trail starts off as a grid of random works. By clicking on works that you like it learns and suggests until you have a grid of works that reflects your taste in art. This is great when you're bored.
LJ2FAP by ekigyuu
LJ2FAP analyzes your interests on LiveJournal and suggests works you might be interested in. Not as accurate as A Recommended FAP, but still fun.
FAP Forever by ekigyuu
FAP Forever is another light weight browser for FAP -- with a twist! Instead of having to page through hundreds of results, you just scroll. New results are automatically loaded as you approach the bottom.
Mini FAP by ekigyuu
Mini FAP is a super light weight mini-browser for FAP. It doesn't do anything else.
A Recommended FAP by ekigyuu
A Recommended FAP analyzes your favourites and suggests works you might be interested in.
Updates (RSS)
- 8-19-07 comment.submit.xml is now available.
- 8-15-07 work.submit.xml is now available.
- 8-13-07 usertags.xml is now available.
- 8-06-07 The authorization process is now documented in the fAPI basics section. JSON attribute nodes have changed from
@attributetoattributenotation for better compatibility with Opera and Internet Explorer. - 8-06-07 API keys are now available for developers to generate. The data resources auth.getToken.xml and auth.checkToken and the private data feed settings.xml are now available as well.
- 6-25-07 comments.xml now includes comment edits in the result.
- 6-20-07 comments.xml is now available.
- 6-20-07 All data feeds are now available as a serialized PHP object with the "output" function parameters.
- 6-17-07 A small bug where the "datestart" and "dateend" parameters in works.xml were ignored has been fixed.
- 6-05-07 All data feeds are now available as JSON with the "output" and "callback" function parameters.
fAPI Basics
-
Dear developers
- Please keep resource requests down to 1-per-second-per-ip. Abusive clients will be throttled.
- All data is
UTF-8encoded. - Data feeds are cached for 1 hour to preserve server resources. (Authenticated feeds and data resources are not cached).
- If you make a fun app using fAPI, let me know and I'll link you on this page.
- Documentation is available inside the data feeds and resources.
- This is a new service, pardon the Beta-ness of it all. Thanks!
-
URL structure
You can construct the URL to a work once you know the
work idas returned by many API methods. The work URL takes the following format:http://www.furryartpile.com/view/{work id}/Thumbnails for works come in four different sizes:
square(100px on each side),small(100px on longest side),big(150px on longest side) andpreview(350px on longest side). You can construct the URL for a thumbnail once you know thethumbnameas returned by many API methods. The thumbnail URL takes the following format:http://www.furryartpile.com/thumbs/{square|small|big|preview}/{thumbname}You can construct the URL for a source file once you know the
filenameas returned by works.xml. Please read our Hotlinking Policy before accessing source files. The source file URL takes the following format:http://www.furryartpile.com/works/{filename}You can construct the URL for a user icon once you know the
usernameas returned by many API methods. If the user does not have an icon (or does not exist) a 404 error will be returned with the default user icon. The URL for user icons takes the following format:http://www.furryartpile.com/icons/{username}.gif -
Hotlinking Policy
Unless your application allows users to make comments and interact with works on FAP, please link directly to the works' page instead of the source file. Hotlinking discourages user interaction and is bad for the FAP community.
Thumbnails, user icons and other files can be used freely.
-
Result encoding
All information on FAP is
UTF-8encoded. Potentially unsafe HTML is double-encoded to protect FAP users without destroying the formatting of the HTML:<a href="#" onclick="alert('XSS');">I <del>♥</del> FAP!</a>
Becomes:
<a href="#" onclick="alert('XSS');">I <del>♥</del> FAP!</a>A full list of allowed HTML is available in the help section.
-
Authentication
Authentication is required to access private data feeds and access data resources as a FAP user. Initiating an authenticated session is a simple 3-step process:
-
Get frob
The frob is a unique, 16-bit key that says the user has authorized you to access their account. Simply send the user to this URL:http://www.furryartpile.com/api/auth/{your developer key}Depending on your key settings, the user will either be redirected to a passback URL or given the frob to copy and paste into your application. -
Get token
After retrieving a frob from the user, you can request a token, authenticate and initiate a user session with auth.getToken.xml:http://www.furryartpile.com/api/auth.getToken.xml?key={your developer key}&frob={user frob}If the user has granted access to your key, a unique, 32-bit token will be returned with the privlages your key is permitted. -
Use/validate token
Once you have a token and a frob, you can access private data feeds and resources with this URL structure:http://www.furryartpile.com/api/settings.xml?token={your token}&frob={user frob}You can validate a token and check privlages with auth.checkToken.xml:
http://www.furryartpile.com/api/work.submit.xml?token={your token}&frob={user frob}http://www.furryartpile.com/api/auth.checkToken.xml?token={your token}&frob={user frob}
-
Data feeds
These API methods contain read-only, public data and do not require authentication to use. Documentation is available inside the data feeds.
-
works.xml
Returns a list of works matching some critera.
-
users.xml
Returns a list of users matching some critera.
-
user.xml(currently unavailable)Returns detailed information on a single user.
-
tags.xml
Returns a list of tags matching some critera.
-
usertags.xml
Returns a list of usertags matching some critera.
-
comments.xml
Returns a thread of comments matching some critera.
-
blogs.xml(currently unavailable)Returns a list of blogs matching some critera.
Private data feeds
These API methods contain read-only, private data and require authentication to use. Documentation is available inside the data feeds.
-
settings.xml
Returns settings for an authenticated user.
-
watchlist.xml(currently unavailable)Returns watchlist for an authenticated user.
-
messages.xml(currently unavailable)Returns messages for an authenticated user.
Data resources
These API methods require authentication to use and commit private data as a FAP user. Documentation is available inside the data resources.
-
auth.getToken.xml, auth.checkToken
Verify authentication.
-
work.submit.xml,
work.edit.xml, work.delete.xml(currently unavailable)Add, edit or delete works.
-
comment.submit.xml,
comment.edit.xml, comment.delete.xml(currently unavailable)Add, edit or delete comments.
-
blog.submit.xml, blog.edit.xml, blog.delete.xml(currently unavailable)Add, edit or delete blog posts.
-
favourite.submit.xml, favourite.delete.xml(currently unavailable)Add or delete works from favourites.
-
watch.submit.xml, watch.edit.xml, watch.delete.xml(currently unavailable)Add, edit or delete users from watchlist.
-
messages.submit.xml, messages.delete.xml(currently unavailable)Add or delete messages from a user's message centre.

