Difference between revisions of "SoFurry 2.0 API"
(Added PM functions) |
|||
Line 1: | Line 1: | ||
+ | == Browse submissions == | ||
+ | |||
+ | === Request URL === | ||
+ | https://api2.sofurry.com/browse/all/art?format=json | ||
+ | https://api2.sofurry.com/browse/all/stories?format=json | ||
+ | https://api2.sofurry.com/browse/all/music?format=json | ||
+ | https://api2.sofurry.com/browse/all/photos?format=json | ||
+ | https://api2.sofurry.com/browse/all/journals?format=json | ||
+ | |||
+ | === Parameters === | ||
+ | * sortby = date, popularity, length, title, random | ||
+ | * from = all time, this year, this month, this week, yesterday, today | ||
+ | * rating = clean, adult, clean adult (max rating, leave empty to show all) | ||
+ | |||
+ | === Returned data === | ||
+ | |||
+ | { | ||
+ | "title": "SoFurry - All Art", | ||
+ | "items": [ | ||
+ | { | ||
+ | "thumbnail": "https://www.sofurryfiles.com/std/thumb?page=12345", | ||
+ | "contentlevel": "Clean", (can be clean, adult, extreme) | ||
+ | "id": "12345", | ||
+ | "title": "Submission Title", | ||
+ | "author": "author name", | ||
+ | "link": "http://api2.sofurry.com/view/12345", | ||
+ | "postTime": "1430157763", | ||
+ | "tags": "Tags, separated, by, commas", | ||
+ | "description": "Lengthy description" | ||
+ | }, | ||
+ | .... | ||
+ | ] | ||
+ | } | ||
+ | |||
+ | == Browse user submissions == | ||
+ | |||
+ | === Request URL === | ||
+ | https://api2.sofurry.com/browse/user/art?uid=1234&format=json | ||
+ | |||
+ | === Parameters === | ||
+ | * uid = optional user ID to show only this user's submissions | ||
+ | |||
+ | === Returned data === | ||
+ | |||
+ | Same format as regular browse request | ||
+ | |||
+ | |||
+ | == Search submissions == | ||
+ | |||
+ | === Request URL === | ||
+ | https://api2.sofurry.com/browse/search?search=Searchterm1,Searchterm2&format=json | ||
+ | |||
+ | === Parameters === | ||
+ | * search = Search tags separated by comma. To do a fulltext search, enclose the search term with "quotation marks" | ||
+ | * filter = all, stories, artwork, stories, photos, journals (optional, defaults to all) | ||
+ | * sort = date, daterev, popularity | ||
+ | * daterange = all, day, week, month, 6 months, year | ||
+ | * minlevel = 0 (0=clean, 1=adult, 2=extreme) | ||
+ | * maxlevel = 2 (0=clean, 1=adult, 2=extreme) | ||
+ | |||
+ | === Returned data === | ||
+ | |||
+ | { | ||
+ | "searchType":"all", | ||
+ | "searchTerm":"orca", | ||
+ | "items":[ | ||
+ | { | ||
+ | "contentlevel":"clean", | ||
+ | "id":852521, | ||
+ | "tags":"Fox, Transformation, Dragon, Orca, Muscle Growth, Cock Growth, Toys, Growth, M/M, Latex, M/solo, Machines, Foot growth", | ||
+ | "title":"Latex Stream Story 3: A Pleasure to Meet You", | ||
+ | "author":"draconicon", | ||
+ | "link":"http://www.sofurry.com/view/852521", | ||
+ | "postTime":1430018009 | ||
+ | }, | ||
+ | ... | ||
+ | ] | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
== Getting User Profiles == | == Getting User Profiles == | ||
Revision as of 18:19, 27 April 2015
Contents
Browse submissions
Request URL
https://api2.sofurry.com/browse/all/art?format=json https://api2.sofurry.com/browse/all/stories?format=json https://api2.sofurry.com/browse/all/music?format=json https://api2.sofurry.com/browse/all/photos?format=json https://api2.sofurry.com/browse/all/journals?format=json
Parameters
* sortby = date, popularity, length, title, random * from = all time, this year, this month, this week, yesterday, today * rating = clean, adult, clean adult (max rating, leave empty to show all)
Returned data
{ "title": "SoFurry - All Art", "items": [ { "thumbnail": "https://www.sofurryfiles.com/std/thumb?page=12345", "contentlevel": "Clean", (can be clean, adult, extreme) "id": "12345", "title": "Submission Title", "author": "author name", "link": "http://api2.sofurry.com/view/12345", "postTime": "1430157763", "tags": "Tags, separated, by, commas", "description": "Lengthy description" }, .... ] }
Browse user submissions
Request URL
https://api2.sofurry.com/browse/user/art?uid=1234&format=json
Parameters
* uid = optional user ID to show only this user's submissions
Returned data
Same format as regular browse request
Search submissions
Request URL
https://api2.sofurry.com/browse/search?search=Searchterm1,Searchterm2&format=json
Parameters
* search = Search tags separated by comma. To do a fulltext search, enclose the search term with "quotation marks" * filter = all, stories, artwork, stories, photos, journals (optional, defaults to all) * sort = date, daterev, popularity * daterange = all, day, week, month, 6 months, year * minlevel = 0 (0=clean, 1=adult, 2=extreme) * maxlevel = 2 (0=clean, 1=adult, 2=extreme)
Returned data
{ "searchType":"all", "searchTerm":"orca", "items":[ { "contentlevel":"clean", "id":852521, "tags":"Fox, Transformation, Dragon, Orca, Muscle Growth, Cock Growth, Toys, Growth, M/M, Latex, M/solo, Machines, Foot growth", "title":"Latex Stream Story 3: A Pleasure to Meet You", "author":"draconicon", "link":"http://www.sofurry.com/view/852521", "postTime":1430018009 }, ... ] }
Getting User Profiles
Request URL
http://api2.sofurry.com/std/getUserProfile
Parameters
* id = numerical ID of the user whose profile you want. Optional. If omitted, the system will send your own profile data. * username = name of the user whose profile you want. Optional. Can be used instead of id, for if you don't know the user id.
Returned data
For anyone but yourself, you get the following data:
{ "username":"Toumal", "useralias":"toumal", (This is the url-friendly username for username.sofurry.com profile addresses) "userID":"13", "profileViewCount":"1234", "submissionCount":"1234", "submissionViewCount":"1234", "commentCount":"1234", "commentPostedCount":"1234", "species":"Orca", "gender":"1", (0=N/A, 1=Male, 2=Female, 3=Herm) "orientation":"0", (0=N/A, 1=Hetero, 2=Homosexual, 3=Bisexual, 4=Omnisexual) "mateshipStatus":"2", (0=N/A, 1=Single uninterested, 2=Single casual, 3=Single permanent, 4=Mated open, 5=Mated closed) "country":"Austria", "city":"Vienna", "registrationDate":"long long ago", "description":"Bla" "iswatched":"false", (false = you are not watching this user, true = you are currently watching this user) }
For your own user (only if you're OTP-authenticated correctly) you receive additional data about your unread PMs and notifications:
{ "username":"Toumal", "useralias":"toumal", (This is the url-friendly username for username.sofurry.com profile addresses) "userID":"13", "profileViewCount":"1234", "submissionCount":"1234", "submissionViewCount":"1234", "commentCount":"1234", "commentPostedCount":"1234", "species":"Orca", "gender":"1", (0=N/A, 1=Male, 2=Female, 3=Herm) "orientation":"0", (0=N/A, 1=Hetero, 2=Homosexual, 3=Bisexual, 4=Omnisexual) "mateshipStatus":"2", (0=N/A, 1=Single uninterested, 2=Single casual, 3=Single permanent, 4=Mated open, 5=Mated closed) "country":"Austria", "city":"Vienna", "registrationDate":"long long ago", "description":"Bla", "iswatched":"false", "unreadPMCount":"12", "watchlistCount":"1234", "notification_voteCount":1, "notification_watchCount":1, "notification_favoriteCount":0, "notification_friendRequestCount":0, "notification_commentCount":4, "notification_adminCommentCount":0, "notification_shoutCount":0, "notification_forumPostCount":0, "notification_collaborationCount":0, "notification_subscribedFolderCount":0, "notificationTotalCount":6 }
Get Submission Details
Request URL
http://api2.sofurry.com/std/getSubmissionDetails
Parameters
* id = numerical ID of the desired submission. Mandatory field.
Returned data
{ "contentType":"1", (0=story, 1=art, 2=music, 3=journal, 4=photo) "title":"Battle Sheep", "description":"This is a description Yay! \nTest test \nblablabla", "fileName":"Toumal - Battle Sheep.jpg", "fileExtension":"jpg", "width":"1024", "height":"685", "contentSourceUrl":"http://someurl", (URL of the full size image, if applicable) "previewSourceUrl":"http://someurl", (URL of the 800px preview) "thumbnailSourceUrl":"http://someurl" (URL of the thumbnail) }
Get Shouts
Request URL
http://api2.sofurry.com/api/getShouts
Parameters
* id = numerical ID of the desired user. Defaults to own user if omitted
Returned data
{ "entries":[ { "id":"280640", "parentID":"-1", "username":"JayriAvieock", "userID":"189019", "date":"1333734740", "message":"rawr? you called :3" }, { "id":"280628", "parentID":"280623", "username":"Toumal", "userID":"13", "date":"1333729895", "message":"Yes, I'd love that!" }, { "id":"280623", "parentID":"-1", "username":"markshark", "userID":"142337", "date":"1333729622", "message":"Thanks for the favorites, mr Toumal. I wonder if we could get a picture together at some point ;-)" }, { "id":"280542", "parentID":"-1", "username":"Rubberkitten", "userID":"32931", "date":"1333714929", "message":"hello :3." }, { "id":"280381", "parentID":"-1", "username":"Fenndragon", "userID":"209900", "date":"1333670188", "message":"thanks for the watch, and kind words!" } ] }
Get Comments
Request URL
http://api2.sofurry.com/api/getComments
Parameters
* id = numerical ID of the page of which the comments should be fetched. Mandatory field.
Returned data
{ "entries":[ { "id":"249324", "parentID":"-1", "username":"Testuser11", "userID":"57129", "date":"1311249060", "message":"blablablablabla" }, { "id":"249325", "parentID":"249324", "username":"Testuser11", "userID":"57129", "date":"1311249060", "message":"A reply" } ] }
Fetch list of PMs
Request URL
http://api2.sofurry.com/user/pm/list?format=json
Parameters
* None
Returned data
[ { "id":"6385869", "fromUserID":"89189", "toUserID":"13", "fromUserName":"Someuser", "toUserName":"Yourname", "timestamp":"1430151997", "subject":"SoFurry Ambassadors", "status":"0", (0=Unread, 1=Read, 2=Replied) "threadID":"659073" }, { "id":"6380243", "fromUserID":"292333", "toUserID":"13", "fromUserName":"Someotheruser", "toUserName":"Yourname", "timestamp":"1430076550", "subject":"Something blabla", "status":"2", "threadID":"658820" }, ... ]
Get contents of a PM
Request URL
http://api2.sofurry.com/user/pm/view?id=12345&format=json
Parameters
* id = numerical ID of the desired PM.
Returned data
{ "id":"6385869", "fromUserID":"89189", "fromUserName":"Someuser", "toUserID":"13", "toUserName":"Toumal", "timestamp":"1430151997", "subject":"SoFurry Ambassadors", "message":"Blah blah this is the main PM message contents", "status":"1", "parentID":"-1", "folder":"inbox", "isStar":"0", (Important PMs can be "starred") "todoState":"0", (Unused atm) "topParentID":"6385869", (ID of the initial PM in the conversation) "threadID":"659073" }
Send PM
Request URL
http://api2.sofurry.com/user/pm/new
Parameters
* PrivateMessage[toUserName] = Your username * PrivateMessage[subject] = Subject line * PrivateMessage[message] = Actual message contents * Send = "Send Message"
Returned data
None
Reply to PM
Request URL
http://api2.sofurry.com/comment/savePM
Parameters
* sfCommentReplyTo = ID of the PM to reply to * sfCommentReplyTextarea = Text message of the reply * assignme = "true"
Returned data
{ "status":1, (0=error, 1=OK) "message":"" (Filled with html error message if status = 0) }