Arma Reforger Mods API
One Reforger-focused API for live server data, server history, reported server mods, and cached Arma Reforger Workshop metadata.
https://api.reforgermods.netChoose a Version
V1 remains supported. Unversioned legacy routes map to V1.
Client Identity
No key is required for eligible public cached reads, including mod search, details, dependencies, scenarios, version data, and server data. Identify your client anyway.
User-Agent: my-server-panel/2.1 (+https://example.com; [email protected])
X-API-Client: my-server-panel/2.1
X-ReforgerMods-Client: my-server-panel
X-ReforgerMods-Client-Version: 2.1Paid keys use either header. Limits are shared by account.
Authorization: Bearer rfm_live_...
X-API-Key: rfm_live_...Rate Limits
Rate limits apply per client IP on the public tier and per account on paid tiers.
429 means either the minute limit or daily quota was exceeded. 503 with QUOTA_CHECK_UNAVAILABLE means quota state could not be checked and the request should be retried later.
| Header | Meaning |
|---|---|
RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset | Current limiting window. |
X-RateLimit-Limit-Minute, X-RateLimit-Remaining-Minute | Minute-limit state. |
X-RateLimit-Limit-Day, X-RateLimit-Remaining-Day, X-RateLimit-Reset-Day | UTC daily-quota state. |
X-RateLimit-Policy-Day | Effective daily quota mode: disabled, observe, or enforce. |
X-API-Plan | Resolved plan: free, developer, pro, or internal. |
Retry-After | Seconds to wait before retrying after 429 or 503. |
Caching
Responses are cached. Stale data may be served during upstream failures.
| Resource | Fresh cache | Stale fallback |
|---|---|---|
| Mod detail | 1 hour | 24 hours |
| Mod version history | 6 hours | 7 days |
| Mod list and search | 10 minutes | 1 hour |
| Not found response | 10 minutes | None |
| Header | Meaning |
|---|---|
X-Cache | HIT, MISS, or STALE. |
X-Workshop-Source, X-Workshop-Origin | Whether data came from live Workshop data, memory cache, persistent cache, or fallback parsing. |
ETag | Validator for conditional requests. |
curl -H 'If-None-Match: W/"a1b2c3d4e5f6a7b8c9d0e1f2"' \
"https://api.reforgermods.net/v2/mods?search=radio"Errors
Both versions use the same error envelope and include X-Request-Id.
{
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests.",
"requestId": "..."
}
}V1 to V2
Use V2 for typed values. Keep V1 for legacy response shapes.
{
"size": "5.90 GB",
"rating": "88%",
"created": "18.05.2022"
}{
"size": 6335076761,
"sizeFormatted": "5.9 GiB",
"rating": 0.88,
"createdAt": "2022-05-18T22:02:44Z"
}Workshop data may be temporarily unavailable if the Workshop data shape changes.