Przejdź do treści

Publiczne API

Ustrukturyzowany dostęp tylko do odczytu do raportów zgodności od społeczności dla map, autobusów, pojazdów, modów, obiektów, wtyczek i narzędzi działających w openOMSI. Stworzone dla deweloperów openOMSI, narzędzi analitycznych, botów i integracji.

To NIE jest API do zgłaszania błędów openOMSI. Błędy samego silnika należy zgłaszać oficjalnymi kanałami projektu. Tutaj można jedynie odczytać, co przetestowała społeczność.

⚠ LIMIT ZAPYTAŃ PUBLICZNEGO API

6 zapytań na IP na 60 minut

To API ma celowo bardzo restrykcyjny limit zapytań, ponieważ jest publiczne i nie wymaga uwierzytelniania.

  • Projektuj integracje tak, aby lokalnie buforowały odpowiedzi.
  • Nie odpytuj API w sposób ciągły.
  • Wszędzie, gdzie to możliwe, używaj endpointów zbiorczych: jedno wywołanie odpowiada na większość pytań.

Limit jest wspólny dla wszystkich publicznych endpointów i dotyczy wyłącznie zewnętrznych odbiorców; sama strona internetowa nie korzysta z tej puli.

Szybki start

Bazowy URL: https://openomsi.omsimods.com.br/api/public/v1. Wszystko to JSON, tylko GET, bez uwierzytelniania. Zacznij od endpointu meta, aby poznać dokładne wartości akceptowane przez filtry.

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)

Limit zapytań, nagłówki i błędy

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
}

Praktyczne przypadki użycia

Przykładowe wartości są poglądowe; struktura odpowiedzi jest prawdziwa.

1. Czy Grand Paris Moulon działa na Windows?

Jedno wywołanie zwraca podsumowanie według platform, kategorie problemów, rozkład FPS, przetestowane wersje i najnowsze raporty. Odczytaj compatibility.by_platform.WINDOWS.

GET https://openomsi.omsimods.com.br/api/public/v1/content/grand-paris-moulon

Odpowiedź (skrócona)

{
  "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. Lista map przetestowanych na Android

Filtruj według typu i platformy. Każdy element zawiera już sumy, przetestowane platformy i ostatnio przetestowaną wersję openOMSI.

GET https://openomsi.omsimods.com.br/api/public/v1/content?type=MAP&platform=ANDROID&sort=reports&limit=20

Odpowiedź (skrócona)

{
  "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. Jako deweloper openOMSI chcę zobaczyć problemy z teksturami w bieżącej wersji

Filtruj raporty według wersji openOMSI i kategorii problemu. Każdy raport zawiera ustrukturyzowane issue_categories oraz opis od testera.

GET https://openomsi.omsimods.com.br/api/public/v1/reports?openomsi_version=0.1.126&issue_category=TEXTURES&limit=50

Odpowiedź (skrócona)

{
  "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. Wykrycie możliwej regresji między wersjami

compare pokazuje jedną zawartość obok siebie w dwóch wersjach; regressions wymienia każdą zawartość, która wcześniej działała, a teraz zgłasza problemy. Wyniki to jedynie możliwe regresje, nigdy potwierdzone.

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

Odpowiedź (skrócona)

{
  "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. Zasilanie bota Discord

Wyszukaj po nazwie, a następnie zbuduj odpowiedź na podstawie pierwszego elementu: nazwa, platforma, wynik, ostatnio przetestowana wersja i liczba raportów. Buforuj to po swojej stronie.

GET https://openomsi.omsimods.com.br/api/public/v1/content?q=grand%20paris&platform=WINDOWS&limit=1

Odpowiedź (skrócona)

{
  "data": [
    {
      "name": "Grand Paris Moulon",
      "reports": {
        "total": 4,
        "works": 2,
        "works_with_issues": 2
      },
      "latest_tested_openomsi_version": "0.1.126"
    }
  ]
}

Sugerowana odpowiedź bota

Grand Paris Moulon
Windows
⚠ Działa z problemami
Ostatnio testowane: 0.1.126
Raporty: 4

6. Jakie problemy są zgłaszane najczęściej na Android?

Endpoint issues agreguje kategorie wraz z liczbą raportów i różnych zawartości; endpoint platformy dodaje najczęściej zgłaszane urządzenia i FPS.

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

Odpowiedź (skrócona)

{
  "data": [
    {
      "category": "TEXTURES",
      "reports": 31,
      "contents": 18
    },
    {
      "category": "PHYSICS",
      "reports": 22,
      "contents": 14
    }
  ]
}

7. Bieżące wydanie i pobieranie

releases/latest zwraca wersję, datę publikacji, adres URL GitHub oraz oficjalne pliki do pobrania według platformy i architektury.

GET https://openomsi.omsimods.com.br/api/public/v1/releases/latest

Odpowiedź (skrócona)

{
  "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. Znajdowanie zawartości, której nikt jeszcze nie testował

has_reports=false wymienia zatwierdzoną zawartość bez raportów; połącz z type lub q.

GET https://openomsi.omsimods.com.br/api/public/v1/content?has_reports=false&type=MAP&limit=50

Odpowiedź (skrócona)

{
  "data": [
    {
      "name": "…",
      "type": "MAP",
      "reports": {
        "total": 0
      }
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 50,
    "total": 312,
    "pages": 7
  }
}

Endpointy

Wszystkie ścieżki zaczynają się od https://openomsi.omsimods.com.br/api/public/v1. Pełny opis w formie czytelnej dla maszyn to dokument OpenAPI.

EndpointCo zwraca
GET /metaTaksonomie, limity i wersja API.
GET /statusKontrola działania (również objęta limitem: nie odpytuj jej w pętli).
GET /contentWyszukiwanie zawartości z sumami raportów, przetestowanymi platformami i ostatnio przetestowaną wersją dla każdego elementu.
GET /content/{slug}Jedna zawartość w jednym wywołaniu: źródła, zgodność, problemy, wydajność, przetestowane wersje, urządzenia i najnowsze raporty.
GET /reportsPojedyncze raporty z ustrukturyzowanymi kategoriami problemów, FPS, sprzętem i datami.
GET /compatibilityAgregacja według wersji openOMSI, platformy lub typu zawartości.
GET /compatibility/compareJedna zawartość porównana między dwiema wersjami openOMSI.
GET /compatibility/regressionsMożliwe regresje między kolejnymi przetestowanymi wersjami.
GET /issuesKategorie problemów uszeregowane według raportów i dotkniętych zawartości.
GET /platforms/{platform}Agregacja dla jednej platformy (android, windows, linux, macos).
GET /devicesSprzęt podany przez testerów, pogrupowany i policzony.
GET /runtime-reportsTesty urządzeń samego openOMSI (sesja mogła się nigdy nie rozpocząć): sprzęt, system, jak daleko uruchomienie dotarło, API graficzne, oczyszczony tekst błędu i opcjonalny oczyszczony log. Bez żadnej zawartości.
GET /runtime-reports/{id}Jeden test urządzenia wraz z oczyszczonym logiem, jeśli jest dostępny.
GET /releases/latestBieżące wydanie i oficjalne pliki do pobrania.
GET /releasesStronicowana historia wydań.

Testy urządzeń nigdy nie ujawniają oryginalnego logu, adresów IP, adresów e-mail, nazw użytkowników ani identyfikatorów kont: tylko dane techniczne i oczyszczony log. To obserwacje społeczności, a nie benchmark ani oficjalne wymaganie.

Filtry, stronicowanie, sortowanie i pola

Parametry

ParametrOpis
qWyszukiwanie tekstowe w nazwach i aliasach zawartości.
typeTyp zawartości. Dozwolona lista rozdzielona przecinkami.
platformPlatforma raportu. Dozwolona lista rozdzielona przecinkami.
resultWynik zgłoszony przez testera. Dozwolona lista rozdzielona przecinkami.
openomsi_versionWersja openOMSI, na której przeprowadzono test.
issue_categoryKategoria problemu przypisana do raportu (AUDIO jest akceptowane jako alias SOUND). Dozwolona lista rozdzielona przecinkami.
authorAutor zawartości (dopasowanie częściowe).
has_reportstrue: tylko przetestowana zawartość; false: tylko zawartość, której nikt jeszcze nie testował.
sortPole sortowania.
orderKierunek sortowania.
pageNumer strony, licząc od 1.
limitLiczba elementów na stronę (maksymalnie 50).
fieldsPola najwyższego poziomu rozdzielone przecinkami, które zostają w każdym elemencie (opcjonalne; domyślnie cały element).
contentSlug lub id zawartości (dokładne) albo część jej nazwy.
architectureArchitektura procesora w raporcie. Dozwolona lista rozdzielona przecinkami.
deviceTekst zawarty w nazwie urządzenia.
has_fpsTylko raporty z wartością FPS (true) lub bez niej (false).
fromreports: przetestowano w tej dacie ISO lub później. compare/regressions: starsza wersja openOMSI.
toreports: przetestowano w tej dacie ISO lub wcześniej. compare/regressions: nowsza wersja openOMSI.
startup_stageJak daleko openOMSI dotarł na urządzeniu. Dozwolona lista rozdzielona przecinkami.
graphics_backendAPI graficzne wybrane przez testera. Dozwolona lista rozdzielona przecinkami.
gpuTekst zawarty w nazwie GPU.
cpuTekst zawarty w nazwie CPU.
manufacturerProducent urządzenia (dopasowanie częściowe).
device_modelModel urządzenia (dopasowanie częściowe).
os_versionWersja systemu (dopasowanie częściowe).
media_indexing_observedAndroid: tester zgłosił, że galeria lub skaner multimediów indeksował obrazy OMSI (true) albo nie (false).
has_logTylko testy z oczyszczonym logiem (true) lub bez niego (false).
include_logDołącza sanitized_log do każdego elementu (domyślnie false: lista zawiera tylko has_sanitized_log).

Enumy / Taksonomie

Wygenerowano z własnych list aplikacji. AUDIO jest akceptowane w filtrach jako alias SOUND.

ContentType

ADDONMAPBUSVEHICLEMODSCENERYOBJECTSPLINEPLUGINTOOLOTHER

CompatibilityResult

WORKSWORKS_WITH_ISSUESDOES_NOT_WORKINCONCLUSIVE

Platform

ANDROIDWINDOWSLINUXMACOS

Architecture

X86X64ARM64UNKNOWN

IssueCategory

GRAPHICSTEXTURESPHYSICSSCRIPTSSOUNDCOLLISIONSPERFORMANCELOADINGCONTROLSMULTIPLAYERINTERFACECRASHOTHER

Dane o wydajności

FPS i czasy ładowania to dane ZGŁASZANE PRZEZ UŻYTKOWNIKÓW, a nie kontrolowany benchmark. Statystyki najpierw używają mediany i zawsze zawierają wielkość próby (samples) oraz min i max.

Pamięć podręczna, CORS i wersjonowanie

Wytyczne integracji

O danych

Raporty społeczności to obserwacje, a nie miarodajna certyfikacja zgodności. Pojedynczy raport nie oznacza, że "ten mod jest zgodny", ani że "to błąd openOMSI". Weź pod uwagę liczbę próbek, wersję openOMSI, platformę, sprzęt, wersję zawartości, kategorię problemu i spójność między raportami.

Prywatność

Odpowiedzi nigdy nie zawierają identyfikatorów Discord, adresów e-mail, adresów IP, sesji, subskrypcji powiadomień, danych moderacji ani identyfikatorów urządzeń. Raporty pokazują tylko publiczną nazwę wyświetlaną i sprzęt, który tester zdecydował się opublikować. W raporcie issue_categories jest ustrukturyzowane, natomiast issue_description to jedyny opis tekstowy testera dla całego raportu.

https://openomsi.omsimods.com.br/api/openapi.json

Niezależna baza społeczności prowadzona przez Portal OmsiModsBR. Nie stanowi oficjalnej certyfikacji projektu openOMSI ani autorów treści.

OMSI i openOMSI należą do ich odpowiednich autorów/właścicieli praw. Ta strona nie rozpowszechnia treści objętych prawami: linki prowadzą do oryginalnych źródeł, a wyniki to indywidualne testy przesłane przez użytkowników.

Publiczne API | openOMSI Compatibility