New Highrise Web API πŸŽ‰

Hello Highrise Builder Community!

Today, we are thrilled to announce the launch of our new Highrise Web API! :tada::tada::tada:

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 either asc for ascending order or desc 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 either asc for ascending order or desc 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 either asc for ascending order or desc 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.

8 Likes

Reporting a problem, posts with type=β€˜event’ that come from accounts like @Highrise don’t return any body/caption in the GetPublicPostsResponse

1 Like

we’re looking into it, thanks!

1 Like
$  curl https://webapi.highrise.game/posts?limit=1
Unable to fetch posts.

I think this endpoint is broken.

1 Like