Publieke API
Gestructureerde, alleen-lezen toegang tot compatibiliteitsrapporten van de community over kaarten, bussen, voertuigen, mods, objecten, plugins en tools die op openOMSI draaien. Gemaakt voor openOMSI-ontwikkelaars, analysetools, bots en integraties.
Dit is GEEN API om bugs van openOMSI te melden. Bugs van de engine zelf horen thuis in de officiële kanalen van het project. Hier lees je alleen wat de community heeft getest.
⚠ RATE LIMIT PUBLIEKE API
6 verzoeken per IP per 60 minuten
Deze API heeft bewust een strikte rate limit, omdat hij openbaar is en geen authenticatie vereist.
- Ontwerp integraties zo dat ze antwoorden lokaal cachen.
- Poll de API niet continu.
- Gebruik waar mogelijk aggregatie-endpoints: één aanroep beantwoordt de meeste vragen.
De limiet wordt gedeeld door alle publieke endpoints en geldt alleen voor externe gebruikers; de website zelf gebruikt dit quotum niet.
Snelstart
Basis-URL: https://openomsi.omsimods.com.br/api/public/v1. Alles is JSON, alleen GET, geen authenticatie. Begin met het meta-endpoint om de exacte waarden te ontdekken die de filters accepteren.
curl https://openomsi.omsimods.com.br/api/public/v1/meta
curl "https://openomsi.omsimods.com.br/api/public/v1/content?q=millennium&type=VEHICLE"
OpenAPI (JSON)
Rate limit, headers en fouten
- Elk antwoord bevat RateLimit-Limit, RateLimit-Remaining en RateLimit-Reset. Na het bereiken van de limiet antwoordt de API met 429 en Retry-After (seconden).
- Voorwaardelijke verzoeken (If-None-Match / If-Modified-Since) geven 304 zonder body terug, maar een 304 telt nog steeds mee voor het quotum.
- Fouten gebruiken altijd hetzelfde formaat {"error": code, "message": text}; statussen 400, 404, 429 en 500. Er worden nooit stack traces teruggegeven.
HTTP/1.1 429 Too Many Requests
Retry-After: 1234
RateLimit-Limit: 6
RateLimit-Remaining: 0
RateLimit-Reset: 1234
{
"error": "rate_limit_exceeded",
"message": "Public API limit reached. Try again later.",
"retry_after": 1234
}Praktische gebruiksscenario's
De voorbeeldwaarden zijn illustratief; de structuur van de antwoorden is echt.
1. Werkt Grand Paris Moulon op Windows?
Eén aanroep geeft de samenvatting per platform, probleemcategorieën, FPS-verdeling, geteste versies en de nieuwste rapporten. Lees compatibility.by_platform.WINDOWS.
GET https://openomsi.omsimods.com.br/api/public/v1/content/grand-paris-moulon
Antwoord (ingekort)
{
"compatibility": {
"total_reports": 4,
"works": 2,
"works_with_issues": 2,
"does_not_work": 0,
"inconclusive": 0,
"low_data": false,
"by_platform": {
"WINDOWS": {
"reports": 4,
"works": 2,
"works_with_issues": 2,
"does_not_work": 0,
"inconclusive": 0,
"latest_tested_openomsi_version": "0.1.126",
"fps": {
"samples": 3,
"median": 38,
"min": 28,
"max": 60
}
}
}
},
"issues": {
"by_category": {
"TEXTURES": 2,
"SCRIPTS": 1
},
"reports_with_issues": 2
},
"performance": {
"source": "user_reported",
"fps": {
"samples": 3,
"median": 38,
"min": 28,
"max": 60
},
"load_time_seconds": {
"samples": 2,
"median": 95,
"min": 80,
"max": 110
}
},
"latest_tested_openomsi_version": "0.1.126"
}2. Lijst van kaarten getest op Android
Filter op type en platform. Elk item bevat al de totalen, geteste platforms en de laatst geteste openOMSI-versie.
GET https://openomsi.omsimods.com.br/api/public/v1/content?type=MAP&platform=ANDROID&sort=reports&limit=20
Antwoord (ingekort)
{
"data": [
{
"id": "cm0millennium1",
"slug": "mapa-brigadeiro-sampaio",
"name": "Mapa Brigadeiro Sampaio",
"type": "MAP",
"author": null,
"current_version": null,
"url": "https://openomsi.omsimods.com.br/conteudo/caio-millennium-brt-i-o500u",
"source_url": "https://omsimods.com.br/",
"image_url": null,
"omsimodsbr_verified": true,
"reports": {
"total": 3,
"works": 0,
"works_with_issues": 3,
"does_not_work": 0,
"inconclusive": 0,
"by_platform": {
"WINDOWS": {
"reports": 3,
"works": 0,
"works_with_issues": 3,
"does_not_work": 0,
"inconclusive": 0
}
}
},
"reports_with_issues": 3,
"latest_tested_openomsi_version": "0.1.126",
"latest_test_at": "2026-09-29T15:20:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 1,
"pages": 1
}
}3. Als openOMSI-ontwikkelaar texture-problemen in de huidige versie bekijken
Filter rapporten op openOMSI-versie en probleemcategorie. Elk rapport bevat gestructureerde issue_categories plus de beschrijving van de tester.
GET https://openomsi.omsimods.com.br/api/public/v1/reports?openomsi_version=0.1.126&issue_category=TEXTURES&limit=50
Antwoord (ingekort)
{
"data": [
{
"id": "cm0report0001",
"content": {
"id": "cm0grandparis01",
"slug": "grand-paris-moulon",
"name": "Grand Paris Moulon",
"type": "MAP"
},
"content_version": null,
"openomsi_version": "0.1.126",
"platform": "WINDOWS",
"architecture": "X64",
"result": "WORKS_WITH_ISSUES",
"fps": {
"avg": 41,
"min": 28,
"max": 60
},
"load_time_seconds": 95,
"device": {
"label": "Desktop GTX 1060",
"model": null,
"os_version": "Windows 11",
"cpu": "Ryzen 5 3600",
"gpu": "GTX 1060 6GB",
"ram_gb": 16
},
"issue_categories": [
"TEXTURES"
],
"issue_description": "Windows of some black buses render with wrong textures.",
"notes": null,
"tested_at": "2026-09-29T17:02:00.000Z",
"screenshot_url": null,
"author": {
"display_name": "tester"
}
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 1,
"pages": 1
}
}4. Een mogelijke regressie tussen versies opsporen
compare toont één content naast elkaar in twee versies; regressions toont alle content die eerder werkte en nu problemen meldt. De resultaten zijn alleen mogelijke regressies, nooit bevestigde.
GET https://openomsi.omsimods.com.br/api/public/v1/compatibility/compare?content=grand-paris-moulon&from=0.1.121&to=0.1.126
GET https://openomsi.omsimods.com.br/api/public/v1/compatibility/regressions?from=0.1.121&to=0.1.126&type=BUS
Antwoord (ingekort)
{
"changes": [
{
"platform": "WINDOWS",
"from": {
"works": 3,
"works_with_issues": 0,
"does_not_work": 0,
"inconclusive": 0
},
"to": {
"works": 1,
"works_with_issues": 3,
"does_not_work": 0,
"inconclusive": 0
},
"from_reports": 3,
"to_reports": 4,
"possible_regression": true
}
],
"possible_regression": true
}5. Een Discord-bot voeden
Zoek op naam en bouw het antwoord op basis van het eerste item: naam, platform, resultaat, laatst geteste versie en aantal rapporten. Cache het aan jouw kant.
GET https://openomsi.omsimods.com.br/api/public/v1/content?q=grand%20paris&platform=WINDOWS&limit=1
Antwoord (ingekort)
{
"data": [
{
"name": "Grand Paris Moulon",
"reports": {
"total": 4,
"works": 2,
"works_with_issues": 2
},
"latest_tested_openomsi_version": "0.1.126"
}
]
}Voorgesteld botantwoord
Grand Paris Moulon
Windows
⚠ Werkt met problemen
Laatst getest: 0.1.126
Rapporten: 4
6. Welke problemen worden het vaakst gemeld op Android?
Het issues-endpoint aggregeert categorieën met het aantal rapporten en het aantal verschillende contents; het platform-endpoint voegt de meest gemelde apparaten en FPS toe.
GET https://openomsi.omsimods.com.br/api/public/v1/issues?platform=ANDROID&openomsi_version=0.1.126
GET https://openomsi.omsimods.com.br/api/public/v1/platforms/android
Antwoord (ingekort)
{
"data": [
{
"category": "TEXTURES",
"reports": 31,
"contents": 18
},
{
"category": "PHYSICS",
"reports": 22,
"contents": 14
}
]
}7. Huidige release en downloads
releases/latest geeft de versie, publicatiedatum, GitHub-URL en de officiële downloadbestanden per platform en architectuur terug.
GET https://openomsi.omsimods.com.br/api/public/v1/releases/latest
Antwoord (ingekort)
{
"version": "0.1.126",
"published_at": "2026-09-27T20:11:00.000Z",
"github_url": "https://github.com/openOMSI-org/openOMSI/releases/tag/v0.1.126",
"assets": [
{
"key": "android-arm64",
"label": "Android ARM64",
"platform": "ANDROID",
"architecture": "ARM64",
"type": "CLIENT",
"name": "openOMSI-android-arm64.apk",
"download_url": "https://github.com/openOMSI-org/openOMSI/releases/download/v0.1.126/openOMSI-android-arm64.apk",
"size_bytes": 152043520
}
]
}8. Content vinden die nog niemand heeft getest
has_reports=false toont goedgekeurde content zonder rapporten; combineer het met type of q.
GET https://openomsi.omsimods.com.br/api/public/v1/content?has_reports=false&type=MAP&limit=50
Antwoord (ingekort)
{
"data": [
{
"name": "…",
"type": "MAP",
"reports": {
"total": 0
}
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 312,
"pages": 7
}
}Endpoints
Alle paden beginnen met https://openomsi.omsimods.com.br/api/public/v1. De volledige machineleesbare beschrijving is het OpenAPI-document.
| Endpoint | Wat het teruggeeft |
|---|
GET /meta | Taxonomieën, limieten en API-versie. |
GET /status | Operationele controle (ook onder de rate limit: niet pollen). |
GET /content | Contentzoekopdracht met rapporttotalen, geteste platforms en laatst geteste versie per item. |
GET /content/{slug} | Eén content in één aanroep: bronnen, compatibiliteit, problemen, prestaties, geteste versies, apparaten en nieuwste rapporten. |
GET /reports | Individuele rapporten met gestructureerde probleemcategorieën, FPS, hardware en datums. |
GET /compatibility | Aggregatie per openOMSI-versie, platform of contenttype. |
GET /compatibility/compare | Eén content vergeleken tussen twee openOMSI-versies. |
GET /compatibility/regressions | Mogelijke regressies tussen opeenvolgende geteste versies. |
GET /issues | Probleemcategorieën gerangschikt op rapporten en getroffen contents. |
GET /platforms/{platform} | Aggregatie voor één platform (android, windows, linux, macos). |
GET /devices | Door testers ingevoerde hardware, gegroepeerd en geteld. |
GET /runtime-reports | Apparaattests van openOMSI zelf (de sessie is mogelijk nooit gestart): hardware, besturingssysteem, hoe ver het kwam, grafische API, gesaneerde foutmelding en een optioneel gesaneerd log. Geen content betrokken. |
GET /runtime-reports/{id} | Eén apparaattest, met het gesaneerde log wanneer dat er is. |
GET /releases/latest | Huidige release en officiële downloadbestanden. |
GET /releases | Gepagineerde releasegeschiedenis. |
Apparaattests maken nooit het oorspronkelijke log, IP-adressen, e-mailadressen, gebruikersnamen of accountidentificaties openbaar: alleen technische gegevens en het gesaneerde log. Het zijn waarnemingen van de community, geen benchmark en geen officiële vereiste.
Filters, paginering, sortering en velden
- Paginering: page (vanaf 1) en limit (standaard 20, maximaal 50). Lijsten antwoorden met {"data": [...], "pagination": {page, limit, total, pages}}.
- Sortering: sort = reports, recent, name, latest_test of issues; order = asc of desc.
- Optioneel behoudt fields=name,slug,type alleen die velden op het hoogste niveau van elk item. Het standaardantwoord is al volledig.
- Enum-filters zijn niet hoofdlettergevoelig en accepteren door komma's gescheiden lijsten (platform=ANDROID,WINDOWS).
- Wanneer rapportfilters (platform, result, openomsi_version, issue_category) worden gebruikt bij het zoeken naar content, hebben de tellingen betrekking op de overeenkomende rapporten.
Parameters
| Parameter | Beschrijving |
|---|
q | Zoeken op tekst in contentnamen en aliassen. |
type | Contenttype. Lijst met komma's toegestaan. |
platform | Platform van het rapport. Lijst met komma's toegestaan. |
result | Door de tester gemeld resultaat. Lijst met komma's toegestaan. |
openomsi_version | openOMSI-versie waarop de test is uitgevoerd. |
issue_category | Probleemcategorie die aan het rapport is gekoppeld (AUDIO wordt geaccepteerd als alias van SOUND). Lijst met komma's toegestaan. |
author | Auteur van de content (gedeeltelijke overeenkomst). |
has_reports | true: alleen geteste content; false: alleen content die nog niemand heeft getest. |
sort | Sorteerveld. |
order | Sorteerrichting. |
page | Paginanummer, beginnend bij 1. |
limit | Items per pagina (maximaal 50). |
fields | Door komma's gescheiden velden op het hoogste niveau die per item behouden blijven (optioneel; standaard het volledige item). |
content | Content-slug of -id (exact), of een deel van de naam. |
architecture | CPU-architectuur van het rapport. Lijst met komma's toegestaan. |
device | Tekst die in de apparaatnaam voorkomt. |
has_fps | Alleen rapporten met (true) of zonder (false) FPS-waarde. |
from | reports: getest op of na deze ISO-datum. compare/regressions: oudere openOMSI-versie. |
to | reports: getest op of vóór deze ISO-datum. compare/regressions: nieuwere openOMSI-versie. |
startup_stage | Hoe ver openOMSI op het apparaat kwam. Lijst met komma's toegestaan. |
graphics_backend | Grafische API gekozen door de tester. Lijst met komma's toegestaan. |
gpu | Tekst die in de GPU-naam voorkomt. |
cpu | Tekst die in de CPU-naam voorkomt. |
manufacturer | Fabrikant van het apparaat (gedeeltelijke overeenkomst). |
device_model | Model van het apparaat (gedeeltelijke overeenkomst). |
os_version | Versie van het besturingssysteem (gedeeltelijke overeenkomst). |
media_indexing_observed | Android: de tester meldde dat de galerij of de mediascanner OMSI-afbeeldingen indexeerde (true) of niet (false). |
has_log | Alleen tests met (true) of zonder (false) gesaneerd log. |
include_log | Neemt sanitized_log op in elk item (standaard false: de lijst vermeldt alleen has_sanitized_log). |
Enums / Taxonomieën
Gegenereerd uit de eigen lijsten van de applicatie. AUDIO wordt in filters geaccepteerd als alias van SOUND.
ContentType
ADDONMAPBUSVEHICLEMODSCENERYOBJECTSPLINEPLUGINTOOLOTHER
CompatibilityResult
WORKSWORKS_WITH_ISSUESDOES_NOT_WORKINCONCLUSIVE
Platform
ANDROIDWINDOWSLINUXMACOS
Architecture
X86X64ARM64UNKNOWN
IssueCategory
GRAPHICSTEXTURESPHYSICSSCRIPTSSOUNDCOLLISIONSPERFORMANCELOADINGCONTROLSMULTIPLAYERINTERFACECRASHOTHER
Prestatiegegevens
FPS en laadtijden zijn DOOR GEBRUIKERS GERAPPORTEERDE gegevens, geen gecontroleerde benchmark. Statistieken gebruiken eerst de mediaan en bevatten altijd de steekproefgrootte (samples), plus min en max.
Cache, CORS en versiebeheer
- Antwoorden bevatten Cache-Control, ETag en Last-Modified. Browsers mogen ze enkele minuten hergebruiken; gedeelde caches moeten hervalideren zodat het quotum altijd wordt afgedwongen.
- CORS is alleen open voor GET, HEAD en OPTIONS. Er zijn geen schrijfmethoden.
- De API is geversioneerd in het pad (/api/public/v1). Oudere paden zonder versie worden doorgestuurd (308) naar v1. Brekende wijzigingen komen alleen als nieuwe versie uit.
- De website openOMSI Compatibility leest zijn eigen database rechtstreeks en gebruikt deze API of het bijbehorende quotum nooit.
Richtlijnen voor integratie
- Cache gegevens lokaal.
- Vermijd polling; vraag alleen op wanneer nodig.
- Gebruik aggregatie-endpoints (content detail, compatibility, issues, platforms).
- Respecteer Retry-After en de RateLimit-*-headers.
- Scrape geen HTML wanneer de API gelijkwaardige gegevens heeft.
- Leid uit community-rapporten geen bevestigde enginebugs af.
- Houd in je analyses altijd de openOMSI-versie bij.
Over de gegevens
Community-rapporten zijn waarnemingen, geen gezaghebbende compatibiliteitscertificering. Een enkel rapport betekent niet "deze mod is compatibel" en ook niet "dit is een openOMSI-bug". Houd rekening met het aantal steekproeven, openOMSI-versie, platform, hardware, contentversie, probleemcategorie en consistentie tussen rapporten.
Privacy
Antwoorden bevatten nooit Discord-ID's, e-mailadressen, IP-adressen, sessies, meldingsabonnementen, moderatiegegevens of apparaat-ID's. Rapporten tonen alleen de openbare weergavenaam en de hardware die de tester heeft gekozen te publiceren. In een rapport is issue_categories gestructureerd, terwijl issue_description de enige vrije-tekstbeschrijving van de tester voor het hele rapport is.
https://openomsi.omsimods.com.br/api/openapi.json