= Workshop API
== Basic
a simple API that allows you to receive information about addons, monitor their updates and get statistics without parsing the site with bots:
1. Get information about the addon:
`GET "/workshop/591AF5BDA9F7CE8B"`
or
`GET "/workshop?id=591AF5BDA9F7CE8B"`
Results in:
```
lang=json
{
// Item description
"name": "CAPTURE & HOLD",
"author": "Bohemia Interactive",
"summary": "Join teams of players and the fight for Everon in Capture & Hold, an official multiplayer game mode.",
"description": "Engage in close-quarters combat, secure key objectives, and hold your ground against opponents in this collection of fast-paced, team versus team scenarios. Created by Bohemia Interactive, Capture & Hold is the ideal addon for those players that enjoy quick and decisive battles.",
"changelog": "", // Changelog for current version
"preview": "previewimgaeurl"
"images": [
"image1url",
"image2url",
"image3url"
],
// Item stats
"rating": 97,
"version": "1.0.5",
"gameVersion": "1.0.0.54",
"size": 42446356, // in bytes
"sunscribers": 61230,
"downloads": 125414,
"created": "10.05.2022",
"updated": "16.11.2023",
"license": "APL",
// Versions history
"versions": [
"0.6.3",
"0.6.4",
// ...
"1.0.4",
"1.0.5"
],
// Scenarios
"scenarios": [
"3F2E005F43DBD2F8",
"F1A1BEA67132113E",
// ...
]
}
```
2. Get information about the addon with specific version:
`GET "/workshop/591AF5BDA9F7CE8B?version=1.0.0"`
Results in same as above, but for specified version.
3. Get information about the scenario:
`GET "/workshop/591AF5BDA9F7CE8B?scenario=3F2E005F43DBD2F8"`
`GET "/workshop/591AF5BDA9F7CE8B?version=1.0.0&scenario=3F2E005F43DBD2F8"`
Results in:
```
lang=json
{
"name": "Capture & Hold: The Briars",
"gamemode": "Capture & Hold",
"players": 64,
"description": "A US fuel depot has been left undefended, south-east of Lamentin, following the Soviet attack on Morton. If it's captured, it might prevent American troops from evacuating the island.",
"preview": "previewimageurl",
"path": "{3F2E005F43DBD2F8}Missions/CAH_Briars_Coast.conf"
}
```
== Advanced
In the future, it would be a good to add various additional functions to the API:
1. If the addon has a localisation, then you can specify the language in the request parameters to get information about the addon in a specific language:
`GET "/workshop/591AF5BDA9F7CE8B?lang=ru_Ru"`
//The following can be implemented through a console program like `steamcmd`, which will be supplied with the official tools.//
2. Download addons directly (for community-made tools):
`GET "workshop/download?id=591AF5BDA9F7CE8B"`
`GET "workshop/download?id=591AF5BDA9F7CE8B&version=1.0.0"`
Or for console version:
```
lang=batch
reforgerworkshopcmd download 591AF5BDA9F7CE8B --folder /path/to/addon
reforgerworkshopcmd download 591AF5BDA9F7CE8B --version 1.0.0 --folder /path/to/addon
```
3. Managing workshop items (for community-made tools):
- Creating (returns id): `POST "/workshop?key=XXXXXX"`.
- Updating: `PATCH "/workshop?key=XXXXXX&id=591AF5BDA9F7CE8B"`.
- Deleting: `DELETE "/workshop?key=XXXXXX&id=591AF5BDA9F7CE8B"`.
- Key XXXXXX can be obtained through some registration form on the site.
Or for console version:
```
lang=batch"license": "APL",
"tags": [
"action",
"capture",
// ...
],
// Item stats
"rating": 97,
"version": "1.0.5",
"gameVersion": "1.0.0.54",
"size": 42446356, // in bytes
"sunscribers": 61230,
"downloads": 125414,
"created": "10.05.2022",
"updated": "16.11.2023",
// Versions history
"versions": [
"0.6.3",
"0.6.4",
// ...
"1.0.4",
"1.0.5"
],
// Scenarios
"scenarios": [
"3F2E005F43DBD2F8",
"F1A1BEA67132113E",
// ...
]
}
```
2. Get information about the addon with specific version:
`GET "/workshop/591AF5BDA9F7CE8B?version=1.0.0"`
Results in same as above, but for specified version.
3. Get information about the scenario:
`GET "/workshop/591AF5BDA9F7CE8B?scenario=3F2E005F43DBD2F8"`
`GET "/workshop/591AF5BDA9F7CE8B?version=1.0.0&scenario=3F2E005F43DBD2F8"`
Results in:
```
lang=json
{
"name": "Capture & Hold: The Briars",
"gamemode": "Capture & Hold",
"players": 64,
"description": "A US fuel depot has been left undefended, south-east of Lamentin, following the Soviet attack on Morton. If it's captured, it might prevent American troops from evacuating the island.",
"preview": "previewimageurl",
"path": "{3F2E005F43DBD2F8}Missions/CAH_Briars_Coast.conf"
}
```
== Advanced
In the future, it would be a good to add various additional functions to the API:
1. If the addon has a localisation, then you can specify the language in the request parameters to get information about the addon in a specific language:
`GET "/workshop/591AF5BDA9F7CE8B?lang=ru_Ru"`
//The following can be implemented through a console program like `steamcmd`, which will be supplied with the official tools.//
2. Download addons directly (for community-made tools):
`GET "workshop/download?id=591AF5BDA9F7CE8B"`
`GET "workshop/download?id=591AF5BDA9F7CE8B&version=1.0.0"`
Or for console version:
```
lang=bash
reforgerworkshopcmd download 591AF5BDA9F7CE8B --folder /path/to/addon
reforgerworkshopcmd download 591AF5BDA9F7CE8B --version 1.0.0 --folder /path/to/addon
```
3. Managing workshop items (for community-made tools):
- Creating (returns id): `POST "/workshop?key=XXXXXX"`.
- Updating: `PATCH "/workshop?key=XXXXXX&id=591AF5BDA9F7CE8B"`.
- Deleting: `DELETE "/workshop?key=XXXXXX&id=591AF5BDA9F7CE8B"`.
- Key XXXXXX can be obtained through some registration form on the site.
Or for console version:
```
lang=bash
reforgerworkshopcmd upload --folder /path/to/addon
reforgerworkshopcmd update 591AF5BDA9F7CE8B --folder /path/to/addon
reforgerworkshopcmd delete 591AF5BDA9F7CE8B
```