Hello Highrise Builder Community!
Today, we are thrilled to announce the launch of our new Highrise Web API!
Our new Web API allows developers and community members to access various types of Highrise game data programmatically. It opens up a whole new world of possibilities for anyone looking to build more feature-filled bots, create new Highrise-related applications, or even run data analytics.
We plan to continue adding more content to the Web API in the coming months; if you have any suggestions or content requests, please comment them below. For now, here is a brief overview to how you can get started with the API:
Introduction
Welcome to the Highrise Web API documentation. This API is designed to provide developers and community members with direct access to a wide range of Highrise game data. Our goal is to encourage the use of this data for various purposes, ranging from community app development to game analytics to more powerful Highrise bots.
Getting Started
All API calls start with the base URL:
https://webapi.highrise.game/
Every request you make should be directed to this base URL.
Pagination
The Highrise Web API utilizes cursor-based pagination via starts_after
and ends_before
parameters in the request. Hereβs how it works:
starts_after
: This is the ID of the item from which you want to start fetching data. The server will return entries that come after this ID. If this parameter is not provided, the server starts from the first entry.ends_before
: This is the ID of the item before which you want to stop fetching data. The server will return entries that come before this ID.
API Resources
Below is a detailed description of each API resource available and the associated parameters you can use to filter and format the retrieved data.
1. User Data
-
Retrieve a list of users
GET
/users?&username={username}&sort_order={sort_order}&limit={limit}
This endpoint retrieves a list of users based on the parameters specified:
username
: The username you wish to search for. This will filter the results to only users who match the specified username.sort_order
: Determines the order in which results are returned. Can be eitherasc
for ascending order ordesc
for descending order.starts_after
: The ID of the user from which to start the query. This is useful for paginating results.ends_before
: The ID of the user to end the query before. This is also useful for paginating results.limit
: The maximum number of users you want to retrieve per request.
-
Retrieve a userβs profile data
GET
/users/{user_id}
Replace
{user_id}
with the ID of the user you wish to retrieve data for.
2. Room Data
-
Retrieve a list of rooms
GET
/rooms?limit={limit}&sort_order={sort_order}&owner_id={owner_id}
This endpoint retrieves a list of rooms based on the following parameters:
owner_id
: The ID of the user who owns the rooms you want to retrieve.sort_order
: Determines the order in which results are returned. Can be eitherasc
for ascending order ordesc
for descending order.starts_after
: The ID of the room from which to start the query. This is useful for paginating results.ends_before
: The ID of the room to end the query before. This is also useful for paginating results.limit
: The maximum number of rooms to retrieve per request.
-
Retrieve a roomβs data
GET
/rooms/{room_id}
Replace
{room_id}
with the ID of the room for which you want to retrieve data.
3. Newsfeed Post Data
-
Retrieve a list of newsfeed posts
GET
/posts?limit={limit}&sort_order={sort_order}&author_id={author_id}
This endpoint retrieves a list of newsfeed posts based on the following parameters:
author_id
: The ID of the user who authored the posts you want to retrieve.sort_order
: Determines the order in which results are returned. Can be eitherasc
for ascending order ordesc
for descending order.starts_after
: The ID of the post from which to start the query. This is useful for paginating results.ends_before
: The ID of the post to end the query before. This is also useful for paginating results.limit
: The maximum number of posts to retrieve per request.
-
Retrieve a specific post
GET
/posts/{post_id}
Replace
{post_id}
with the ID of the post you want to retrieve.
API Responses
All responses are in JSON format. Here is an example response:
{
"user": {
"user_id": "641ca75c543d7461b472ef62",
"username": "DAnie842",
"outfit": [...],
"bio": "Hey!!!!",
"joined_at": "2023-03-23T19:24:12.954000+00:00",
"last_online_in": "2023-06-28T17:26:10.254000+00:00",
"num_followers": 2,
"num_following": 2,
"num_friends": 1,
"active_room": null,
"country_code": "302",
"crew": null,
"voice_enabled": true
}
}
Rate Limiting
We implement rate limiting to ensure fair usage of the API. If a rate limit is surpassed within a designated time period, the API will respond with a HTTP 429 Too Many Requests status code. This mechanism helps prevent potential abuse and maintain the overall stability and reliability of the API service for all our users.
Authentication
As of now, the API does not mandate any authentication tokens or API keys. All accessible data is public. Please note that any data modification or updating is unsupported.