# API

> Mit der API fragst du Hersteller, Produkte und Einträge als JSON ab. Für eigene Werkzeuge, Auswertungen und Abläufe.

## API-Schlüssel

Im Moment brauchst du keinen Schlüssel und keine Anmeldung. Schlüssel kommen mit dem Konto. Wie du ihn mitschickst, steht hier, sobald es so weit ist.

## Credits

Mit den Schlüsseln kommen Credits: ein Monatskontingent, das API, MCP und Kommandozeile gemeinsam nutzen. Bis dahin zählen wir nichts. Mehr unter [API-Credits](https://updatefeed.de/doku/api-credits).

## Grundlagen

- Alle Adressen beginnen mit `https://updatefeed.de/api/v1`.
- Antworten sind JSON, die Feldnamen in camelCase.
- Ein Datum ist ein reines Datum im Format JJJJ-MM-TT.
- Antworten dürfen zehn Minuten zwischengespeichert werden.

## Endpunkte

### Hersteller und Produkte suchen

```
https://updatefeed.de/api/v1/search
```

Sucht Hersteller und Produkte nach Name. Damit findest du den `slug`, den die anderen Endpunkte brauchen.

| Parameter | Typ | Bedeutung |
| --- | --- | --- |
| `q` | Text, Pflicht | Suchbegriff, höchstens 200 Zeichen |
| `limit` | Zahl | Treffer je Art, Standard 20, höchstens 100 |

```
curl -s "https://updatefeed.de/api/v1/search?q=notion&limit=3"
```

```
{
  "vendors": [
    {
      "name": "Notion",
      "slug": "notion",
      "website": null
    }
  ],
  "products": [
    {
      "name": "Allgemein",
      "slug": "notion",
      "isGeneral": true,
      "vendor": {
        "name": "Notion",
        "slug": "notion"
      }
    },
    {
      "name": "Notion Developers",
      "slug": "notion-developers",
      "isGeneral": false,
      "vendor": {
        "name": "Notion",
        "slug": "notion"
      }
    }
  ]
}
```

### Einträge abrufen

```
https://updatefeed.de/api/v1/releases
```

Die Einträge aller Hersteller oder eines Herstellers oder Produkts, das neueste Datum zuerst.

| Parameter | Typ | Bedeutung |
| --- | --- | --- |
| `vendorSlug` | Text | Hersteller, z. B. `anthropic` |
| `productSlug` | Text | Produkt, z. B. `claude-code`; nur zusammen mit `vendorSlug` |
| `limit` | Zahl | Anzahl, Standard 20, höchstens 100 |
| `offset` | Zahl | Einträge überspringen, Standard 0, höchstens 10000 |
| `before` | Datum | nur Einträge vor diesem Tag, der Tag selbst zählt nicht mit |
| `since` | Datum | nur Einträge ab diesem Tag, der Tag selbst zählt mit |

```
curl -s "https://updatefeed.de/api/v1/releases?vendorSlug=anthropic&limit=1"
```

```
{
  "total": 625,
  "limit": 1,
  "offset": 0,
  "releases": [
    {
      "id": 1348,
      "slug": "we-just-launched-claude-fable-5-1-and-claude-mythos-5-1-the-world-s-most-advance-1348",
      "titleDe": "Claude Fable 5.1 und Mythos 5.1 (Version 5.1) gestartet",
      "summaryDe": "Anthropic hat Claude Fable 5.1 und Claude Mythos 5.1 (Version 5.1) veröffentlicht, die als fortschrittlichste Modelle für Coding und Wissensarbeit beschrieben werden.",
      "title": "We just launched Claude Fable 5.1 and Claude Mythos 5.1, the world’s most advanced models for coding and knowledge work. For more information, see our blog post: **Claude Fable 5.1 and Mythos 5.1**.",
      "originalUrl": "https://support.anthropic.com/en/articles/12138966-release-notes",
      "version": "5.1",
      "date": "2026-10-06",
      "firstSeenDate": "2026-10-06",
      "tags": [
        "neue modelle",
        "ki",
        "coding"
      ],
      "vendor": {
        "name": "Anthropic",
        "slug": "anthropic"
      },
      "product": {
        "name": "Claude",
        "slug": "claude",
        "isGeneral": false
      }
    }
  ]
}
```

`total` ist die Zahl aller passenden Einträge. Zum Weiterblättern erhöhst du `offset` um `limit`, bis `offset` größer oder gleich `total` ist.

### In Einträgen suchen

```
https://updatefeed.de/api/v1/releases/search
```

Volltextsuche über Originaltitel, deutschen Titel, Kurzfassung und Auszug, über alle Hersteller. Die besten Treffer zuerst.

| Parameter | Typ | Bedeutung |
| --- | --- | --- |
| `q` | Text, Pflicht | Suchbegriff, höchstens 200 Zeichen |
| `limit` | Zahl | Anzahl, Standard 20, höchstens 100 |
| `offset` | Zahl | Treffer überspringen, Standard 0, höchstens 10000 |

```
curl -s "https://updatefeed.de/api/v1/releases/search?q=dark%20mode&limit=1"
```

```
{
  "limit": 1,
  "offset": 0,
  "releases": [
    {
      "id": 32766,
      "slug": "dark-mode-in-the-retail-app-32766",
      "titleDe": "Dark Mode in der Retail-App",
      "summaryDe": "Die Square-for-Retail-App folgt der Darstellungseinstellung des Geräts und bietet zusätzlich eine Dark-Mode-Option, um die App unabhängig davon hell oder dunkel zu halten.",
      "title": "Dark mode in the Retail app",
      "originalUrl": "https://squareup.com/us/en/feature-log",
      "version": null,
      "date": "2026-10-05",
      "firstSeenDate": "2026-10-05",
      "tags": [
        "neue funktion",
        "dark mode",
        "retail"
      ],
      "vendor": {
        "name": "Square",
        "slug": "square"
      },
      "product": {
        "name": "Allgemein",
        "slug": "square",
        "isGeneral": true
      }
    }
  ]
}
```

### Nach Bedeutung suchen

```
https://updatefeed.de/api/v1/releases/semantic
```

Findet Einträge, die dasselbe meinen, auch wenn andere Wörter darin stehen. Eine deutsche Anfrage findet so auch englische Einträge. Jeder Treffer hat zusätzlich `score` (1 bedeutet gleich).

| Parameter | Typ | Bedeutung |
| --- | --- | --- |
| `q` | Text, Pflicht | Suchanfrage, höchstens 200 Zeichen |
| `limit` | Zahl | Anzahl, Standard 20, höchstens 100 |

```
curl -s "https://updatefeed.de/api/v1/releases/semantic?q=Kontextfenster%20vergr%C3%B6%C3%9Fert&limit=5"
```

Die Antwort hat dieselbe Form wie bei der Volltextsuche, ohne `offset`, dafür mit `score` je Eintrag.

### Katalog

```
https://updatefeed.de/api/v1/all
```

Alle Hersteller mit ihren Produkten und der Zahl der Einträge. Ohne Parameter.

```
curl -s "https://updatefeed.de/api/v1/all"
```

```
{
  "vendors": [
    {
      "name": "Notion",
      "slug": "notion",
      "website": null,
      "releaseCount": 43,
      "products": [
        {
          "name": "Allgemein",
          "slug": "notion",
          "isGeneral": true,
          "releaseCount": 14
        },
        {
          "name": "Notion Developers",
          "slug": "notion-developers",
          "isGeneral": false,
          "releaseCount": 29
        }
      ]
    }
  ]
}
```

## Felder eines Eintrags

| Feld | Inhalt |
| --- | --- |
| `id`, `slug` | Kennung und Kurzname des Eintrags |
| `titleDe` | deutscher Titel, sonst der Originaltitel |
| `summaryDe` | deutsche Kurzfassung |
| `title` | Originaltitel |
| `originalUrl` | Link zur Originalquelle |
| `version` | Versionsnummer, wenn bekannt |
| `date` | Datum aus der Quelle (oder, wenn dort keins steht, aus dem Text des Eintrags oder dem GitHub-Release), sonst der Tag der ersten Sichtung (UTC). `null`, wenn der Eintrag aus dem ersten Abruf seiner Quelle stammt und kein Datum nennt |
| `firstSeenDate` | Tag der ersten Sichtung (UTC), den gibt es immer |
| `tags` | Schlagwörter |
| `vendor`, `product` | Hersteller und Produkt; `isGeneral` kennzeichnet das Sammelprodukt „Allgemein“ |

## Fehler

Fehler kommen als `{"error": "…"}` mit deutscher Meldung.

| Status | Bedeutung |
| --- | --- |
| 400 | Parameter fehlt oder ist ungültig |
| 404 | Hersteller oder Produkt unbekannt |
| 503 | Bedeutungssuche gerade nicht erreichbar |

## Fragen?

Schreib uns an [hallo@updatefeed.de](https://updatefeed.de/kontakt).

## Weitere Seiten der Doku

- [Erste Schritte](https://updatefeed.de/doku.md)
- [E-Mail](https://updatefeed.de/doku/e-mail.md) (folgt)
- [RSS](https://updatefeed.de/doku/rss.md)
- [CLI](https://updatefeed.de/doku/cli.md) (folgt)
- [MCP](https://updatefeed.de/doku/mcp.md) (folgt)
- [JSON](https://updatefeed.de/doku/json.md) (folgt)
- [CSV](https://updatefeed.de/doku/csv.md) (folgt)
- [API-Credits](https://updatefeed.de/doku/api-credits.md) (folgt)
- [Konzepte](https://updatefeed.de/doku/konzepte.md)
