---
title: Payload
description: >-
  Lies eine Payload-Collection mit der payload()-Quelle über ihre REST-API ein und wandle Lexical-Rich-Text-Inhalte in Markdown um. Du musst dafür nichts installieren.
---

Der integrierte `payload()`-Adapter liest eine Collection über die Payload-REST-API (`/api/<collection>`) und wandelt den Lexical-Body jedes Dokuments in Markdown um: Absätze, Überschriften, Aufzählungs-, nummerierte und Checklisten, Zitate, Links, Uploads und horizontale Linien. Ein Body in einem Textfeld wird unverändert als Markdown übernommen. Nur bei einem Link, der keine Web-, Mail-, Telefon- oder relative Adresse ist, bleibt allein die Beschriftung erhalten. Du musst nichts installieren.

```ts blume.config.ts
import { defineConfig } from "blume";
import { filesystem, payload } from "blume/sources";

export default defineConfig({
  content: {
    sources: [
      filesystem({ root: "docs" }),
      payload({
        prefix: "handbook",
        url: "https://cms.example.com",
        collection: "docs",
        // Field paths default to title / description / slug / content / updatedAt
        fields: { body: "richText" },
        // Extra query parameters: where[...], sort
        params: { sort: "title" },
      }),
    ],
  },
});
```

Der API-Schlüssel kommt aus der Umgebungsvariable `PAYLOAD_API_KEY` und wird als `users API-Key <key>` gesendet. Setze `authCollection`, wenn der Schlüssel zu einer anderen Collection mit aktivierter Authentifizierung gehört. Importiert werden nur veröffentlichte Dokumente. Mit `--preview` werden auch Entwürfe abgefragt und mit `draft: true` bereitgestellt. Dokumente werden mit `depth: 1` abgerufen, damit Uploads ihre URLs mitbringen. Ein relativer Upload-Pfad (`/media/x.png`) wird relativ zu `url` aufgelöst. Ein `block`- oder `inlineBlock`-Knoten wird über die `serializers`-Option der Engine einer Blume-Komponente zugeordnet. Der Schlüssel dafür ist `blockType`. Das funktioniert, wenn du `payloadSource` direkt erstellst und an [`custom()`](/de/docs/content/sources/custom) übergibst. Wenn du `serializers` setzt, werden die Seiten der Quelle als MDX geschrieben, damit die zurückgegebenen Komponenten gerendert werden. Ein Body in einem Markdown-Textfeld bleibt Markdown.
