---
title: Payload
description: >-
  Leia uma coleção do Payload pela API REST com a fonte payload(), convertendo corpos de rich text do Lexical para Markdown sem precisar instalar nada.
---

O adaptador nativo `payload()` lê uma coleção pela API REST do Payload (`/api/<collection>`) e converte o corpo Lexical de cada documento para Markdown: parágrafos, títulos, listas com marcadores, numeradas e de verificação, citações, links, uploads e linhas horizontais. Um corpo armazenado em um campo de texto passa direto como Markdown. A exceção são links que não sejam endereços web, de e-mail, de telefone ou relativos, que mantêm só o rótulo. Não precisa instalar nada.

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

A chave de API vem da variável de ambiente `PAYLOAD_API_KEY` e é enviada como `users API-Key <key>`. Defina `authCollection` quando a chave pertencer a outra coleção com autenticação habilitada. Só documentos publicados são importados: `--preview` busca também os rascunhos e os inclui marcados com `draft: true`. Os documentos são buscados com `depth: 1` para que os uploads tragam suas URLs, e um caminho de upload relativo (`/media/x.png`) é resolvido em relação a `url`. Quando você cria `payloadSource` diretamente e o passa para [`custom()`](/pt/docs/content/sources/custom), um nó `block` ou `inlineBlock` é mapeado para um componente do Blume pela opção `serializers` do engine, usando o `blockType` como chave. Definir `serializers` faz a fonte gravar suas páginas como MDX para que os componentes retornados sejam renderizados. Um corpo armazenado em um campo de texto Markdown continua sendo Markdown.
