Boundlexx API: An API to get all things related to Boundless

I can add it. I do not do a big side by side between the serializers so I could have missed values.

EDIT: Neverminded, @xyberviri, that is expected behavior actually. The v2 API does not provide ids either: https://api.boundlexx.app/api/v2/worlds/10/shop-stands/. The only data that should need to be added to the v1 API is data that is missing from it that the v2 API has.

Shops to not have a single “id” (primary key). There are no API endpoints to directly look them up and their actual database primary key is a composite ID of time + world + location. Shop data is actually all timeseries data behind the scenes, I just have not made the dedicated timeseries endpoints yet for them. Beacons are the same way, they do not provide an “id” as their primary key is a composite of time + world + location as well. World polls are the odd one out since Resources are broken out of the main World Poll so you can see them all separately.

Also, generally, I try to avoid giving direct ID look up unless there is a specific “retrieve item” endpoint (and you need the ID to look up the item) or there is actual game associated ID (like items, colors, etc.). In those cases it is essentially unnecessary data since the IDs are internal only for my database.

1 Like

sounds good, appeared to be a bug to me, because at first glance the request_baskets_url has a world /id/ populated, same with the other ***_url fields so at first it appears to be a typo for the variable.

  • Adds full categorization of Emojis
    • is_boundless_only has been replaced with category (you can still do category=BOUNDLESS to get Boundless only ones)
  • Adds Settlements endpoint to Worlds API (ex: https://api.boundlexx.app/api/v2/worlds/10/settlements/)
    • This API is still very basic. It only displays the location/prestige/name of the to top 50 Settlements. I just wanted to use the basic API that was available that other sites used so we could get some Settlement data to go with the beacon data. Hopefully we will get a proper Settlement API to match the Beacon data in the near future (hint hint wink wink devs). Settlements are updated once every hour. EDIT: Settlements are updated once a hour, but it seems like they are cached for ~24 hours on the CDN cache. So it may take up to 1-2 days for your settlement details to update on the API or anything that uses it.

I have set up the repo for Boundlexx UI to handle issues for the Boundlexx backend as well. Please report issues/request features there if you have a Github account!

  • Cleaned up all of the Skill/Emoji icons so they do not look so blocky/jagged.
2 Likes

WARNING: I have planned maintenance for Boundlexx for next Tuesday starting at 2020-11-17T22:00:00Z. During this time the Boundlexx API will be offline for approximately 2 hours. I will be migrating the app to a new (temporary) server as I will be moving in the near future. There will be another accompanying maintenance at some further point in the future to move it back.

EDIT: I will not be migrating all of the Boundlexx tools/things so Metabase and all of the public dashboards is will be powered will be offline until everything is migrated back to the original server.

Maintenance is canceled. There will be no outage for the Boundlexx API. Some stuff came up and looks like the maintenance will not be necessary for the near future. It will be rescheduled to a future time and date.

Maintenance rescheduled for 2020-12-05T17:00:00Z. As before, expected outage should be ~2 hours.

Maintenance during traditional change freeze time frame, Oh my @Angellus likes to live life dangerously :stuck_out_tongue:

Maintence is done, but Azure is having issues switching over the origin so I had to set back up Cloudflare. It may take a while for the DNS to prorogate and for Boundlexx to come back online.

3 Likes

@Angellus Looks like the API has been down for a few hours. I don’t have any symptoms to report other than 500 errors.

Sorry, I am moving today. I tried my best to minimize downtime, but it looks like I messed up. :confused:

4 Likes

No worries, man, you do this as a courtesy to people. IRL comes first.

Everything should be back up now. Sorry for the extended outage!

3 Likes

oh snap that was probably my fault for saying the thing i shouldn’t have said…

i guess i should have busted one of these out

Boundlexx should be 100% migrated back to its original host and running back at full capacity. Over the next few days I will monitor and resolve any slowness in scanning and make sure everything is up to date.

7 Likes
  • Item images are now available via the API. This includes just about every possible variation (colors) of the items images as well. That is over 72,000 images!
    • image_url has been added to the item list and item detail APIs. For items with color variations, this one is always the White (228) variation by default.
    • has_colors has changed meaning slightly. has_colors means the item itself has color variations. To get the various color variations, you can take the image URL and replace the item_id for the item in the URL with {item_id}_{color_id} to get that color variation. Example: For Gleam: https://cdn.boundlexx.app/items/9555.png. To get Black Gleam, replace 9555 with 9555_1: https://cdn.boundlexx.app/items/9555_1.png
    • has_world_colors is a replacement for the old has_colors. It means the item falls in one of the 45 that can vary from world to world and gets posted in forum/Discord templates.
  • Item images are now used in Forum templates. See https://forum.playboundless.com/c/creations/exoworlds/31 for an example.

Note: Some items are known to have missing images (like liquids, foliage, grass, mould, non-meta metamorphic variants of ore seams, etc.). I hope to get these in the nearish future whenever the upstream rendering tool is able to handle them.

Huge thanks to @willcrutchley and his Icon Renderer to make this possible.

10 Likes

Absolutely awesome, thanks to both you and @willcrutchley for your work on this for the community!

1 Like
  • Fixes rendering for Lucent Seams, the Stone Slingbow and the Atlas (other items with missing images are still to be fixed)
  • Adds /metals/ endpoint for string locations of different types of metals
  • Adds has_metal_variants to Items list and items detail. This works the same exact way as has_colors except for items that get their tint from a metal. Images will be {item_id}_{metal_id} where metal ID comes from the new /metals/ endpoint
  • Adds thumbnail images for all items, worlds and emojis (including all item image variants). All thumbnails are 50x50 instead of their original size (massive decrease for item images). To use a thumbnail image, replace .png with _small.png from the image_url that is returned.
  • The color for the default image for most items (all except crops that produce items in all colors like goo, season items, Sentinel Crests, etc) have been given more better default based on the default colors provided by the game itself.

The Boundlexx Backend is now Open Source

I finally got around to migrating the docker images to GHCR from docker.pkg.github.com as well as moving all of the code that directly interacts with the Boundless game servers out of the main repo allowing me to finally make the majority of the project open source. Now you get to see my horrible code and contribute, if you really want to. You will not actually be able to populate your database with data from game servers (actual Worlds, World Block Colors, shop data, etc.), but everything should “work” for the most part. More docs + fixtures (test data) to be added in the future!

7 Likes
  • Adds last_updated field to worlds. Also adds accompanying ISO range filter with it. So you can do last_updated_after=2021-04-21 to get all worlds updated after today. Timestamps must be in ISO 8601 format. Worlds are “updated” when any data on them (end date for example) changes or their block colors change. It will not update when there is a new world poll or shops have updated on the world (otherwise all worlds would be constantly updated).

Also, thumbnail generation is now complete.

1 Like