← Terug naar o5o.nl

O5O.nl API Documentatie

Base URL: https://o5o.nl

Versie: 1.3.0

Overzicht

De O5O API is een eenvoudige REST API voor het laden van nieuwsartikelen. De API wordt gebruikt door de "Meer laden" functionaliteit op de website.

Endpoints

GET /api.php

Haalt nieuwsartikelen op van alle geconfigureerde bronnen.

Parameters

Parameter Type Required Beschrijving
displayed integer Ja Aantal items dat al getoond wordt (0-500)

Voorbeeld Request

curl "https://o5o.nl/api.php?displayed=24"

Success Response 200 OK

{
  "success": true,
  "items": [
    {
      "title": "Nieuwsartikel titel",
      "link": "https://bron.nl/artikel",
      "thumbnail": "https://bron.nl/image.jpg",
      "sourceId": "rtvnoord",
      "sourceLogo": "https://logo.png",
      "pubDate": "vrijdag, 10 oktober 21:22"
    }
  ],
  "hasMore": true,
  "total": 60,
  "displayed": 36
}

Response Fields

Veld Type Beschrijving
success boolean Of request geslaagd is
items array Array van nieuwsartikelen (max 12 items per request)
items[].title string Artikel titel (HTML escaped)
items[].link string URL naar het originele artikel
items[].thumbnail string URL van thumbnail afbeelding
items[].sourceId string Bron ID: sikkom, 112groningen, rtvnoord, oogtv
items[].sourceLogo string URL van bron logo
items[].pubDate string Gepubliceerde datum in Nederlands formaat
hasMore boolean Of er meer items zijn om te laden
total integer Totaal aantal beschikbare items
displayed integer Aantal items na deze response

Error Responses

400 Bad Request

{
  "success": false,
  "error": "Invalid displayed parameter. Must be between 0 and 500."
}

405 Method Not Allowed

{
  "success": false,
  "error": "Method not allowed. Use GET."
}

429 Too Many Requests

{
  "success": false,
  "error": "Rate limit exceeded. Please try again later.",
  "retry_after": 60
}

Rate Limiting

Limiet: 60 requests per minuut per IP adres

Bij overschrijding van de rate limit ontvang je een 429 Too Many Requests response.

Caching

Headers

Header Waarde
Content-Type application/json
Cache-Control public, max-age=60
ETag [md5 hash]
Vary Accept-Encoding

Nieuwsbronnen

Bron Source ID URL
Sikkom sikkom sikkom.nl
112Groningen 112groningen 112groningen.nl
RTV Noord rtvnoord rtvnoord.nl
OOG TV oogtv oogtv.nl

Performance

JavaScript Voorbeeld

async function loadMore(displayed) {
    try {
        const response = await fetch(`/api.php?displayed=${displayed}`);

        if (!response.ok) {
            throw new Error(`HTTP ${response.status}`);
        }

        const data = await response.json();

        if (!data.success) {
            throw new Error(data.error);
        }

        // Verwerk nieuwe items
        data.items.forEach(item => {
            console.log(item.title);
        });

        // Check of er meer items zijn
        if (!data.hasMore) {
            console.log('Geen items meer om te laden');
        }

    } catch (error) {
        console.error('API Error:', error);
    }
}

Versie: 1.3.0 | Laatste update: 11 oktober 2025