---
title: Payload
description: >-
  payload() ソースを使って Payload コレクションを REST API 経由で読み込み、Lexical リッチテキストの本文を Markdown に変換します。インストールは不要です。
---

組み込みの `payload()` アダプターは、Payload REST API（`/api/<collection>`）を通じてコレクションを読み込み、各ドキュメントの Lexical 本文を Markdown に変換します。変換の対象は、段落、見出し、箇条書き・番号付きリスト・チェックリスト、引用、リンク、アップロード、水平線です。テキストフィールドに格納された本文は Markdown としてそのまま渡されます。ただし、Web、メール、電話、相対アドレスのいずれでもないリンクは、ラベルのみが残ります。インストールは不要です。

```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" },
      }),
    ],
  },
});
```

API キーは `PAYLOAD_API_KEY` 環境変数から読み込まれ、`users API-Key <key>` として送信されます。キーが別の認証対応コレクションに属している場合は、`authCollection` を設定してください。インポートされるのは公開済みのドキュメントのみです。`--preview` を指定すると下書きをリクエストし、`draft: true` を付けてステージングします。ドキュメントは `depth: 1` で取得されるため、アップロードには URL が含まれます。また、相対的なアップロードパス（`/media/x.png`）は `url` を基準に解決されます。`payloadSource` を直接構築して [`custom()`](/ja/docs/content/sources/custom) に渡す場合は、エンジンの `serializers` オプションを使って、`block` または `inlineBlock` ノードを `blockType` をキーとして Blume コンポーネントにマッピングできます。`serializers` を設定すると、返されたコンポーネントがレンダリングされるように、ソースのページは MDX として書き出されます。なお、Markdown テキストフィールドに格納された本文は Markdown のままです。
