> ## Documentation Index
> Fetch the complete documentation index at: https://docs.querying.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# API de busca, posts e comentários do Reddit (REDDIT)

> Busque posts do Reddit, leia um post com a primeira página de comentários ou liste os posts mais recentes de um subreddit ou de um usuário.

`REDDIT` lê o Reddit público. Ele tem quatro modos, escolhidos pelo payload: busca (`query`), um post com seus comentários (`url`), o feed de um subreddit (`action: "feed"`) e os posts de um usuário (`action: "user_posts"`).

| | |
| - | - |
| `taskType` | `REDDIT` |
| Entrada | `query`, ou `url`, ou `action` (`feed`, `user_posts`); `subreddit`, `username`, `commentSort`, `commentMaxDepth`, `limit`, `country` |
| Créditos | 1 por tarefa |
| País | Padrão `US`. |
| Localização | Não suportada (`422 LOCATION_UNSUPPORTED`). |

## Buscar posts

```bash theme={"theme":"css-variables"}
curl -X POST https://api.querying.ai/v1/async/task \
  -H "Authorization: Bearer $QUERYING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "taskType": "REDDIT", "payload": { "query": "running shoes for flat feet", "subreddit": "RunningShoeGeeks" } }'
```

| Campo | Obrigatório | Descrição |
| - | - | - |
| `query` | Sim | A consulta de busca. `prompt` é aceito quando `query` está ausente. |
| `subreddit` | Não | Busca em um único subreddit: o nome sem `r/`, de 2 a 21 letras, dígitos ou sublinhados. |

A busca retorna até 25 posts. Por exemplo:

```json theme={"theme":"css-variables"}
{
  "results": [
    { "postId": "1uzk9m4", "title": "...", "url": "https://www.reddit.com/r/RunningShoeGeeks/comments/1uzk9m4/...", "subreddit": "RunningShoeGeeks", "preview": "..." }
  ]
}
```

`preview` é o início do texto do post, até 2.000 caracteres, quando o post tem texto. Um `results` vazio em uma tarefa concluída significa que o Reddit não encontrou nada.

## Ler um post e seus comentários

Envie a `url` de um post em vez de `query`:

```bash theme={"theme":"css-variables"}
curl -X POST https://api.querying.ai/v1/async/task \
  -H "Authorization: Bearer $QUERYING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "taskType": "REDDIT", "payload": { "url": "https://www.reddit.com/r/RunningShoeGeeks/comments/1uer62n/", "commentSort": "top", "commentMaxDepth": 1 } }'
```

| Campo | Obrigatório | Descrição |
| - | - | - |
| `url` | Sim | O endereço de um post do reddit.com: `https://www.reddit.com/r/{subreddit}/comments/{postId}/...`. Outros endereços retornam `422 VALIDATION_ERROR`. |
| `commentSort` | Não | `top`, `new`, `controversial`, `old` ou `qa`. Sem ele, vale a ordem padrão do próprio Reddit. |
| `commentMaxDepth` | Não | Descarta respostas mais profundas que isso, um inteiro de 0 a 100. `0` mantém só os comentários de primeiro nível. |

A tarefa lê o post com a primeira página de comentários, cerca de 20-25. Por exemplo:

```json theme={"theme":"css-variables"}
{
  "post": {
    "postId": "1uer62n", "title": "...", "body": "...", "author": "...", "subreddit": "RunningShoeGeeks",
    "score": 12, "upvoteRatio": 0.9, "commentCount": 48, "createdAt": "2026-06-24T21:51:21.586000+0000",
    "archived": false, "url": "https://www.reddit.com/r/RunningShoeGeeks/comments/1uer62n/..."
  },
  "comments": {
    "availableCount": 24,
    "returnedCount": 24,
    "items": [
      { "commentId": "otlz8m5", "author": "...", "body": "...", "score": 5, "depth": 0, "isSubmitter": false, "createdAt": "...", "url": "https://www.reddit.com/r/..." }
    ]
  }
}
```

| Campo | Descrição |
| - | - |
| `post.commentCount` | O total de comentários do post, como o Reddit o informa. Quando o Reddit não o informa, o número de comentários da página que foi lida. `comments` traz só essa página. |
| `post.archived` | Estimado pela idade do post; o Reddit bloqueia comentários depois de cerca de 180 dias. |
| `post.author`, `post.body` | `null` quando o Reddit não mostra nenhum (um autor excluído, um post de link). |
| `comments.items[].depth` | Profundidade da resposta; `0` é um comentário de primeiro nível. `parentId` aparece nas respostas. |
| `comments.items[].isSubmitter` | `true` quando o autor do post escreveu o comentário. |

> [!NOTE]
>
> Só a primeira página de comentários está disponível. `commentLimit`, que expande mais comentários, retorna `422 VALIDATION_ERROR` nos planos self-serve.

## Listar os posts mais recentes

| Payload | Retorna |
| - | - |
| `{ "action": "feed", "subreddit": "RunningShoeGeeks" }` | Os posts mais recentes do subreddit. Sem `subreddit`, r/popular. |
| `{ "action": "user_posts", "username": "example_user" }` | O que o usuário publicou. `username` tem de 3 a 20 letras, dígitos, sublinhados ou hífens. |

Ambos retornam `results` no formato da busca, até `limit` posts (padrão 25).

## Limites e erros

* `REDDIT` ignora `markdown`, `rawResponse` e `searchQueries`. Recusa `html` e `analysis` com `422` e `citationAnalysis` com `400`; veja [flags não suportadas](/pt/engines/response-options.md#flags-não-suportadas).
* Um `subreddit`, `username`, `url` ou `commentSort` inválido retorna `422 VALIDATION_ERROR`.
* Os demais erros de requisição estão em [Erros](/pt/concepts/errors.md).

## Relacionados

* [Web scrape](/pt/engines/web-scrape.md) para páginas fora do Reddit
* [Tarefas assíncronas](/pt/concepts/async-tasks.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.