This API is prone to changes at any time - and therefore this guide might go out of date. If something doesn't line up, it probably means the API was changed and that this page needs updating.
This page is an analysis of the API used for the dev site and the in-game menus; please be aware that this may change at any time and that none of this information is official. All endpoints are on the https://sap.facepunch.com/
domain.
Endpoints
Account endpoints | Asset endpoints | Session endpoints | Other endpoints
Account endpoints
POST /account/activity
Params
Returns
Example Request
Example Response
POST /account/login
Params
Returns
Example Request
Example Response
POST /account/services
Params
Returns
Example Request
Example Response
Asset endpoints
GET /package/get/1/{ident}
Params
ident
: An identifier (org
.package
) for the asset you wish to retrieve info about.
Returns
An Asset
Example Request
/package/get/1/facepunch.construct
Example Response
{
"Package": {
"Org": {
"Ident": "facepunch",
"Title": "Facepunch",
"Description": "Facepunch Studios Ltd is a British video game developer and publisher headquartered in Walsall, England, founded in June 2004",
"Thumb": "https://files.facepunch.com/sbox/org/facepunch/logo.1.png",
"Twitter": "",
"WebUrl": ""
},
"Ident": "construct",
"Title": "Construct",
"Summary": "A simple construct map",
"Description": "This is the default map. It both has purpose and no purpose.",
"Thumb": "https://files.facepunch.com/sbox/asset/facepunch.construct/logo.50b9f9e2.png",
"Type": "map",
"Updated": "2023-03-28T08:03:57.2+00:00",
"Created": "2021-05-10T10:21:44.2+00:00",
"UsageStats": {
"Total": {
"Users": 5546,
"Seconds": 30249987
},
"Month": {
"Users": 1185,
"Seconds": 3324817
},
"Week": {
"Users": 365,
"Seconds": 570307
},
"Day": {
"Users": 62,
"Seconds": 47322
},
"UsersNow": 3,
"DailyUsers": [
103,
128,
143,
118,
136,
132,
92,
97,
80,
85,
72,
72,
99,
75,
73,
81,
98,
95,
91,
71,
58,
64,
85,
94,
84,
101,
70,
72,
65,
63,
80,
75,
99,
86,
77,
74,
58,
62,
82,
71,
72,
63,
50,
60,
70,
70,
83,
79,
75,
75,
67,
59,
60,
67,
67,
56,
64,
82,
73,
52,
29
],
"DailySeconds": [
43020,
74270,
119172,
153739,
93638,
136649,
125591,
171976,
107810,
137312,
108385,
124127,
101474,
88822,
103938,
142572,
128251,
143376,
124266,
63146,
96358,
140883,
110315,
189932,
108865,
141529,
99260,
104644,
91810,
160546,
137141,
133960,
116637,
175346,
254561,
172310,
77623,
182926,
121872,
71912,
57547,
61231,
51156,
76191,
113757,
105390,
162249,
45430,
144127,
131866,
157812,
131887,
95682,
91091,
113140,
56567,
78352,
81510,
117133,
44145,
15727
],
"Trend": -1.3204330205917358
},
"Tags": [
""
],
"Favourited": 73,
"VotesUp": 104,
"VotesDown": 6,
"Version": {
"Id": 16022,
"Changes": "Changes on 28-Mar-23",
"FileCount": 1983,
"TotalSize": 3025575678,
"Hash": 4984881807854345000,
"ManifestUrl": "https://files.facepunch.com/sbox/manifest/facepunch/construct/ef59e41d5bfc0494b7904c41bb094ab3.json",
"Created": "2023-03-28T08:03:56.7+00:00",
"EngineVersion": 10,
"Meta": "{\"Summary\":\"A simple construct map\",\"Description\":\"This is the default map. It both has purpose and no purpose.\",\"Public\":true,\"MapAddons\":[]}",
"AssetVersionId": 16022
},
"Source": "https://github.com/facepunch/facepunch.construct",
"Public": true,
"Archive": false,
"ApiVersion": 0,
"Screenshots": [
{
"Created": "2022-08-01T15:00:57.2Z",
"Width": 1920,
"Height": 1080,
"Url": "https://files.facepunch.com/sbox/asset/facepunch.construct/screenshot.51112a7cdf4aa917.png",
"Thumb": "https://files.facepunch.com/cdn-cgi/image/fit=cover,width={width},height={height}/sbox/asset/facepunch.construct/screenshot.51112a7cdf4aa917.png",
"IsLoadingScreen": false
},
{
"Created": "2022-08-01T15:01:16.3Z",
"Width": 1920,
"Height": 1080,
"Url": "https://files.facepunch.com/sbox/asset/facepunch.construct/screenshot.eab83032471281e5.png",
"Thumb": "https://files.facepunch.com/cdn-cgi/image/fit=cover,width={width},height={height}/sbox/asset/facepunch.construct/screenshot.eab83032471281e5.png",
"IsLoadingScreen": false
},
{
"Created": "2022-08-01T15:01:07.6Z",
"Width": 1920,
"Height": 1080,
"Url": "https://files.facepunch.com/sbox/asset/facepunch.construct/screenshot.b3a7a2fe54a40231.png",
"Thumb": "https://files.facepunch.com/cdn-cgi/image/fit=cover,width={width},height={height}/sbox/asset/facepunch.construct/screenshot.b3a7a2fe54a40231.png",
"IsLoadingScreen": true
}
],
"PackageType": 1,
"PackageReferences": [],
"EditorReferences": [],
"Interaction": {
"Favourite": false,
"FavouriteCreated": null,
"Rating": null,
"RatingCreated": null,
"Used": false,
"FirstUsed": null,
"LastUsed": null,
"Sessions": 0,
"Seconds": 0
}
},
"Milliseconds": 25.1893
}
GET /asset/list
Params
type
: map
, gamemode
, tool
, content
, model
, addon
.
order
: trending
, popular
, newest
, live
. Defaults to trending
.
search
: Any search query.
take
: Number of assets to return.
skip
: Offsets the number of assets to take.
category
(An Index Value starting at 1):
Index |
Category |
1 |
SandBox |
2 |
Tech Demo/Expermental |
3 |
Sports |
4 |
Shooting |
5 |
Parkour |
6 |
Social |
7 |
Meme |
8 |
Roleplay |
9 |
Racing |
10 |
Mystery |
11 |
Survival |
12 |
Animals |
13 |
Food |
14 |
Strategy |
15 |
Space |
16 |
Fighting |
17 |
Retro |
18 |
Music |
19 |
Art |
20 |
Tycoon |
21 |
Streamer |
Returns
A list of Package
s.
Example Request
/asset/list?type=map&order=trending&search=Construct
Example Response
[
{
"Org": {
"Ident": "facepunch",
"Title": "Facepunch",
"Thumb": "https://files.facepunch.com/sbox/org/facepunch/logo.1.png"
},
"Ident": "construct",
"Title": "Construct",
"Summary": "A simple construct map",
"Description": "This is the default map. It both has purpose and no purpose.",
"Thumb": "https://files.facepunch.com/sbox/org/facepunch/construct/thumb.2f5f6e0a.jpg",
"PackageType": 1,
"Updated": "2022-03-31T10:43:21.7+00:00",
"Created": "2021-05-10T10:21:44.2+00:00",
"UsersNow": 0,
"UsersDay": 123,
"UsersMonth": 1366,
"UsersTotal": 7812,
"Tags": [],
"CategoryId": 0,
"SubCategoryId": 0,
"Favourited": 0,
"VotesUp": 0,
"VotesDown": 0,
"Source": null,
"Public": true
},
{
"Org": {
"Ident": "gmodn",
"Title": "Ian",
"Thumb": "https://files.facepunch.com/sbox/org/gmodn/logo.8483162e.png"
},
"Ident": "testmap",
"Title": "Ian's Construct",
"Summary": "A map i used to kinda get used to mapping again. Not a good map.",
"Description": "A map i used to kinda get used to mapping again. Not a good map.\r\n\r\nUpdate Log\r\n\r\n1/9/2022\r\nAdded Map\r\nAdded shatterglass where possible\r\nadjusted lighting\r\nmade the original dark/light room building from construct rp friendly \r\nAdded Warehouse Overhang Lights\r\n\r\n2/21/2022\r\nAdded world maps\r\nAdded Navmesh\r\nAdded Map overview",
"Thumb": "",
"PackageType": 1,
"Updated": "2022-03-26T05:44:02.6+00:00",
"Created": "2022-01-09T13:03:07+00:00",
"UsersNow": 0,
"UsersDay": 0,
"UsersMonth": 3,
"UsersTotal": 15,
"Tags": [],
"CategoryId": 0,
"SubCategoryId": 0,
"Favourited": 0,
"VotesUp": 0,
"VotesDown": 0,
"Source": null,
"Public": true
},
]
GET /asset/categories
Params
Returns
A list of categories and tags.
Example Request
/asset/categories
Example Response
{
"Categories": [
{
"Id": 0,
"title": "None",
"icon": "sentiment_dissatisfied",
"description": null,
"count": 7
},
{
"Id": 18,
"title": "Music",
"icon": "music_note",
"description": null,
"count": 1
},
{
"Id": 19,
"title": "Art",
"icon": "palette",
"description": null,
"count": 1
},
[...]
],
"Tags": [
{
"Count": 39,
"Key": "multiplayer"
},
{
"Count": 7,
"Key": "has:vsnd"
},
{
"Count": 8,
"Key": "coop"
},
[...]
]
}
POST /asset/{ident}/favourite
Params
ident
: An identifier (org
.package
) for the asset you wish to retrieve info about.
Returns
Example Request
Example Response
POST /asset/upload
Params
Returns
Example Request
Example Response
POST /asset/manifest
Params
Returns
Example Request
Example Response
POST /asset/{ident}/rate
Params
ident
: An identifier (org
.package
) for the asset you wish to retrieve info about.
Returns
Example Request
Example Response
POST /asset/{ident}/update
Params
ident
: An identifier (org
.package
) for the asset you wish to retrieve info about.
Returns
Example Request
Example Response
Session endpoints
POST /session/result
Params
Returns
Example Request
Example Response
POST /session/score
Params
Returns
Example Request
Example Response
Other endpoints
GET /status
Returns
Staus information
Example Request
/status
Example Response
{
"Status": "OK",
"Version": 1,
"Assets": 3288,
"Orgs": 3987,
"Files": 99721,
"FileSize": "337GB"
}