Documentation
Global Parameters
These parameters are used for all API calls.
Type |
Parameters |
Description |
Values |
required |
key |
API key used for the request. |
API_KEY |
required |
action |
The requested API function. |
See Below |
optional |
output |
The desired output format. Default is JSON. |
json | xml |
Global Errors
Code |
ERR_ID |
Error Message |
-1 |
no_action |
No action was requested. |
-1 |
invalid_key |
Invalid API Key. |
-1 |
request_flood |
Too many request in the last 1 second(s). |
-2 |
insufficient_credits |
Insufficient credits for request. |
Actions
Credits
action = credits
Provides the remaining API credits remaining for the specified key along with the IP credits.
Example Request:
http://www.flashflashrevolution.com/api/api.php?key=API_KEY&action=credits
Example Response:
{
"api_key_remaining": 2000,
"api_key_total": 2000,
"api_ip_remaining": 220,
"api_ip_total": 250,
"api_ip_reset_in":1418135476
}
Level Ranks
action = ranks
Provides access to the level ranks for a user. Includes token + legacy files.
Parameters |
Description |
userid |
The userid the ranks are being requested for. If used, username should be avoided. |
username |
The username the rank are being requested for. If used, userid should be avoided. |
Errors
Code |
ERR_ID |
Error Message |
-1 |
invalid_user |
Invalid User Specified. |
Example Request:
http://www.flashflashrevolution.com/api/api.php?key=API_KEY&action=ranks&username=Zageron
Example Response (JSON):
{
"user": {
"name": "Zageron",
"id": "1186339"
},
"songs": {
"1": { // <-- This is the level ID.
"info": {
"level": 1,
"genre": 13,
"name": "Terror From Beyond",
"difficulty": 8,
"notes":514,
"length":"2:50"
},
"scores": {
"score": 796700,
"perfect": 514,
"average": 0,
"miss": 0,
"boo": 0,
"combo": 514,
"played": 2,
"timestamp": 1290483615,
"rank": 1
}
},
"2": {
"info": {
"level": 2,
"genre": 13,
"name": "Get on the Move",
"difficulty": 6,
"notes":357,
"length":"3:03"
},
"scores": {
"score": 553350,
"perfect": 357,
"average": 0,
"miss": 0,
"boo": 0,
"combo": 357,
"played": 1,
"timestamp": 1289719055,
"rank": 1
}
},
...
}
}
Example Response (XML):
<?xml version="1.0" encoding="UTF-8"?>
<data>
<user>
<name><![CDATA[Zageron]]></name>
<id>1186339</id>
</user>
<songs>
<song levelid="1">
<info>
<level>1</level>
<genre>13</genre>
<name><![CDATA[Terror From Beyond]]></name>
<difficulty>8</difficulty>
<notes>514</notes>
<length>2:50</length>
</info>
<scores>
<score>796700</score>
<perfect>514</perfect>
<average>0</average>
<miss>0</miss>
<boo>0</boo>
<combo>514</combo>
<played>2</played>
<timestamp>1290483615</timestamp>
<rank>1</rank>
</scores>
</song>
<song levelid="2">
<info>
<level>2</level>
<genre>13</genre>
<name><![CDATA[Get on the Move]]></name>
<difficulty>6</difficulty>
<notes>357</notes>
<length>3:03</length>
</info>
<scores>
<score>553350</score>
<perfect>357</perfect>
<average>0</average>
<miss>0</miss>
<boo>0</boo>
<combo>357</combo>
<played>1</played>
<timestamp>1289719055</timestamp>
<rank>1</rank>
</scores>
</song>
...
</songs>
</data>
Recent Games
action = new_recent_games
Provides access to the users last 25 played games as displayed on the daily stats page.
Parameters |
Description |
userid |
The userid the ranks are being requested for. If used, username should be avoided. |
username |
The username the rank are being requested for. If used, userid should be avoided. |
Errors
Code |
ERR_ID |
Error Message |
-1 |
invalid_user |
Invalid User Specified. |
Example Request:
http://www.flashflashrevolution.com/api/api.php?key=API_KEY&action=new_recent_games&username=Zageron
Example Response (JSON):
{
"user": {
"name": "Zageron",
"id": "1186339"
},
"recent": [
{
"userid": 1186339,
"username": "Zageron",
"songname": "Ambient Angels",
"level": 1557,
"score": 339355,
"raw_score": 15120,
"timestamp": 1549766791,
"timestamp_format": "Feb 9, 08:46 PM",
"amazing": 126,
"perfect": 162,
"good": 31,
"average": 0,
"miss": 5,
"boo": 1,
"combo": 174,
"rank": 3173,
"flag": 0,
"flags": []
},
{
"userid": 1186339,
"username": "Zageron",
"songname": "A White Cat Sings Lovely Jazz Waltz",
"level": 2301,
"score": 769865,
"raw_score": 62095,
"timestamp": 1548032391,
"timestamp_format": "Jan 20, 06:59 PM",
"amazing": 474,
"perfect": 636,
"good": 359,
"average": 80,
"miss": 132,
"boo": 292,
"combo": 103,
"rank": 407,
"flag": 12,
"flags": [
{
"type": "Better Score",
"value": 4
},
{
"type": "Better Raw Score",
"value": 8
}
]
},
...
]
}
Example Response (XML):
<?xml version="1.0" encoding="UTF-8"?>
<data>
<user>
<name><![CDATA[Zageron]]></name>
<id>1186339</id>
</user>
<recent>
<game levelid="1557">
<userid>1186339</userid>
<username><![CDATA[Zageron]]></username>
<songname><![CDATA[Ambient Angels]]></songname>
<level>1557</level>
<score>339355</score>
<raw_score>15120</raw_score>
<timestamp>1549766791</timestamp>
<timestamp_format>Feb 9, 08:46 PM</timestamp_format>
<amazing>126</amazing>
<perfect>162</perfect>
<good>31</good>
<average>0</average>
<miss>5</miss>
<boo>1</boo>
<combo>174</combo>
<rank>3173</rank>
<flag>0</flag>
<flags/>
</game>
<game levelid="2301">
<userid>1186339</userid>
<username><![CDATA[Zageron]]></username>
<songname><![CDATA[A White Cat Sings Lovely Jazz Waltz]]></songname>
<level>2301</level>
<score>769865</score>
<raw_score>62095</raw_score>
<timestamp>1548032391</timestamp>
<timestamp_format>Jan 20, 06:59 PM</timestamp_format>
<amazing>474</amazing>
<perfect>636</perfect>
<good>359</good>
<average>80</average>
<miss>132</miss>
<boo>292</boo>
<combo>103</combo>
<rank>407</rank>
<flag>12</flag>
<flags>
<type>Better Score</type>
<value>4</value>
</flags>
<flags>
<type>Better Raw Score</type>
<value>8</value>
</flags>
</game>
...
</recent>
</data>
Old Recent Games (Deprecated)
action = recent_games
Provides access to the users last 10 played games.
Parameters |
Description |
userid |
The userid the ranks are being requested for. If used, username should be avoided. |
username |
The username the rank are being requested for. If used, userid should be avoided. |
Errors
Code |
ERR_ID |
Error Message |
-1 |
invalid_user |
Invalid User Specified. |
Example Request:
http://www.flashflashrevolution.com/api/api.php?key=API_KEY&action=recent_games&username=Zageron
Example Response (JSON):
{
"user": {
"name": "Zageron",
"id": "1186339"
},
"recent": [
{
"level": 1949,
"name": "asdfmovie song",
"score": 1977425,
"timestamp": 1421318214,
"perfect": 1270,
"good": 7,
"average": 0,
"miss": 0,
"boo": 0,
"combo": 1277,
"rank": 133
},
{
"level": 2146,
"name": "Kirlian Isles I",
"score": 196850,
"timestamp": 1421318069,
"perfect": 127,
"good": 0,
"average": 0,
"miss": 0,
"boo": 0,
"combo": 127,
"rank": 1
},
...
]
}
Example Response (XML):
<?xml version="1.0" encoding="UTF-8"?>
<data>
<user>
<name><![CDATA[Zageron]]></name>
<id>1186339</id>
</user>
<recent>
<game levelid="1949">
<level>1949</level>
<name><![CDATA[asdfmovie song]]></name>
<score>1977425</score>
<timestamp>1421318214</timestamp>
<perfect>1270</perfect>
<good>7</good>
<average>0</average>
<miss>0</miss>
<boo>0</boo>
<combo>1277</combo>
<rank>133</rank>
</game>
<game levelid="2146">
<level>2146</level>
<name><![CDATA[Kirlian Isles I]]></name>
<score>196850</score>
<timestamp>1421318069</timestamp>
<perfect>127</perfect>
<good>0</good>
<average>0</average>
<miss>0</miss>
<boo>0</boo>
<combo>127</combo>
<rank>1</rank>
</game>
...
</recent>
</data>
Acheievements
action = achievements
Provides access to the users last 50 achievements.
Parameters |
Description |
userid |
The userid the ranks are being requested for. If used, username should be avoided. |
username |
The username the rank are being requested for. If used, userid should be avoided. |
Errors
Code |
ERR_ID |
Error Message |
-1 |
invalid_user |
Invalid User Specified. |
Example Request:
http://www.flashflashrevolution.com/api/api.php?key=API_KEY&action=achievements&username=Zageron
Example Response (JSON):
[
{
"username": "Zageron",
"userid": 1186339,
"type": "gamesplayed",
"value": 18000,
"time": 1544072834,
"time_format": "Dec 5, 11:07 PM",
"desc": "18000 Games Played!"
},
{
"username": "Zageron",
"userid": 1186339,
"type": "grandtotal",
"value": 7,
"time": 1509240163,
"time_format": "Oct 28, 08:22 PM",
"desc": "7 Billion Grandtotal!"
},
{
"username": "Zageron",
"userid": 1186339,
"type": "gamesplayed",
"value": 17000,
"time": 1467334302,
"time_format": "Jun 30, 07:51 PM",
"desc": "17000 Games Played!"
}
]
Example Response (XML):
<?xml version="1.0" encoding="UTF-8"?>
<data>
<achievements>
<username><![CDATA[Zageron]]></username>
<userid>1186339</userid>
<type>gamesplayed</type>
<value>18000</value>
<time>1544072834</time>
<time_format><![CDATA[Dec 5, 11:07 PM]]></time_format>
<desc><![CDATA[18000 Games Played!]]></desc>
</achievements>
<achievements>
<username><![CDATA[Zageron]]></username>
<userid>1186339</userid>
<type>grandtotal</type>
<value>7</value>
<time>1509240163</time>
<time_format><![CDATA[Oct 28, 08:22 PM]]></time_format>
<desc><![CDATA[7 Billion Grandtotal!]]></desc>
</achievements>
<achievements>
<username><![CDATA[Zageron]]></username>
<userid>1186339</userid>
<type>gamesplayed</type>
<value>17000</value>
<time>1467334302</time>
<time_format><![CDATA[Jun 30, 07:51 PM]]></time_format>
<desc><![CDATA[17000 Games Played!]]></desc>
</achievements>
</data>
Level Scores
action = level_scores
Provides access to the highscore table of a single level.
Parameters |
Description |
level |
The selected level to get highscores for. |
page |
Which page of scores to retrieve based on the page limit. |
limit |
The amount of entries per page within a range of 1-10000. If not set, this defaults to 10000. |
Errors
Code |
ERR_ID |
Error Message |
-1 |
invalid_level_id |
Invalid Level ID Specified. |
Example Request:
http://www.flashflashrevolution.com/api/api.php?key=API_KEY&action=level_scores&level=3401
Example Response (JSON):
{
"song": {
"id": 3401,
"songname": "NULCTRL",
"note_count": 1026,
"time": "2:26",
"difficulty": 60,
"players": 89
},
"scores": [
{
"id": 1860467,
"username": "Psycast",
"perfect": 1026,
"good": 0,
"average": 0,
"miss": 0,
"boo": 0,
"timestamp": 1658553329,
"raw_score": 51300,
"rank": 1,
"aaaeq": 60
},
...
{
"id": 2076785,
"username": "Azerr",
"perfect": 84,
"good": 8,
"average": 0,
"miss": 12,
"boo": 4,
"timestamp": 1658932923,
"raw_score": 4260,
"rank": 89,
"aaaeq": 0
}
]
}
Example Response (XML):
<?xml version="1.0" encoding="UTF-8"?>
<data>
<scores>
<score>
<id>1860467</id>
<username><![CDATA[Psycast]]></username>
<perfect>1026</perfect>
<good>0</good>
<average>0</average>
<miss>0</miss>
<boo>0</boo>
<timestamp>1658553329</timestamp>
<raw_score>51300</raw_score>
<rank>1</rank>
<aaaeq>60</aaaeq>
</score>
...
<score>
<id>2076785</id>
<username><![CDATA[Azerr]]></username>
<perfect>84</perfect>
<good>8</good>
<average>0</average>
<miss>12</miss>
<boo>4</boo>
<timestamp>1658932923</timestamp>
<raw_score>4260</raw_score>
<rank>89</rank>
<aaaeq>0</aaaeq>
</score>
</scores>
<song>
<id>3401</id>
<songname>NULCTRL</songname>
<note_count>1026</note_count>
<time>2:26</time>
<difficulty>60</difficulty>
<players>89</players>
</song>
</data>
Leaderboards
action = leaderboards
Provides access to the leaderboards.
Parameters |
Description |
page |
Which page of scores to retrieve based on the page limit. |
limit |
The amount of entries per page within a range of 1-500. If not set, this defaults to 50. |
Errors
Code |
ERR_ID |
Error Message |
Example Request:
http://www.flashflashrevolution.com/api/api.php?key=API_KEY&action=leaderboards
Example Response (JSON):
{
"scores": [
{
"userid": 2065490,
"username": "play more",
"rating": 113.225,
"avgrank": 9689.2394082,
"grandtotal": 822943810,
"tierpoints": 822943810,
"country": "Niger",
"unique_aaas": 22,
"unique_fcs": 24
},
{
"userid": 2029965,
"username": "AnMaO",
"rating": 111.912,
"avgrank": 9625.75622058,
"grandtotal": 1312088510,
"tierpoints": 1312088510,
"country": "Uruguay",
"unique_aaas": 70,
"unique_fcs": 105
},
{
"userid": 2030068,
"username": "Myuka",
"rating": 111.197,
"avgrank": 9583.82985878,
"grandtotal": 1394454140,
"tierpoints": 1394454140,
"country": "Chile",
"unique_aaas": 33,
"unique_fcs": 43
},
{
"userid": 1982386,
"username": "Matthia",
"rating": 109.911,
"avgrank": 0.98016139879,
"grandtotal": 96638992515,
"tierpoints": 96638992515,
"country": "Germany",
"unique_aaas": 2938,
"unique_fcs": 2944
},
{
"userid": 2056114,
"username": "neptunefun",
"rating": 109.729,
"avgrank": 9703.71009112,
"grandtotal": 676141845,
"tierpoints": 676141845,
"country": "United States of America",
"unique_aaas": 9,
"unique_fcs": 21
}
]
}
Example Response (XML):
<?xml version="1.0" encoding="UTF-8"?>
<data>
<scores>
<userid>2065490</userid>
<username>play more</username>
<rating>113.225</rating>
<avgrank>9689.2394082</avgrank>
<grandtotal>822943810</grandtotal>
<tierpoints>822943810</tierpoints>
<country>Niger</country>
<unique_aaas>22</unique_aaas>
<unique_fcs>24</unique_fcs>
</scores>
<scores>
<userid>2029965</userid>
<username>AnMaO</username>
<rating>111.912</rating>
<avgrank>9625.75622058</avgrank>
<grandtotal>1312088510</grandtotal>
<tierpoints>1312088510</tierpoints>
<country>Uruguay</country>
<unique_aaas>70</unique_aaas>
<unique_fcs>105</unique_fcs>
</scores>
<scores>
<userid>2030068</userid>
<username>Myuka</username>
<rating>111.197</rating>
<avgrank>9583.82985878</avgrank>
<grandtotal>1394454140</grandtotal>
<tierpoints>1394454140</tierpoints>
<country>Chile</country>
<unique_aaas>33</unique_aaas>
<unique_fcs>43</unique_fcs>
</scores>
<scores>
<userid>1982386</userid>
<username>Matthia</username>
<rating>109.911</rating>
<avgrank>0.98016139879</avgrank>
<grandtotal>96638992515</grandtotal>
<tierpoints>96638992515</tierpoints>
<country>Germany</country>
<unique_aaas>2938</unique_aaas>
<unique_fcs>2944</unique_fcs>
</scores>
<scores>
<userid>2056114</userid>
<username>neptunefun</username>
<rating>109.729</rating>
<avgrank>9703.71009112</avgrank>
<grandtotal>676141845</grandtotal>
<tierpoints>676141845</tierpoints>
<country>United States of America</country>
<unique_aaas>9</unique_aaas>
<unique_fcs>21</unique_fcs>
</scores>
</data>
Tournament
action = tournament
Provides access to latest running officially run tournament.
Errors
Code |
ERR_ID |
Error Message |