784.82REST API – SuomiGameHUB

SuomiGameHUB

Maailma tarvitsee pelejä

SuomiGameHUB REST API

Tarjoamme avoimen REST API:n suomalaisten pelien tietojen hakemiseen. API on ilmainen ja vapaasti käytettävissä kaikille.

💡 Tarvitsetko paljon dataa kerralla?
Suurten datamäärien lataukseen suosittelemme viikoittaisia dump-tiedostoja REST API:n sijaan. Dumpit sisältävät kaikki julkaistut pelit (CSV/JSON) ja päivittyvät automaattisesti kerran viikossa.

Perustiedot

  • Base URL: https://suomigamehub.com/wp-json/sgh/v1/
  • Muoto: JSON (tai CSV viennissä)
  • Rate-limiting: Maksimi 100 pyyntöä per minuutti per IP-osoite
  • Liikenneraja: Maksimi 10 MB per minuutti per IP-osoite
  • Autentikointi: Ei vaadita (vain luku)

Päätelohkot

1. GET /pelit

Hae pelien listaus suodatuksella ja sivutuksella.

Esimerkki:
https://suomigamehub.com/wp-json/sgh/v1/pelit?status=Julkaistu&year_from=2023&per_page=10

Parametrit:

  • page — Sivunumero (oletus: 1)
  • per_page — Tuloksia per sivu (oletus: 20, max: 60)
  • search — Hakusana (nimi tai kuvaus)
  • year_from — Julkaisuvuoden alaraja
  • year_to — Julkaisuvuoden yläraja
  • status — Projektin tila (Julkaistu, Tulossa, Beta, Työn alla, Peruutettu)
  • license — Lisenssit: ID:t (esim. "1,2,3") tai nimet (kaupallinen, ilmaispeli)
  • platform — Alustat: ID:t tai nimet (esim. "Windows,Web")
  • developer — Kehittäjät: ID:t tai nimet (esim. "Super God")
  • publisher — Julkaisijat: ID:t tai nimet
  • genre — Genret: ID:t tai nimet (esim. "toiminta,seikkailu")
  • theme — Teemat: ID:t tai nimet
  • location — Paikkakunnat: ID:t tai nimet (esim. "Helsinki")
  • multiplayer — Pelaajamuoto (yksinpeli, moninpeli)
  • adult_only — Aikuissisältö (yes, no, both)
  • sort_by — Lajittelu (title, year, date_published, modified)
  • order — Järjestys (asc, desc)

Taksonomia-parametrit (genre, developer, platform jne.) hyväksyvät sekä termien ID:t että nimet. Voit käyttää kumpaa tahansa tai sekoittaa:

  • genre=126 — Hae genre-ID:llä
  • genre=toiminta — Hae genren nimellä
  • developer=Super God — Hae kehittäjän nimellä
  • genre=toiminta,seikkailu — Useita genrejä
  • genre=126,seikkailu — Sekoitus ID:tä ja nimeä

Vastaus:

{
  "success": true,
  "data": [
    {
      "id": 123,
      "title": "Pelin nimi",
      "description": "Kuvaus...",
      "status": "Julkaistu",
      "year": 2024,
      "published_date": "2024-01-15",
      "platforms": ["Windows", "Web"],
      "genres": ["toiminta"],
      ...
    }
  ],
  "pagination": {
    "total": 1800,
    "pages": 30,
    "current": 1,
    "per_page": 60
  }
}

2. GET /pelit/{id}

Hae yksittäisen pelin tiedot.

Esimerkki:
https://suomigamehub.com/wp-json/sgh/v1/pelit/123

Vastaus:

{
  "success": true,
  "data": {
    "id": 123,
    "title": "Pelin nimi",
    "description": "Kuvaus...",
    "status": "Julkaistu",
    "year": 2024,
    "published_date": "2024-01-15",
    "video_link": "https://youtube.com/...",
    "steam_link": "https://store.steampowered.com/...",
    "platforms": ["Windows", "Web"],
    "genres": ["toiminta"],
    "developers": ["Super God"],
    ...
  }
}

3. GET /pelit/{id}/diff

Hae pelin muutoshistoria tietyltä aikaväliltä. Huom: muutoshistoria on saatavilla vain edelliseltä 90 päivältä, alkaen 16.12.2025.

Esimerkki:
https://suomigamehub.com/wp-json/sgh/v1/pelit/123/diff?since=2025-12-10&until=2025-12-16

Parametrit:

  • since — Alkupäivämäärä (YYYY-MM-DD, oletus: 7 päivää sitten)
  • until — Loppupäivämäärä (YYYY-MM-DD, oletus: tänään)

Rajoitukset:

  • Maksimi aikaväli: 90 päivää
  • Päivämäärän muoto: YYYY-MM-DD

Vastaus:

{
  "success": true,
  "id": 123,
  "title": "Pelin nimi",
  "modified_date": "2025-12-16 10:30:00",
  "changes": {
    "steam_link": {
      "old": "https://store.steampowered.com/app/123456/old",
      "new": "https://store.steampowered.com/app/123456/new"
    },
    "valitut_genret": {
      "old": ["toiminta"],
      "new": ["toiminta", "seikkailu"]
    },
    "julkaisuvuosi": {
      "old": "2024",
      "new": "2025"
    }
  },
  "last_modified": "2025-12-16 10:30:00",
  "total_changes": 3
}

Huomiot:

  • Jos peliä ei ole muokattu aikavälillä, changes on tyhjä objekti
  • Muutokset haetaan audit-logista, joka tallentaa kaikki peleihin tehdyt muutokset
  • Array-kentät (genret, alustat jne.) palautetaan alkuperäisessä muodossa

4. GET /pelit/export

Vie pelien tiedot CSV- tai JSON-muodossa. Tukee samoja suodatusparametreja kuin /pelit.

Esimerkki CSV:
https://suomigamehub.com/wp-json/sgh/v1/pelit/export?format=csv&status=Julkaistu&year_from=2020

Esimerkki JSON:
https://suomigamehub.com/wp-json/sgh/v1/pelit/export?format=json&status=Julkaistu

Parametrit:

  • format — Tiedostomuoto (csv tai json, oletus: csv)
  • Kaikki /pelit-päätelohkon suodatusparametrit

5. GET /meta

Hae kaikki saatavilla olevat metatiedot (genret, alustat, kehittäjät jne.).

Esimerkki:
https://suomigamehub.com/wp-json/sgh/v1/meta

Vastaus:

{
  "success": true,
  "data": {
    "licenses": [{"id":122,"name":"ilmaispeli","slug":"ilmaispeli","count":2579}],
    "platforms": [...],
    "developers": [...],
    "publishers": [...],
    "genres": [...],
    "themes": [...],
    "locations": [...],
    "statuses": ["Julkaistu", "Tulossa", "Beta", ...],
    "multiplayer_modes": ["yksinpeli", "moninpeli"]
  }
}

Viikoittaiset dump-tiedostot (SUOSITELTU isoille datamäärille)

Jos tarvitset kaikki pelit kerralla tai haet säännöllisesti suuria datamääriä, käytä viikoittaisia dump-tiedostoja API:n sijaan:

  • 📥 Lataa CSV- ja JSON-dumpit täältä
  • Sisältävät kaikki julkaistut pelit (~5000 kpl, ~8 MB)
  • Päivitetään automaattisesti kerran viikossa
  • Latausrajoitus: 5 latausta per tunti per IP

Miksi dumpit? API on optimoitu pienille hauille (esim. 20-60 peliä kerralla). Jos tarvitset kaikki pelit, dump-tiedosto on huomattavasti nopeampi ja säästää palvelimen kaistanleveyttä.

Kentät

API palauttaa seuraavat kentät jokaiselle pelille:

  • id — Pelin yksilöllinen tunniste
  • title — Pelin nimi
  • description — Pelin kuvaus
  • status — Projektin tila
  • year — Julkaisuvuosi
  • published_date — Tarkka julkaisupäivä (YYYY-MM-DD)
  • modified_date — Viimeisin muokkauspäivä
  • rating_adult — Aikuissisältö (yes/no)
  • video_link — YouTube-trailerin linkki
  • steam_link — Steam-kauppalinkki
  • gplay_link — Google Play -linkki
  • gplay_price — Google Play -hinta
  • appstore_link — App Store -linkki
  • appstore_price — App Store -hinta
  • epic_link — Epic Games -linkki
  • epic_price — Epic Games -hinta
  • itchio_link — Itch.io-linkki
  • source_link — Lähdekoodilinkki
  • system_requirements — Järjestelmävaatimukset
  • download_links — Latauslinkit (array)
  • game_links — Muut linkit (array)
  • licenses — Lisenssit (array)
  • platforms — Alustat (array)
  • developers — Kehittäjät (array)
  • publishers — Julkaisijat (array)
  • genres — Genret (array)
  • themes — Teemat (array)
  • locations — Paikkakunnat (array)
  • multiplayer_modes — Pelaajamuodot (array)

Lisenssi & datan omistajuus

SuomiGameHUB:in keräämä metadata (pelinimien, kategorioiden, linkkien organisointi) on CC0 1.0 Public Domain. Voit käyttää sitä vapaasti ja ilman rajoituksia.

MUTTA: Pelien omistajien sisältö (kuvat, trademarkit, kuvaukset, videonlinkit) kuuluu heille. Ennen kaupallista käyttöä tarkista alkuperäisen pelin sivusto ja omistajien luvat.

Käyttöesimerkkejä

cURL

curl "https://suomigamehub.com/wp-json/sgh/v1/pelit?status=Julkaistu&per_page=20"

cURL (haku genrellä)

# Hae toimintapelejä käyttäen genren nimeä
curl "https://suomigamehub.com/wp-json/sgh/v1/pelit?genre=toiminta&year_from=2023&per_page=10"

# Hae Super God -kehittäjän pelejä
curl "https://suomigamehub.com/wp-json/sgh/v1/pelit?developer=Super%20God"

# Useita filttereitä: toiminta- ja seikkailupelit Windowsille
curl "https://suomigamehub.com/wp-json/sgh/v1/pelit?genre=toiminta,seikkailu&platform=Windows"

JavaScript (fetch)

fetch('https://suomigamehub.com/wp-json/sgh/v1/pelit?status=Julkaistu&per_page=20')
  .then(response => response.json())
  .then(data => console.log(data));

Python

import requests

response = requests.get('https://suomigamehub.com/wp-json/sgh/v1/pelit', 
                        params={'status': 'Julkaistu', 'per_page': 20})
data = response.json()
print(data)

Muutoshistorian haku (Python)

import requests
from datetime import datetime, timedelta

# Hae pelin muutokset viimeiseltä viikolta
peli_id = 123
since = (datetime.now() - timedelta(days=7)).strftime('%Y-%m-%d')

response = requests.get(
    f'https://suomigamehub.com/wp-json/sgh/v1/pelit/{peli_id}/diff',
    params={'since': since}
)

diff_data = response.json()
if diff_data['success'] and diff_data['total_changes'] > 0:
    print(f"Peli '{diff_data['title']}' päivitetty:")
    for field, change in diff_data['changes'].items():
        print(f"  {field}: {change['old']} → {change['new']}")

Rajoitukset ja käyttöehdot

  • API on tarkoitettu vain tietojen lukemiseen — ei muokkaukseen tai poistamiseen.
  • Rate-limiting: maksimi 100 pyyntöä per minuutti per IP-osoite.
  • Kaistanleveys-raja: maksimi 10 MB per minuutti per IP-osoite.
  • Dump-tiedostojen latausrajoitus: 5 latausta per tunti per IP-osoite.
  • API-pyyntöjen tai dump-latausten väärinkäyttö voi johtaa IP-osoitteen estämiseen.
  • Suurille datamäärille suosittelemme viikoittaisten dump-tiedostojen käyttöä.
  • Datan käyttö on sallittua avoimesti.

Tuki ja palaute

Kysymykset ja palaute API:sta? Ota yhteyttä.

856.79