AstroUp | search

⚠️ Maintainence Mode!! AstroUp is currently in Maintainence Mode, Read more here. ⚠️

AstroAPI Documentation

Created by mochaaaa, revision 2 (2/9/2025)

Table of Contents

API History

Back when AstroUp 1.1 was released in 2022, the AstroUp API was released to help developers integrate applications inside of the API. 1.4 saw the shutdown of this API due to Thorsen giving a Private API Endpoint for AstroUp to use.

After the shutdown of AstroUp's Discord Bot in 2023, AstroBot, a in-game bot for Astrogon, was made after findings of the chat protocol that Astrogon had, alongside it, the public release of V1-V4 API endpoints for AstroUp, given, with limited functionality.

In 2024, along with the development of Cosmo, AstroUp introduced changes to the V1, V3, and a new endpoint, the V5 API, which included things such as querying, enhanced bot support, and user-defined data.

Why?

AstroUp's API was made for both Users and Developers to make and integrate Astrogon's Stats into Applications, along with it, giving a readable and easy to understand format.

There was also a need to keep Astrogon's servers secure and safe, AstroUp's API accounts for this by using Guest Accounts and not interfering with any form of protocol/adding data, keeping interactions between users/developers safe.

V1 API

Level Lookups

URL: /api/v1/getLevel/<level>
Parameter Description
level A URLEncoded string containing the level name.
Sample Output:
{
  creator: "abcd",
  title: "efg",
  likes: 1,
  practiceAttempts: 100,
  attempts: 300,
  clears: 50,
  comments: 20,
  worldRecordTime: "6.10",
  worldRecordHolder: "xyz",
  levelID: "abcd-efgh-ijkl",
  description: "a filler description"
}


URL: /api/v1/getLevelID/<levelid>
Parameter Description
levelid A string containing a Level ID (xxxx-xxxx-xxxx)
Sample Output:
{
  creator: "abcd",
  title: "efg",
  likes: 1,
  practiceAttempts: 100,
  attempts: 300,
  clears: 50,
  comments: 20,
  worldRecordTime: "6.10",
  worldRecordHolder: "xyz",
  levelID: "abcd-efgh-ijkl",
  description: "a filler description"
}

User Lookups

URL(s): /api/v1/getUser/<user>, /api/v1/getUserFromID/<userID>
Parameter Description
user A URLEncoded string containing a username.
userID A UserID representing an Astrogon user.
Sample Output:
{
  playerName: "username",
  profilePicture: "pfp_url",
  countryCode: "cc",
  userUid: "uid"
  stats: {
    game: {
      creativePoints: 1234,
      creativeRanking: 123,
      rankedPoints: 12,
      rankedRanking: 1,
      rankedWins: 12,
      rankedLost: 123,
      rankedLeague: "atomic",
      quickGameWins: 1234,
      quickGameLost: 12345,
      totalAttempts: 1234,
      worldRecords: 123,
      lastPlayedAmount: 15,
      lastPlayedList: [(...), (...), (...)]
    },
    creator: {
      hasBeenCreatorOfTheWeek: false,
      hasBeenLevelOfTheDay: false,
      hasBeenTop10Levels: false
    },
    social: {
      totalLevelLikes: 12,
      totalReplayLikes: 1,
      totalCommentsReceived: 12,
      totalCommentsSent: 123,
      totalUploadedLevels: 1234
    },
    misc: { 
        hasNeo: false, 
        isCheatBanned: false, 
        isSteamUser: false 
    }
  }
}

User Query

URL(s): /api/v1/getUserQuery/<query>
Parameter Description
query A URLEncoded string.
Sample Output:
[
  {
    user: "Jorivasmw3000",
    pfp: "https://astroup.xyz/assets/invalidPFP.png",
    uid: "gctyI21KO1h3OIr3bVYHAZi9lzx2"
  },
  {
    user: "bohoja",
    pfp: "https://avatars.steamstatic.com/c29763dbaaf74d95d4234953e794d392d6fd8d86_full.jpg",
    uid: "76561199621871086"
  },
  {
    user: "noelle",
    pfp: "https://lh3.googleusercontent.com/a-/AOh14Gi0aVjCEPU6o2vZh2650J-nW8OYinBzEip5Z-dfzg=s96-c",
    uid: "dtbDwRbHaGPNUESlVnBWusM4RVR2"
  }
]

V2 API

Leaderboard Lookups

URL: /api/v2/getLeaderBoards/<leaderboard>
Parameter Description
leaderboard A String containing a Leaderboard Type.
The Avalible types are: creative, solo, versus, atomic, molecular, planetary, galactic, and supernova.
Sample Output (Non-Dimension Requests):
{
  "status": "OK",
  "data":[
    {
      "player": "4rC.4nU.m",
      "countryCode": "de",
      "points": 2377151,
      "worldRecords": 2380,
      "pfpURL": "someurl"
    },
    {
      "player": "second player or smth",
      "countryCode": "mx",
      "points": 123123,
      "worldRecords": 1795,
      "pfpURL": "another url"
    },
    {
      "player": "oh hes 3rd?",
      "countryCode": "us",
      "points": 111111,
      "worldRecords": 511,
      "pfpURL": null
    }
  ]
}
Sample Output (Dimension Requests):
{
  "status": "OK",
  "data": [
    {
      "player": "lillie~",
      "countryCode": "de",
      "timeSeconds": 75.6,
      "hasDied": true
    },
    {
      "player": "bruh",
      "countryCode": "uk",
      "timeSeconds": 99.99,
      "hasDied": true
    },
    {
      "player": "omg api",
      "countryCode": "fr",
      "timeSeconds": 727.27,
      "hasDied": true
    }
  ]
}

V3 API

ChatBot WS Wrapper

URL: /api/v3/chatbot?token=<TOKEN>
Parameter Description
TOKEN A String Containing a Unique Bot Token.

This API is not publicly avalible, and will most likely never be. This is only documented for the AstroBot Documentation.

V4 API

Clear Rate List

URL: /api/v4/getClearRateList
Parameter Description
N/A N/A
Sample Output:
{
  data: [
    {
      name: "Execution",
      id: "2I1J-W7R4-762F",
      clearRate: 0.008358408559010364, // clear rate percentage
      attempts: 11964,
      wins: 1,
      creator: "haaaaaaaaris",
      bestTime: 58.04997678 // time in seconds
    },
    {
      name: "Destruction",
      id: "21WZ-6873-32ML",
      clearRate: 0.008358408559010364, // clear rate percentage
      attempts: 53092,
      wins: 6,
      creator: "haaaaaaaaris",
      bestTime: 57.98331014 // time in seconds
    },
    {
      name: "huh??",
      id: "12 letter ID",
      clearRate: 0.2, // clear rate percentage
      attempts: 11964,
      wins: 1,
      creator: "nyaaaa :3",
      bestTime: 10000.00 // time in seconds
    }
  ]
}

Points calculation are done as such (JS):

if (index == 0) {
  points = 100;
}

if (index == 1) {
    points = 95;
}

if (index == 2) {
    points = 90;
}

if (index > 2 && index < 10) {
    points = 80;
}

if (index > 9 && index < 25) {
    points = 40;
}

if (index > 24 && index < 50) {
    points = 20;
}

if (index > 49 && index < 100) {
    points = 5;
}

if (index > 99 && index < 250) {
    points = 1;
}

if (index > 249) {
    points = 0;
}

Farming List

URL: /api/v4/getFarmList
Parameter Description
N/A N/A
Sample Output:
{
  data: [
    {
      name: "Laisse toi aller",
      id: "MCDI-3HNV-EGZP",
      clearRate: 94.11764705882352, // clear rate percentage
      attempts: 17,
      wins: 16,
      creator: "STCX",
      bestTime: 33.933319759999996 // time in seconds
    },
    {
      name: "auto",
      id: "J9QR-3M1W-55MW",
      clearRate: 91.66666666666666, // clear rate percentage
      attempts: 12,
      wins: 11,
      creator: "Егор#13643",
      bestTime: 28.766655160000003 // time in seconds
    },
    {
      name: "Destruction",
      id: "21WZ-6873-32ML",
      clearRate: 0.008358408559010364, // clear rate percentage
      attempts: 53092,
      wins: 6,
      creator: "haaaaaaaaris",
      bestTime: 57.98331014 // time in seconds
    }
  ]
}


User World Record List

URL: /api/v4/getWR/<UID>
Parameter Description
UID Astrogon User ID.
Sample Output:
{
  status: "OK",
  code: "OK",
  data: [
    {
      title: "Noxious Shifter",
      inGameID: "4Q7I-9EHC-B79G",
      databaseID: "635c81e0bffe68dd1c41e9f2",
      creator: "Achii",
      bestTime: 18.21666666666667, // seconds
      attempts: 143
    },
    {
      title: "The Adventures:1",
      inGameID: "57C3-MIIM-9RIH",
      databaseID: "6336c5fff99a868dbb11d190",
      creator: "게임맛초밥",
      bestTime: 10.316666666666668, // seconds
      attempts: 94
    },
    {
      title: "the wall-spam",
      inGameID: "4VY7-WUJZ-JKB7",
      databaseID: "661784a31590c0ab06fbc6d7",
      creator: "abfndttgdfb",
      bestTime: 1.2, // seconds
      attempts: 407
    }
  ]
}

User Last Played List

URL: /api/v4/getRP (POST/Body Parameters)
Parameter Description
levels Array of levels from a User's Lookup. (lastPlayedList)
Sample Output:
{
  status: "OK",
  code: "OK",
  data: [
    {
      title: "justroomescape",
      inGameID: "7F9T-UV75-4XK8",
      databaseID: "67113888caeeef8225364c7a",
      creator: "thatsomeone",
      bestTime: 11.816666666666668, // seconds
      bestTimeWho: "Scion",
      attempts: 618
    },
    {
      title: "Damn",
      inGameID: "8RQM-4VT3-V1A4",
      databaseID: "671171a36d2b33e12f82cbe8",
      creator: "2cion",
      bestTime: 5.75, // seconds
      bestTimeWho: "4rC.4nU.m",
      attempts: 241
    },
    {
      title: "imbored 1",
      inGameID: "423D-XQTB-MDDX",
      databaseID: "67164a7b6d2b33e12f82edf9",
      creator: "꙰꙰ ꙰S꙰c꙰i꙰o꙰n꙰",
      bestTime: 2.5833333333333335, // seconds
      bestTimeWho: "4rC.4nU.m",
      attempts: 310
    }
  ]
}

V5 API

User Descriptions

URL: /api/v5/getCosmoDescription/<userID>
Parameter Description
userID Astrogon User ID.
Sample Output (user: mochaaaa):
{
  "status":"OK",
  "code": "OK",
  // max data size: 16 characters per description
  "data": {
    "desc1":"she/her", // first description field
    "desc2":"meow :3" // second description field
  }
}
Sample Output (Error/No Data):
{
  "status":"ERR",
  "code": "User Data not found!",
  "data": null
}
Sample Output (Error/Disabled):
{
  "status":"ERR",
  "code": "User Data API Disabled!",
  "data": null
}

User Badges

URL: /api/v5/getUserAwards/<userID>
Parameter Description
userID Astrogon User ID.
Sample Output (user: mochaaaa):
{
  "status":"OK",
  "code": "OK",
  "badges": [
    {
      "internalID": "1",
      "badgeName": "AstroUp Developer",
      "badgeAsset": "https://astroup.xyz/assets/badges/astroup.png",
      "given": "2022-07-04T08:00:00-07:00" // ISO8601 Date
    },
    {
      "internalID": "2",
      "badgeName": "Cosmo Developer",
      "badgeAsset": "https://astroup.xyz/assets/badges/cosmo.png",
      "given": "2024-02-26T14:20:00-07:00" // ISO8601 Date
    }
  ]
}
Sample Output (Error/No Badges):
{
  "status":"ERR",
  "code": "No Badges..",
  "badges": null
}
byebye love u queer cats <3

Site created by mochaaaa, Astrogon and its respective copyrights are owned by Kosmoon Studio.