The Engram Object

Every item that Beacon knows about can be queried. Engrams can be added to mods using the API.

The endpoint is https://api.usebeacon.app/v1/engram.php

Engram Structure

{
  "path": "/Game/Mods/ExampleMod/MyEngram.MyEngram"
  "class": "Prefix_MyEngram_C",
  "label": "My Engram",
  "environments": [
    "Island",
    "Scorched"
  ],
  "can_blueprint": true,
  "spawn": "cheat giveitem \"Blueprint'/Game/Mods/ExampleMod/MyEngram.MyEngram'\" 1 0 false",
  "uid": "cfd291d28fa367397fa0273f07f1c46e",
  "resource_url": "https://api.usebeacon.app/v1/engram.php/cfd291d28fa367397fa0273f07f1c46e",
  "mod_id": 123456,
  "mod_name": "Example Mod"
}
Key Explanation
path The blueprint path for the engram.
class The class string. Warning: this value may not be unique.
label Human-readable/in-game name of the engram
environments Array of strings of the supported environments. Current allowed values are Island, Scorched, Center, Ragnarok, and Abberation.
can_blueprint If this engram represents a resource, like wood or stone, that cannot be blueprinted, this value should be false. Craftable items, such as weapons and armor, should set this to true.
spawn The admin code to summon the item
uid Unique ID of this engram. This is the MD5 of the lowercase version of the path.
resource_url API URL of this engram
mod_id If this engram belongs to a mod, the id will be listed here. This value may be null
mod_name If this engram belongs to a mod, the name will be listed here. This value may be null

GET

To list all engrams, perform a GET request directly to the endpoint:

GET /beacon/api/engram.php HTTP/1.1
Host: usebeacon.app

HTTP/1.1 200 OK
Content-Type: application/json

[
  { engram structure },
  { engram structure }
]

This also supports a mod_id parameter to limit the engram list to only specific mods. The value of this parameter must be one or more comma-separated Steam mod ids.

GET /beacon/api/engram.php?mod_id=123456,654321 HTTP/1.1
Host: usebeacon.app

HTTP/1.1 200 OK
Content-Type: application/json
[
  { engram structure },
  { engram structure }
]

Perform a GET query against the resource_url value to get the structure for only that engram:

GET /beacon/api/engram.php/cfd291d28fa367397fa0273f07f1c46e HTTP/1.1
Host: usebeacon.app

HTTP/1.1 200 OK
Content-Type: application/json

{ engram structure }

Or specify multiple engrams by using a comma-separated list:

GET /beacon/api/engram.php/cfd291d28fa367397fa0273f07f1c46e,45c5cbac22ecac1e95792b36f516be71 HTTP/1.1
Host: usebeacon.app

HTTP/1.1 200 OK
Content-Type: application/json
[
  { engram structure },
  { engram structure }
]

It is also possible to use class strings for a nicer url. However, if there are multiple matches, an array of results will be returned:

GET /beacon/api/engram.php/Prefix_MyEngram_C HTTP/1.1
Host: usebeacon.app

HTTP/1.1 200 OK
Content-Type: application/json

{ engram structure }

POST

Used for adding or updating engrams. Requires authentication. Allows partial structures. Required keys are path, label, mod_id, availability and can_blueprint. Other keys are allowed, but will be ignored. My post an array of structures or a single structure.

A 200 status will be returned on success.

POST /beacon/api/engram.php HTTP/1.1
Host: usebeacon.app
Authorization: Basic QTcwRjNENjAtQTI4MS00QzQ1LTgwQTAtQUQ2OUI3MzhENTY4OjM0M0IzODYyRTY5M0RFNDRDNThCODA2NEVFMkVBOUZFMzA1QTY3QTk0MkMxRUNCQUQzMkQ0QzFFRDMwRjhCNTg3Mzg1NDM5QTZENzlFMkQwOEZGOEI3REJBQTA3MDI3MjM1RjEzQTE1NzA2ODUwMzEyMTA0MDRDM0RDM0M4QTY2NjJGQ0UwRkZCRjBENDM2QTMyMzU3Mjc5QzNBODBCQTQwOERGQTc4NzM3RTIwMTU0MjQ3MDMwNDI2QTIyNDI1RTY3MEU4RjZGQTA4MzFFRjM5RjY0NjczQTM2Nzg3RDgyNjc2OENEMkRBMDI0OTcxNUNFNDIxQjE1QkNGMjBFMEQ1QjI4M0E3MTZDRjIxNkY5MTM1QzEzMUUwRjM0QkQwNEQ5QkFFMTA5MDIzQzgzQkE2ODBERTQyMzA2MEFFMzc2RjQ0OEIxOUMyQkFDRTM4MDI0MEZBQzRBMzEzRTRDRDg3MTA2NjFGMUQyQUY4MTBDNjA2Q0IxMDBEQjhCRTk3REFFNDU3NERDMjNDNzYwQzFCREUwNDg1OEUzMUVEOUEwNzlDRjU4RkZFRjI2QjA4NkI3OEZEQjkzMzVDNzBBODM0RkUzQTk1RUUwNUQyNkUxNjY0MEFBODU5RDFBRkNDMTNBNDM3RDFBQ0Y0MDgxOERGQTZDQzM2RjdCMDVFNzFE
Content-Type: application/json

{"path":"/Game/Mods/ExampleMod/MyEngram.MyEngram","label":"My Engram","environments":["Island","Scorched"],"can_blueprint": true,"mod_id": 123456}

HTTP/1.1 200 OK

DELETE

Deleting an engram completely removes it from the database. It is possible to the engram to be registered to a different mod after deletion.

Normal usage of this method is to issue an authenticated DELETE request to the resource_url key of the engram structure. It is possible to delete multiple engrams by separating the class strings with commas.

DELETE /beacon/api/engram.php/cfd291d28fa367397fa0273f07f1c46e,45c5cbac22ecac1e95792b36f516be71 HTTP/1.1
Host: usebeacon.app
Authorization: Basic QTcwRjNENjAtQTI4MS00QzQ1LTgwQTAtQUQ2OUI3MzhENTY4OjRCMjRBODIyQzAxQUZFRjlBNDY0MDg5RDI2MDU0NzZEQTMyOEM5QkMxMzk2QUU3QkFFQ0RBREQ3QjNGNkUwN0I2MTBEMzM3MUQ1RDRCN0QxMkNGRjgwMjUyNDI5RUZEREU0MTQ3OUFGMDMwQUE1MzVCQzZEMEQ1QzQ5OTY4RDc2Mzk2OTRDQzE3N0Q0MTYxNTk4QTk3MTI0OTgyRUE0RkI4MzVGRTg0MTQ2MjZDRDNBQzc2MkExQUIyNTU2MzVEM0JCNkJGQUIyRjY4MTVEQ0VCQjQxNUEwMDdCRUVGMTJCOTRCRjhGQzAyN0JBNERGQTVFQTNEODAzN0Q2MDY0RjlCQjZGNjk5MjcyQ0VFNjFCNzlGN0UyQUIwOEQwNDk5N0NBRjcxQjE2NEFBRjhDMjI4MjgyRjYxNTVENzdBMDE3QTE2NDc0MjAxOEY4MDkwNTRDNzQ3RTRENjJDODk4NDU0MUJCMUIxOTcwNzIxMTg0NDRDNEEzRjFDQjg0MzhEMjYxNDUxN0E0QTFDMzkyMjA3N0EwQzBDMUQ3Nzk3MUNGODI2RjdCMEU1REE5NDBCMUE0NEIzNUFDRDVDOUFCMDAxM0IzMTIyMjIyNzA1QzIyMjM5NjdCRUZFNUVFODI0NzdGMTNBRDExM0UzQUMzMjFBMTUyRDkwOTM2OUZFMUEw

HTTP/1.1 200 OK

To delete lots of engrams at the same time, send the comma-separated list of classes as the body of the DELETE request with a text/plain Content-Type. This option is allowed even if deleting only a single engram.

DELETE /beacon/api/engram.php HTTP/1.1
Host: usebeacon.app
Authorization: Basic QTcwRjNENjAtQTI4MS00QzQ1LTgwQTAtQUQ2OUI3MzhENTY4OkNDQjg3OUNGN0UxRThERUU4QThBMjAzRjM2OUE0Nzk5QjU5Q0Q0MUNERUE1RTRCODJDQ0VBMzhBMENCOTM0QjcxNzE0ODZFNDgwODc1QTg1MjExMTExMDlFNDY5M0NCQTRCMTIwMTU5MkRFMDJGMzRBODBBOUE3ODc2QTkyOERCNDQ5RERCRDI5RkJENTM2ODdGQUE3RUQ1QkRCRkJBQUZFRUQzMkNFRTJBREQ0NEU1QzRBQTdERjIyNkY3RDk4QTEyQkMxNkYxNTQ1RjhEM0QyOUJCQkI2NEUwNkFFNTYxQjUyNTBCREIxNEE0N0E3RkY1OTA4RUM0OERCRDZBNjU2NDlFMjZFNTMxREIxRjdGMzY4RTIyRjdEQTIyNzYzOEMyNzRCNkFBNTNDM0UwMzkzNjRBRDc0NjUxNzYxMDhGNUJCMDU5QTZEQzlBMDc4Mzc4RkUxOTVENDEzNEU0NTQ4Rjg3NzEyNkMwN0EyNkQ1NTNGOTc3MzE0QzNENjQyMDUyQUJFMjhCNkREQTA0NjJFNkZEQ0EyOTc2MzM5NEI2Q0NBMTJCNTIzRTBGNkRDRTE0QzFGRkFBMDYxNjYyQzNCNjNERTQwMTA2OTk5NzgzMDUzNjI5ODIyMjk4MEZCM0VCRTc2REVBRUZGQTIzQjY1NDM2OUIwOTM0RUQ0RjlE
Content-Type: text/plain

cfd291d28fa367397fa0273f07f1c46e,45c5cbac22ecac1e95792b36f516be71

HTTP/1.1 200 0K