S&box Wiki

Revision Difference

Backend_API#529949

<cat>Dev.Backend</cat>⤶ ⤶ All endpoints are on the `https://apix.facepunch.com/api/` domain.⤶ ⤶ # Types⤶ ⤶ NOTE: Nullable types are suffixed with `?`. This API is subject to change and probably⤶ will do so before release.⤶ ⤶ ## PackageType⤶ ⤶ An enum specifying the different package types.⤶ ⤶ Starting at 1:⤶ ⤶ ```⤶ 1. Map⤶ 2. Gamemode⤶ ```⤶ ⤶ ## Find Result⤶ ⤶ This is returned by `/sbox/asset/find` and is used to enumerate search results.⤶ ⤶ |Name |Type |Description |⤶ |---------------|----------------|----------------------------------------------|⤶ | type | `PackageType` | The package types being returned |⤶ | assets | `Package[]` | A list of matching packages |⤶ ⤶ ## Category⤶ ⤶ This is returned by `/sbox/menu/index` and is used to describe a category displayed on the main menu.⤶ ⤶ |Name |Type |Description |⤶ |---------------|-------------|----------------------------------------------|⤶ | title | `string` | This category's title |⤶ | description | `string?` | This category's description |⤶ | packages | `Package[]` | A list of packages within this category |⤶ ⤶ ## Asset⤶ ⤶ This is returned by `/sbox/asset/get`.⤶ ⤶ |Name |Type |Description |⤶ |---------------|-----------|----------------------------------------------|⤶ | asset | `Package` | This asset's package info |⤶ ⤶ ## Package⤶ ⤶ These are used in various places and are used to describe assets like gamemodes and maps.⤶ ⤶ |Name |Type |Description |⤶ |---------------|---------------|-------------------------------------------------------|⤶ | org | `Org` | The organisation owning this package |⤶ | ident | `string` | This package's identifier |⤶ | title | `string` | This package's human-friendly name |⤶ | summary | `string?` | A short description for this package |⤶ | thumb | `string?` | A URL to this package's thumbnail |⤶ | packageType | `PackageType` | The package's type |⤶ | updated | `long` | UNIX timestamp for when the package was laste updated |⤶ | description | `string?` | A longer description for this package |⤶ | background | `string?` | A URL to this package's in-game background |⤶ | downloadUrl | `string?` | A download URL for this package |⤶ ⤶ ## Org⤶ ⤶ These are used in various places and are used to describe organisations.⤶ ⤶ |Name |Type |Description |⤶ |---------------|----------|----------------------------------------------|⤶ | ident | `string` | This organisation's identifier |⤶ | title | `string` | This organisation's human-friendly name |⤶ | description | `string?`| This organisation's description |⤶ | thumb | `string?`| A URL to the organisation's chosen thumbnail |⤶ | socialTwitter | `string?`| A URL to the organisation's Twitter account |⤶ | socialWeb | `string?`| A URL to the organisation's website |⤶ ⤶ # Endpoints⤶ ⤶ ## /sbox/menu/index⤶ ⤶ ### Params⤶ ⤶ None⤶ ⤶ ### Returns⤶ ⤶ A list of `Category` objects.⤶ ⤶ ---⤶ ⤶ ## /sbox/asset/get⤶ ⤶ ### Params⤶ ⤶ `id`: An identifier (`org`.`package`) for the asset you wish to retrive info about.⤶ ⤶ ### Returns⤶ ⤶ An `Asset`⤶ ⤶ ---⤶ ⤶ ## /sbox/asset/find⤶ ⤶ ### Params⤶ ⤶ `type`: `map` or `gamemode`.⤶ ⤶ ### Returns⤶ ⤶ A `FindResult` object.⤶ ⤶ # Other⤶ ⤶ ## Finding an Org⤶ ⤶ There's no known endpoint for organisations. This is the closest you can get:⤶ ⤶ 1. Visit several endpoints (`/asset/find?type={map}|{gamemode}`, `/menu/index`) and collect a list of orgs with their gamemode idents⤶ 2. Search that list for an org that matches the ident we're looking for⤶ 3. Visit `/asset/get?id={org}.{ident}`⤶ 4. Get the title & description for the org from this