Green/Red/Flagger
API-DOKUMENTATION

Public API.

Read-only REST API. JSON-Antwort, CORS offen, 60 Anfragen pro Minute (pro Schlüssel). Um einen Schlüssel zu erstellen, gehe zu Einstellungen → API-Schlüssel.

Authentifizierung

Alle Anfragen erfordern einen Authorization-Header.

Authorization: Bearer grf_xxxxxxxxxxxxxxxxxxxxxx

Rate-Limit + CORS

Endpoints

GEThttps://greenredflagger.com/api/public/flags

Bestätigte Flaggen auflisten, filtern und sortieren.

Query-Parameter
sort - 'net' (Standard), 'total', 'controversial', 'newest'
category - CHARACTER, BEHAVIORAL, CULTURAL, RELATIONSHIP, ...
region - 'world' (region NULL), oder ISO-Code (TR, US, DE, ...)
dominant - 'red', 'green', 'yellow' (Achtung: Post-Filter)
limit - Standard 20, max 100
offset - Paginierung, Standard 0
Beispiel
curl -H "Authorization: Bearer grf_xxx..." \
  "https://greenredflagger.com/api/public/flags?sort=net&category=CHARACTER&limit=10"

{
  "count": 10,
  "sort": "net",
  "limit": 10,
  "offset": 0,
  "data": [
    {
      "id": "cln...",
      "slug": "yaslilara-saygi-gosteriyor",
      "category": "CHARACTER",
      "region": null,
      "text": {
        "tr": "Yaslilara saygi gosteriyor",
        "en": "Respects the elderly",
        "de": "Respektiert altere Menschen",
        "es": "Respeta a los mayores"
      },
      "votes": {
        "red": 4200,
        "green": 198400,
        "total": 202600,
        "net": -194200
      },
      "dominant": "green",
      "createdAt": "2026-05-25T..."
    }
  ]
}
GEThttps://greenredflagger.com/api/public/flag/[slug]

Eine einzelne Flagge, inklusive Beschreibung + Kontexte.

Beispiel
curl -H "Authorization: Bearer grf_xxx..." \
  "https://greenredflagger.com/api/public/flag/yaslilara-saygi-gosteriyor"

{
  "id": "cln...",
  "slug": "yaslilara-saygi-gosteriyor",
  "category": "CHARACTER",
  "region": null,
  "contexts": ["ROMANTIC", "FRIEND", "FAMILY"],
  "text": { "tr": "...", "en": "...", "de": "...", "es": "..." },
  "description": { "tr": null, "en": null, "de": null, "es": null },
  "votes": { "red": 4200, "green": 198400, "total": 202600, "net": -194200 },
  "dominant": "green",
  "createdAt": "2026-05-25T..."
}
GEThttps://greenredflagger.com/api/public/flag/[slug]/trend

Die tägliche Stimmen-Snapshot-Zeitreihe der Flagge (Rot/Grün/Netto über die Zeit). Zum Zeichnen eines Trend-Diagramms.

Query-Parameter
days - Anzahl Tage zurück, Standard 30, max 90
Beispiel
curl -H "Authorization: Bearer grf_xxx..." \
  "https://greenredflagger.com/api/public/flag/sigara-iciyor/trend?days=14"

{
  "slug": "sigara-iciyor",
  "days": 14,
  "count": 14,
  "current": { "red": 18000, "green": 2000, "total": 20000, "net": 16000 },
  "snapshots": [
    {
      "at": "2026-05-15T00:00:00.000Z",
      "red": 17200,
      "green": 1850,
      "total": 19050,
      "net": 15350
    },
    ...
  ]
}
GEThttps://greenredflagger.com/api/public/categories

Alle Kategorien + Anzahl bestätigter Flaggen.

Beispiel
curl -H "Authorization: Bearer grf_xxx..." \
  "https://greenredflagger.com/api/public/categories"

{
  "count": 8,
  "data": [
    { "slug": "character", "enum": "CHARACTER", "count": 73 },
    { "slug": "behavioral", "enum": "BEHAVIORAL", "count": 45 },
    ...
  ]
}
GEThttps://greenredflagger.com/api/public/regions

Alle Regionen + Anzahl bestätigter Flaggen. region NULL = 'world'.

Beispiel
curl -H "Authorization: Bearer grf_xxx..." \
  "https://greenredflagger.com/api/public/regions"

{
  "count": 12,
  "data": [
    { "code": null, "label": "world", "count": 240 },
    { "code": "TR", "label": "TR", "count": 32 },
    { "code": "DE", "label": "DE", "count": 12 },
    ...
  ]
}
GEThttps://greenredflagger.com/api/public/stats

Globale Statistik: Flag-/User-/Vote-Anzahl, 24h/7T/30T-Aktivität, Top 5 Kategorien.

Beispiel
curl -H "Authorization: Bearer grf_xxx..." \
  "https://greenredflagger.com/api/public/stats"

{
  "flags": {
    "total": 294,
    "redDominant": 115,
    "greenDominant": 179,
    "mixed": 0,
    "addedLast24h": 5
  },
  "users": { "total": 142 },
  "votes": {
    "total": 12450,
    "last24h": 240,
    "last7d": 1820,
    "last30d": 8200
  },
  "topCategories": [
    { "slug": "character", "enum": "CHARACTER", "count": 73 },
    ...
  ],
  "generatedAt": "2026-05-28T..."
}
GEThttps://greenredflagger.com/api/public/search

Volltextsuche (Postgres tsvector, 4 Sprachen unterstützt). 2+ Zeichen, Prefix-Match.

Query-Parameter
qrequired - Suchanfrage, mindestens 2 Zeichen
limit - Standard 20, max 50
Beispiel
curl -H "Authorization: Bearer grf_xxx..." \
  "https://greenredflagger.com/api/public/search?q=sigara&limit=5"

{
  "count": 3,
  "q": "sigara",
  "data": [
    {
      "id": "cln...",
      "slug": "sigara-iciyor",
      "category": "BEHAVIORAL",
      "region": null,
      "text": { "tr": "Sigara iciyor", "en": "Smokes", ... },
      "votes": { "red": 18000, "green": 2000, "total": 20000, "net": 16000 },
      "dominant": "red",
      "rank": 0.0759
    }
  ]
}

Fehlercodes

Diese API liefert von Nutzern bewertete Community-Daten. Der zurückgegebene Inhalt dient der Unterhaltung, keine wissenschaftlichen Daten. Die Nutzung mit Quellenangabe wird empfohlen; Schlüssel können bei Missbrauch widerrufen werden.