Reforger Mods API V2
V2 is the recommended API for new clients. It provides direct Reforger server discovery data from the ReforgerMods index, player history, reported server mods, typed Workshop metadata, and cleaner response schemas.
https://api.reforgermods.net/v2All V2 resources use plural routes. Use /v2/servers for server discovery, /v2/servers/{id} for server details, /v2/mods?search=radio for Workshop search, and /v2/mods/{id} for mod detail.
/v2/health
Returns process health only. It does not request Workshop data.
{
"status": "success",
"data": { "code": 200, "alive": true }
}/v2/mods
Returns V2 mod previews. Pagination, search, sorting, and tag filters are query parameters on this endpoint.
| Parameter | Description |
|---|---|
page | Optional positive page number. Defaults to 1. |
search | Preferred V2 search text parameter. |
query, q, s | Accepted search aliases for compatibility. |
sort | Optional sort value. Valid values are popularity, most-rated, newest, created, recently-updated, highest-rated, subscribers, version_size, largest, and name. |
tags | Optional Workshop tag filter. Repeat for multiple tags, for example ?tags=SCENARIOS&tags=TERRAIN. |
category | Compatibility alias for a single tags value. New clients should prefer tags. |
curl -H "User-Agent: my-bot/2.0.0" \
"https://api.reforgermods.net/v2/mods?page=2&search=radio&sort=newest"curl -H "User-Agent: my-bot/2.0.0" \
"https://api.reforgermods.net/v2/mods?search=map&tags=SCENARIOS&tags=TERRAIN"{
"status": "success",
"meta": {
"totalPages": 2593,
"currentPage": 2,
"totalMods": 41478,
"shownMods": 16,
"modsIndexStart": 17,
"modsIndexEnd": 32
},
"data": [
{
"id": "5965550F24A0C152",
"name": "Example Mod",
"type": "addon",
"summary": "Short Workshop summary",
"authorId": "author_id",
"author": "Example Author",
"version": "1.2.3",
"versionId": 123,
"gameVersion": "1.7.0.54",
"size": 203434353,
"sizeFormatted": "194 MiB",
"rating": 0.88,
"ratingCount": 9178,
"subscriberCount": 31995,
"createdAt": "2022-05-18T22:02:44Z",
"updatedAt": "2026-07-30T07:10:47Z",
"unlisted": false,
"private": false,
"tags": ["VEHICLES", "WEAPONS"],
"imageUrl": "https://example.com/image.png",
"workshopUrl": "https://reforger.armaplatform.com/workshop/5965550F24A0C152",
"apiUrl": "https://api.reforgermods.net/v2/mods/5965550F24A0C152"
}
],
"links": {
"next": "https://api.reforgermods.net/v2/mods?page=3&search=radio&sort=newest",
"prev": "https://api.reforgermods.net/v2/mods?page=1&search=radio&sort=newest"
}
}The response uses the V2 list response shape with typed V2 mod preview objects.
/v2/mods/{id}
Canonical V2 detail endpoint for one Workshop mod. It uses Workshop asset-detail metadata, includes direct dependencies and scenarios for convenience, keeps version history behind subresource URLs, and exposes machine-native values.
curl -H "User-Agent: my-bot/2.0.0" \
"https://api.reforgermods.net/v2/mods/5965550F24A0C152"{
"status": "success",
"mod": {
"id": "5965550F24A0C152",
"name": "Example Mod",
"type": "addon",
"summary": "Short Workshop summary",
"description": "Long Workshop description",
"authorId": "author_id",
"author": "Example Author",
"version": "1.2.3",
"versionId": 123,
"gameVersion": "1.7.0.54",
"size": 203434353,
"sizeFormatted": "194 MiB",
"rating": 0.88,
"ratingCount": 9178,
"subscriberCount": 31995,
"downloadCount": 1866382,
"createdAt": "2022-05-18T22:02:44Z",
"updatedAt": "2026-07-30T07:10:47Z",
"unlisted": false,
"private": false,
"obsolete": false,
"license": "Custom license",
"tags": ["VEHICLES", "WEAPONS"],
"imageUrl": "https://example.com/image.png",
"previewImages": ["https://example.com/image.png"],
"screenshots": ["https://example.com/screenshot.png"],
"versionCount": 10,
"dependencyCount": 2,
"scenarioCount": 11,
"dependencySize": 8342292061,
"dependencySizeFormatted": "7.77 GiB",
"totalSize": 8545726414,
"totalSizeFormatted": "7.96 GiB",
"dependencies": [
{
"id": "DEP123",
"name": "Dependency Mod",
"version": "1.0.0",
"size": 8342292061,
"sizeFormatted": "7.77 GiB",
"published": true,
"private": false,
"dependencyCount": 0,
"workshopUrl": "https://reforger.armaplatform.com/workshop/DEP123",
"apiUrl": "https://api.reforgermods.net/v2/mods/DEP123"
}
],
"scenarios": [
{
"name": "Conflict - Everon",
"gameId": "{ABC}Missions/Conflict.conf",
"gameMode": "#AR-Scenario_GameMode_Campaign",
"author": "#AR-Author_BI",
"description": "#AR-Campaign_GamemodeDesc",
"playerCount": 64
}
],
"workshopUrl": "https://reforger.armaplatform.com/workshop/5965550F24A0C152",
"apiUrl": "https://api.reforgermods.net/v2/mods/5965550F24A0C152",
"versionsUrl": "https://api.reforgermods.net/v2/mods/5965550F24A0C152/versions",
"dependenciesUrl": "https://api.reforgermods.net/v2/mods/5965550F24A0C152/dependencies",
"scenariosUrl": "https://api.reforgermods.net/v2/mods/5965550F24A0C152/scenarios",
"licenseUrl": "https://api.reforgermods.net/v2/mods/5965550F24A0C152/license"
}
}| Field | Note |
|---|---|
size | Raw byte count for the current Workshop version. |
dependencySize | Raw byte count for known direct dependencies. |
totalSize | size plus known direct dependency bytes. |
dependencies | Direct dependencies for the current mod version. The dedicated /dependencies endpoint returns the same list with dependency totals. |
scenarios | Scenarios included with the mod. The dedicated /scenarios endpoint remains available for clients that want only scenario data. |
versions | Not included in mod detail. Use /versions or /versions/{version} for version history and version-specific changelogs. |
*Formatted | Display-ready IEC values derived from the matching byte fields. |
downloadCount | Omitted when unknown. It is not fabricated as 0. |
blocked, reported | Not exposed in V2. Full license text is only returned by the dedicated /license subresource. |
/v2/mods/{id}/versions
Returns a lightweight version history from Workshop asset-detail metadata. This endpoint does not fetch each historical version, so it is suitable for listing available versions without expensive per-version lookups.
curl "https://api.reforgermods.net/v2/mods/5965550F24A0C152/versions"{
"status": "success",
"data": {
"modId": "5965550F24A0C152",
"count": 10,
"versions": [
{
"version": "1.2.3",
"gameVersion": "1.7.0.54",
"size": 203434353,
"sizeFormatted": "194 MiB",
"approved": true,
"published": true,
"createdAt": "2026-07-30T07:09:00Z",
"updatedAt": "2026-07-30T07:10:47Z",
"scenarioCount": 11,
"dependencyCount": 2,
"apiUrl": "https://api.reforgermods.net/v2/mods/5965550F24A0C152/versions/1.2.3"
}
]
}
}Entries in versions use the mod version object shape, not the V2 mod detail object. Changelog text is available from /v2/mods/{id}/versions/{version} when the Workshop provides it.
/v2/mods/{id}/versions/{version}
Returns richer metadata for one specific mod version. This endpoint uses Workshop version-detail data and can include the author's changelog and version-specific scenarios.
curl "https://api.reforgermods.net/v2/mods/5965550F24A0C152/versions/1.2.3"{
"status": "success",
"data": {
"modId": "5965550F24A0C152",
"version": "1.2.3",
"gameVersion": "1.7.0.54",
"size": 203434353,
"sizeFormatted": "194 MiB",
"approved": true,
"published": true,
"changelog": "[Improved] Tweaked deployment points\n[Fixed] Corrected loadout issue",
"createdAt": "2026-07-30T07:09:00Z",
"updatedAt": "2026-07-30T07:10:47Z",
"scenarioCount": 11,
"dependencyCount": 2,
"scenarios": [
{
"name": "Conflict - Everon",
"gameId": "{ABC}Missions/Conflict.conf",
"gameMode": "#AR-Scenario_GameMode_Campaign",
"author": "#AR-Author_BI",
"description": "#AR-Campaign_GamemodeDesc",
"playerCount": 64
}
],
"apiUrl": "https://api.reforgermods.net/v2/mods/5965550F24A0C152/versions/1.2.3"
}
}size is a raw byte count. Use sizeFormatted when you want a display-ready IEC value.
The version path segment is URL-escaped when requested upstream. Dots are valid in versions. Use normal URL encoding for any other path-significant characters.
/v2/mods/{id}/dependencies
Returns direct dependencies reported for the current mod version. Dependency totals are based on known direct dependency sizes only.
curl "https://api.reforgermods.net/v2/mods/5965550F24A0C152/dependencies"{
"status": "success",
"data": {
"modId": "5965550F24A0C152",
"count": 2,
"size": 8342292061,
"sizeFormatted": "7.77 GiB",
"totalSizeWithMod": 8545726414,
"totalSizeWithModFormatted": "7.96 GiB",
"dependencies": [ { "...": "dependency objects" } ]
}
}size and totalSizeWithMod are raw byte counts. Use the matching *Formatted fields for display text.
If an upstream dependency is missing size data, known totals remain accurate and unknownSizeCount may be included.
/v2/mods/{id}/scenarios
Returns scenarios included with the Workshop mod. Localization keys such as #AR-* are returned as-is.
curl "https://api.reforgermods.net/v2/mods/5965550F24A0C152/scenarios"{
"status": "success",
"data": {
"modId": "5965550F24A0C152",
"count": 11,
"scenarios": [ { "...": "scenario objects" } ]
}
}/v2/mods/{id}/license
Returns the license label and full license text when the Workshop provides it. Normal mod detail intentionally only includes the short license label.
curl "https://api.reforgermods.net/v2/mods/5965550F24A0C152/license"{
"status": "success",
"data": {
"modId": "5965550F24A0C152",
"license": "Custom license",
"licenseText": "Full license text…"
}
}/v2/servers
Returns a paginated Arma Reforger server snapshot from the ReforgerMods server index. Discovery data is retrieved from the backend used by Arma Reforger's server browser, then normalized for web and API clients.
| Parameter | Description |
|---|---|
page, perPage | Optional pagination. perPage is capped at 100. |
search | Case-insensitive search across server and scenario names. |
sort | players, name, newest, or lastSeen. |
region, platform | Filter by ping site or supported client platform. Friendly platforms are pc, xbox, and psn. |
official, hasMods, includeOffline | Boolean filters for official servers, modded servers, and offline entries. |
battleye, locked | Boolean filters for BattlEye-protected servers and password-protected servers. |
curl "https://api.reforgermods.net/v2/servers?sort=players&hasMods=true"{
"status": "success",
"dataset": {
"warming": false,
"stale": false,
"snapshotAgeSeconds": 18,
"lastCollectionAt": "2026-08-28T18:42:10Z",
"serverCount": 5300,
"onlineServerCount": 2400,
"offlineServerCount": 2900
},
"meta": {
"totalPages": 53,
"currentPage": 1,
"totalServers": 5300,
"shownServers": 100,
"serverIndexStart": 1,
"serverIndexEnd": 100
},
"data": [ { "...": "server preview objects" } ],
"links": {
"next": "https://api.reforgermods.net/v2/servers?page=2&sort=players&hasMods=true"
}
}/v2/servers/{id}
Returns one server with live status fields, scenario data, queue size, supported clients, reported mods, and an activity summary when history has been collected.
curl "https://api.reforgermods.net/v2/servers/{room_id}"{
"status": "success",
"dataset": {
"warming": false,
"stale": false,
"snapshotAgeSeconds": 18,
"lastCollectionAt": "2026-08-28T18:42:10Z",
"serverCount": 5300,
"onlineServerCount": 2400,
"offlineServerCount": 2900
},
"server": {
"id": "8d7f1b9c-6a28-42a1-8d3f-25f2f7c3f431",
"name": "Example Conflict Server",
"scenarioId": "{ECC61978EDCC2B5A}Missions/23_Campaign.conf",
"scenarioName": "Conflict - Everon",
"scenarioImageUrl": "https://example.com/scenario.jpg",
"scenarioImageWidth": 1920,
"scenarioImageHeight": 1080,
"scenarioThumbnailUrl": "https://example.com/scenario-thumb.jpg",
"scenarioThumbnailWidth": 480,
"scenarioThumbnailHeight": 270,
"gameVersion": "1.7.0.54",
"official": false,
"passwordProtected": false,
"battlEye": true,
"crossPlay": true,
"players": 48,
"maxPlayers": 64,
"queue": 3,
"region": "frankfurt",
"platform": "LINUX",
"platforms": ["pc", "xbox", "psn"],
"modCount": 18,
"scenarioModId": "5965550F24A0C152",
"online": true,
"firstSeen": "2026-08-11T03:14:20Z",
"lastSeen": "2026-08-28T18:42:10Z",
"present": true,
"hostType": "CommunityDs",
"joinable": true,
"visible": true,
"host": "203.0.113.42",
"port": 2001,
"directJoinCode": "ABC123",
"supportedClients": ["PLATFORM_PC", "PLATFORM_XBL", "PLATFORM_PSN"],
"hostedScenarioModId": "5965550F24A0C152",
"fps": 60,
"lastChanged": "2026-08-28T18:36:02Z",
"activity": {
"peak24h": 64,
"avg24h": 41,
"median24h": 44,
"low24h": 12,
"peak7d": 64,
"samples24h": 288,
"samples7d": 168,
"trackingSince": "2026-08-11T03:14:20Z"
},
"modSummary": {
"count": 18,
"knownSize": 0,
"unresolvedCount": 0
},
"mods": [
{
"id": "5965550F24A0C152",
"name": "Example Mod",
"version": "1.2.3",
"sizeKnown": false,
"apiModURL": "https://api.reforgermods.net/v2/mods/5965550F24A0C152",
"modURL": "https://api.reforgermods.net/mods/5965550F24A0C152/",
"dependentCount": 0
},
{
"id": "5A1B2C3D4E5F6789",
"name": "Example Dependency",
"version": "4.5.6",
"sizeKnown": false,
"apiModURL": "https://api.reforgermods.net/v2/mods/5A1B2C3D4E5F6789",
"modURL": "https://api.reforgermods.net/mods/5A1B2C3D4E5F6789/",
"dependentCount": 0
}
]
}
}The detail response includes the reported mod list. Use /v2/servers/{id}/history for chart-friendly activity buckets.
/v2/servers/{id}/mods
Returns the server-to-Workshop mod relationship as reported by the server. By default ReforgerMods also attempts exact-version size enrichment; use ?sizes=false to skip that best-effort lookup.
curl "https://api.reforgermods.net/v2/servers/{room_id}/mods"/v2/servers/{id}/history
Returns historical player activity buckets for one server. Valid ranges are 24h, 7d, and 30d.
curl "https://api.reforgermods.net/v2/servers/{room_id}/history?range=24h"/v2/rate-limits
Returns the rate-limit tier resolved for the request. This route uses the same utility response shape as V1.
{
"authenticated": true,
"rate_limit": {
"plan": "pro",
"limit_per_minute": 1200,
"burst": 300,
"limit_per_day": 500000,
"window": "1 minute",
"daily_window": "UTC day",
"shared_by": "account",
"daily_shared_by": "account",
"active_key_limit": 10
}
}/v2/refresh/jobs/{id}
Inspects background refresh progress when a refresh job is created. This route uses the same utility response shape as V1.
{
"id": "9f0b7d0f6fd4f88a8bb0e455f0b640247a93",
"status": "queued",
"resource_url": "/v2/mods?search=radio",
"retry_after_seconds": 2
}/v2/tools/storage-plan
Plans mod storage for a current and a desired mod set. Sizes are always resolved server-side from real Workshop package bytes, so a client cannot influence the accounting. Exact and estimated bytes are carried separately through every subtotal and are never merged into one unqualified figure. No API key required.
mode decides how desired relates to current, and the two answer different questions. replace (the default) treats desired as the complete end state, so anything installed it does not reference becomes removable. add treats desired as mods to install on top of current, keeping installed mods the wish list never mentions.
includeRemovalImpact adds a removal block when a budget is set and the plan does not fit. It is opt-in because it costs dependency resolution for every mod in the request. Each candidate carries a three-valued status: safe, blocked (with requiredBy naming what would break), or unknown when dependency data was incomplete. Blocked and unknown candidates never count toward the running savings total.
{
"current": [{ "id": "5965550F24A0C152", "version": "1.0.0" }],
"desired": [{ "id": "597706D1E4C7BAAD" }],
"mode": "add",
"budgetBytes": 107374182400,
"includeRemovalImpact": true
}{
"status": "success",
"data": {
"mode": "add",
"current": { "totalBytes": 16106127360, "totalText": "15 GiB", "exactCount": 42, "estimatedCount": 0, "coverage": 1 },
"download": { "totalBytes": 2147483648, "totalText": "2 GiB", "exactCount": 3, "estimatedCount": 0 },
"projected": { "totalBytes": 18253611008, "totalText": "17 GiB" },
"peak": { "totalBytes": 18253611008, "totalText": "17 GiB" },
"budget": { "set": true, "text": "100 GiB", "verdict": "fits", "headroomText": "83 GiB" },
"downloads": [{ "id": "597706D1E4C7BAAD", "name": "Example Mod", "bytes": 2147483648, "exact": true, "source": "workshop-download-list" }],
"removal": {
"neededText": "0 B",
"recommendedCount": 0,
"candidates": [],
"dependencyDataAvailable": true
},
"coverage": 1,
"unsizedCount": 0,
"notes": []
},
"resolution": { "requested": 45, "resolved": 45, "unresolved": 0, "exactSizes": 45, "sizeCoverage": 1 },
"model": "reforgermods.net storage model 2026.08-1"
}The Storage Planner is this endpoint with a UI on top.
/v2/tools/dependency-analysis
Answers "what breaks if I remove this?" for a modpack. Send targetId for one mod or targetIds for a whole removal set; the two are unioned. No API key required.
A set is not the same question as its members one at a time: a mod inside the removal set is never counted as a blocker for another mod in the set, because both are going away together. coveredBySelection counts the mods that only break because of another selected mod. missingTargets lists requested IDs absent from the supplied pack; the ones present are still analysed.
A mod whose dependency metadata could not be fetched is reported in unresolvedMods, and its empty dependency list means unknown, not none — the verdict says so rather than claiming a removal is safe. includeAll is a drawing option that adds every remaining mod to the returned graph with role related; it never changes the verdict.
{
"mods": [
{ "id": "5965550F24A0C152", "version": "1.0.0" },
{ "id": "597706D1E4C7BAAD", "version": "2.1.0" }
],
"targetIds": ["5965550F24A0C152"],
"includeAll": false
}{
"status": "success",
"data": {
"status": "blocked",
"reason": "Example Mod directly requires Core Framework and would break.",
"targets": [{ "id": "5965550F24A0C152", "name": "Core Framework", "role": "selected" }],
"missingTargets": [],
"coveredBySelection": 0,
"directBlockers": [{ "id": "597706D1E4C7BAAD", "name": "Example Mod", "depth": 1, "chainNames": ["Example Mod", "Core Framework"] }],
"transitiveBlockers": [],
"affectedCount": 1,
"orphanedIfRemoved": [],
"reclaimable": { "totalBytes": 943718400, "totalText": "900 MiB", "exactCount": 1, "estimatedCount": 0 },
"unresolvedMods": [],
"missingDependencies": [],
"cycles": [],
"graph": { "nodes": [], "edges": [], "minLayer": -1, "maxLayer": 0, "truncated": false }
},
"mods": [{ "id": "5965550F24A0C152", "name": "Core Framework", "bytes": 943718400, "exact": true }],
"resolution": { "requested": 2, "resolved": 2, "unresolved": 0 },
"model": "reforgermods.net dependency model 2026.08-1"
}The Dependency Blockers tool is this endpoint with a UI on top.
/v2/tools/hosting-estimate
Estimates RAM, CPU, and disk for a modded dedicated server. Supply mods for exact byte-based sizing; without it the estimate falls back to modCount and the median size of the mods indexed by reforgermods.net, and says so. No API key required.
Every figure is returned with the components that produced it and the calibration constants behind them. calibrationBasis is the weakest basis among the constants used — the honest confidence ceiling for the whole result. These are reforgermods.net's own planning estimates, not measurements published by any vendor, and most constants are currently provisional.
{
"slots": 64,
"concurrentPlayers": 48,
"scenario": "heavy",
"logRetentionDays": 14,
"backupCopies": 1,
"mods": [{ "id": "5965550F24A0C152", "version": "1.0.0" }]
}{
"status": "success",
"data": {
"inputs": { "slots": 64, "concurrentPlayers": 48, "modCount": 1, "modBytesText": "900 MiB", "modBytesKnown": true, "scenario": "heavy" },
"memory": { "recommendedGiB": 8, "minimumGiB": 6, "workingSetMiB": 4608, "components": [{ "label": "Dedicated server baseline", "text": "2.0 GiB", "why": "An idle, unmodded server process before anyone connects.", "exact": false }] },
"cpu": { "recommendedCores": 4, "clockClass": "high-clock", "clockNote": "Reforger's simulation loop is single-threaded." },
"disk": { "recommendedGiB": 50, "withMarginText": "38 GiB", "modBytesExact": true },
"workload": { "players": "high", "mods": "light", "scenario": "heavy", "driver": "players" },
"assumptions": [{ "key": "baseServerMemory", "label": "Idle server memory", "value": "2048 MiB", "basis": "provisional", "note": "Starting assumption pending measurement." }],
"estimate": true,
"calibrationVersion": "2026.08-1",
"calibrationBasis": "provisional"
},
"mods": [{ "id": "5965550F24A0C152", "name": "Core Framework", "bytes": 943718400, "exact": true }],
"model": "reforgermods.net hosting model 2026.08-1"
}The Hosting Calculator is this endpoint with a UI on top.
List Response Structure
{
"status": "success",
"meta": {
"totalPages": 2593,
"currentPage": 2,
"totalMods": 41478,
"shownMods": 16,
"modsIndexStart": 17,
"modsIndexEnd": 32
},
"data": [ { "...": "V2 mod preview objects" } ],
"links": {
"next": "https://api.reforgermods.net/v2/mods?page=3&search=radio",
"prev": "https://api.reforgermods.net/v2/mods?page=1&search=radio"
}
}V2 Mod Preview Object
List/search previews avoid long fields such as full descriptions, scenarios, dependency lists, and large preview-image arrays.
{
"id": "5965550F24A0C152",
"name": "Example Mod",
"type": "addon",
"summary": "Short Workshop summary",
"authorId": "author_id",
"author": "Example Author",
"version": "1.2.3",
"versionId": 123,
"size": 203434353,
"sizeFormatted": "194 MiB",
"rating": 0.88,
"ratingCount": 9178,
"subscriberCount": 31995,
"createdAt": "2022-05-18T22:02:44Z",
"updatedAt": "2026-07-30T07:10:47Z",
"unlisted": false,
"private": false,
"tags": ["VEHICLES", "WEAPONS"],
"imageUrl": "https://example.com/image.png",
"workshopUrl": "https://reforger.armaplatform.com/workshop/5965550F24A0C152",
"apiUrl": "https://api.reforgermods.net/v2/mods/5965550F24A0C152"
}V2 Mod Detail Object
size is raw bytes. sizeFormatted is derived from size using IEC units: B, KiB, MiB, GiB, and TiB. rating is a number from 0.0 to 1.0. Timestamps are RFC3339.
dependencySize and totalSize use direct dependencies reported for the current mod version. The detail object includes direct dependencies and scenarios arrays for convenience; version history remains available from the version subresource endpoints.
Upstream-only moderation, processing, access, blocked, reported, and platform bitfield data is not exposed. Giant license text is kept out of normal detail and available from /v2/mods/{id}/license.
Version History Object
The version-history response is a version collection for one mod. It does not repeat the full V2 mod detail fields.
{
"modId": "{mod_id}",
"count": 10,
"versions": [ { "...": "mod version objects" } ]
}Mod Version Object
A version row represents one lightweight Workshop asset version entry. size is raw bytes, sizeFormatted uses IEC units, and timestamps are returned as RFC3339 strings when available.
{
"id": "1040033",
"version": "1.2.3",
"gameVersion": "1.7.0.54",
"size": 203434353,
"sizeFormatted": "194 MiB",
"approved": true,
"published": true,
"createdAt": "2026-07-30T07:09:00Z",
"updatedAt": "2026-07-30T07:10:47Z",
"scenarioCount": 11,
"dependencyCount": 2,
"apiUrl": "https://api.reforgermods.net/v2/mods/{mod_id}/versions/1.2.3"
}Optional fields are omitted when the Workshop data does not include them. The list object does not include changelog text.
Version Detail Object
A version detail object represents one specific Workshop version. It adds author-provided changelog text and version-specific scenario/dependency data when available.
{
"modId": "{mod_id}",
"id": "1040033",
"version": "1.2.3",
"gameVersion": "1.7.0.54",
"size": 203434353,
"sizeFormatted": "194 MiB",
"approved": true,
"published": true,
"changelog": "Author changelog text",
"createdAt": "2026-07-30T07:09:00Z",
"updatedAt": "2026-07-30T07:10:47Z",
"scenarioCount": 11,
"dependencyCount": 2,
"scenarios": [ { "...": "scenario objects" } ],
"dependencies": [ { "...": "dependency objects" } ],
"apiUrl": "https://api.reforgermods.net/v2/mods/{mod_id}/versions/1.2.3"
}changelog preserves the Workshop text, including line breaks. It may be an empty string when the Workshop has no changelog for that version.
V2 Dependency Object
{
"id": "{dep_id}",
"name": "Mod Dependency",
"version": "1.2.3",
"size": 6339694503,
"sizeFormatted": "5.9 GiB",
"published": true,
"private": false,
"dependencyCount": 0,
"workshopUrl": "https://reforger.armaplatform.com/workshop/{dep_id}",
"apiUrl": "https://api.reforgermods.net/v2/mods/{dep_id}"
}Dependencies are direct dependencies for the current mod version. V2 does not expose dependency-level blocked.
V2 Scenario Object
{
"name": "Some Scenario",
"description": "Scenario description",
"gameId": "{mod_id}Missions/SomeScenario.conf",
"gameMode": "#AR-Scenario_GameMode_Campaign",
"author": "#AR-Author_BI",
"playerCount": 64
}Scenario objects do not include image URLs. Use mod-level imageUrl, previewImages, or screenshots for visual assets.
V1 Migration Notes
| V1 | V2 |
|---|---|
/v1/mods/{page} | /v2/mods?page={page} |
/v1/search?query={query} | /v2/mods?search={query} |
/v1/mod/{id} | /v2/mods/{id} |
/v1/mod/{id}/versions | /v2/mods/{id}/versions |
Detail dependencies array | /v2/mods/{id}/dependencies |
Detail scenarios array | /v2/mods/{id}/scenarios |
size: "5.90 GB" | size: 6335076761, sizeFormatted: "5.9 GiB" |
rating: "88%" | rating: 0.88 |
created: "18.05.2022" | createdAt: "2022-05-18T22:02:44Z" |
V2 mod data is normalized from Arma Reforger Workshop metadata and may be temporarily unavailable if the Workshop data shape changes.