πŸš€ More Vendrato tools: FunnelDupe β€’ GHL Utils
πŸ“±

Reddit - Search Posts

n8n-nodes-base.httpRequest

Search for posts across Reddit or within a specific subreddit. No authentication required.

reddit social-media search monitoring json-api
App Reddit
Category data processing
Version 1.0.0
Author Community

πŸ’‘ Use Cases

πŸ“š API Documentation

Reference documentation for this API endpoint:

πŸ”— https://www.reddit.com/dev/api/ β†—

πŸ“‹ Node Configuration

{
  "nodes": [
    {
      "parameters": {
        "content": "## πŸ“± Search Reddit Posts\n\nSearch for posts across all of Reddit or within a specific subreddit.\n\n**Required Parameters:**\n- `query`: Search query string\n\n**Optional Parameters:**\n- `subreddit`: Limit search to specific subreddit (leave empty for all Reddit)\n- `sort`: Sort by - relevance, hot, top, new, comments (default: relevance)\n- `time`: Time filter - hour, day, week, month, year, all (default: all)\n- `limit`: Number of results (default: 25, max: 100)\n\n**No Authentication Needed:**\nUses Reddit's public JSON API.",
        "height": 238,
        "width": 389,
        "color": 4
      },
      "id": "sticky-reddit-search-001",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        96,
        332
      ]
    },
    {
      "parameters": {
        "method": "GET",
        "url": "=https://www.reddit.com/{{ $json.subreddit ? 'r/' + $json.subreddit + '/' : '' }}search.json?q={{ encodeURIComponent($json.query) }}&sort={{ $json.sort || 'relevance' }}&t={{ $json.time || 'all' }}&limit={{ $json.limit || 25 }}&restrict_sr={{ $json.subreddit ? 'true' : 'false' }}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "User-Agent",
              "value": "n8n-workflow-automation/1.0"
            }
          ]
        },
        "options": {
          "response": {
            "response": {
              "responseFormat": "json",
              "fullResponse": false
            }
          }
        }
      },
      "id": "reddit-search-001",
      "name": "Search Reddit Posts",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [
        368,
        400
      ]
    },
    {
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "// Extract and format Reddit search results\nconst posts = $input.item.json.data.children;\n\nconst formatted = posts.map(post => {\n  const data = post.data;\n  return {\n    title: data.title,\n    author: data.author,\n    subreddit: data.subreddit,\n    score: data.score,\n    url: `https://reddit.com${data.permalink}`,\n    created: new Date(data.created_utc * 1000).toISOString(),\n    numComments: data.num_comments,\n    thumbnail: data.thumbnail,\n    selftext: data.selftext || '',\n    flair: data.link_flair_text || 'None',\n    isVideo: data.is_video\n  };\n});\n\nreturn formatted.map(item => ({ json: item }));"
      },
      "id": "reddit-search-transform-001",
      "name": "Transform Reddit Data",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        550,
        400
      ]
    }
  ],
  "connections": {
    "Search Reddit Posts": {
      "main": [
        [
          {
            "node": "Transform Reddit Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {}
}
[
  {
    "id": "7c25cbd3-246c-4b46-891d-ed33440e9fad",
    "meta": {
      "name": "API Call Node",
      "id": "api-call",
      "icon": {
        "svg": "",
        "type": "SVG"
      },
      "description": "## πŸ“± Search Reddit Posts  Search for posts across all of Reddit or within a specific subreddit."
    },
    "label": "Search Reddit Posts",
    "dependencies": {
      "node-fetch": "3.3.2"
    },
    "script": "import fetch from \"node-fetch\";\nexport default async function apiCall({\n    url,\n    method,\n    contentType,\n    authorization,\n    body,\n    shouldAwait,\n    queryParams,\n    customHeaders\n}: NodeInputs, {\n    logging\n}: NodeScriptOptions) : NodeOutput  {\n    const headers = {\n        \"Content-Type\": contentType,\n        ...customHeaders\n    };\n    if (authorization) headers[\"Authorization\"] = authorization;\n\n    let queryParamsString = '';\n    if (queryParams) {\n        queryParamsString = '?' + new URLSearchParams(queryParams).toString();\n    }\n\n    const fetchOptions = {\n        method,\n        headers\n    };\n\n    if (method !== 'GET') {\n        fetchOptions.body = JSON.stringify(body);\n    }\n\n    const fetchPromise = fetch(url + queryParamsString, fetchOptions);\n\n    if (!shouldAwait) {\n        return {\n            data: null\n        };\n    }\n\n    const response = await fetchPromise;\n    const data = await response.json();\n    return {\n        status: response.status,\n        data\n    };\n}",
    "inputs": {
      "properties": {
        "method": {
          "type": "string",
          "description": "The HTTP method to use for the API call",
          "enum": [
            "GET",
            "POST",
            "PUT",
            "DELETE",
            "PATCH"
          ],
          "default": "GET",
          "title": "HTTP Method",
          "buildship": {
            "options": [
              {
                "label": "GET",
                "value": "GET"
              },
              {
                "value": "POST",
                "label": "POST"
              },
              {
                "value": "PUT",
                "label": "PUT"
              },
              {
                "label": "DELETE",
                "value": "DELETE"
              },
              {
                "label": "PATCH",
                "value": "PATCH"
              }
            ],
            "index": 0,
            "sensitive": false
          }
        },
        "url": {
          "description": "The URL of the API endpoint",
          "title": "URL",
          "type": "string",
          "buildship": {
            "index": 1
          }
        },
        "authorization": {
          "description": "The authorization header for the API call, if required (e.g., Bearer or Basic token)",
          "type": "string",
          "title": "Authorization",
          "buildship": {
            "sensitive": true,
            "index": 2
          }
        },
        "queryParams": {
          "default": {},
          "description": "The query parameters for the API call",
          "type": "object",
          "title": "Query Parameters",
          "buildship": {
            "index": 3,
            "sensitive": false
          }
        },
        "body": {
          "type": "object",
          "buildship": {
            "index": 4
          },
          "description": "The body to send with the API call",
          "title": "Body"
        },
        "contentType": {
          "enum": [
            "application/json",
            "application/x-www-form-urlencoded",
            "multipart/form-data",
            "text/plain"
          ],
          "description": "The content type of the API call",
          "title": "Content Type",
          "buildship": {
            "index": 5,
            "options": [
              {
                "label": "application/json",
                "value": "application/json"
              },
              {
                "value": "application/x-www-form-urlencoded",
                "label": "application/x-www-form-urlencoded"
              },
              {
                "label": "multipart/form-data",
                "value": "multipart/form-data"
              },
              {
                "label": "text/plain",
                "value": "text/plain"
              }
            ]
          },
          "type": "string"
        },
        "shouldAwait": {
          "description": "Whether to wait for the request to complete or not",
          "title": "Await?",
          "type": "boolean",
          "buildship": {
            "sensitive": false,
            "index": 6
          }
        },
        "customHeaders": {
          "type": "object",
          "description": "Additional custom headers for the API call",
          "title": "Custom Headers",
          "buildship": {
            "index": 7,
            "sensitive": false
          }
        }
      },
      "type": "object",
      "required": [
        "url",
        "shouldAwait",
        "method"
      ]
    },
    "integrations": [],
    "name": "API Call Node",
    "output": {
      "buildship": {},
      "properties": {
        "status": {
          "buildship": {
            "index": 0
          },
          "type": "number",
          "description": "The HTTP status of the API response",
          "title": "Status"
        },
        "data": {
          "buildship": {
            "index": 1
          },
          "title": "Data",
          "type": "object",
          "description": "The data object from the API response"
        }
      },
      "type": "object"
    },
    "isCollapsed": false,
    "type": "script",
    "values": {
      "method": "GET",
      "url": {
        "_$expression_": "`https://www.reddit.com/{{ $json.subreddit ? 'r/' + $json.subreddit + '/' : '' }}search.json?q={{ encodeURIComponent($json.query) }}&sort={{ $json.sort || 'relevance' }}&t={{ $json.time || 'all' }}&limit={{ $json.limit || 25 }}&restrict_sr={{ $json.subreddit ? 'true' : 'false' }}`",
        "type": "javascript",
        "hasErrors": false
      },
      "authorization": null,
      "queryParams": {},
      "body": {},
      "contentType": "application/json",
      "shouldAwait": true,
      "customHeaders": {
        "User-Agent": "n8n-workflow-automation/1.0"
      }
    }
  }
]
{
  "subflows": [
    {
      "flow": [
        {
          "id": 445,
          "module": "http:ActionSendDataBasicAuth",
          "version": 3,
          "parameters": {
            "key": "ANONYMIZED_CREDENTIALS",
            "handleErrors": false,
            "useNewZLibDeCompress": true
          },
          "mapper": {
            "ca": "",
            "qs": [],
            "url": "https://www.reddit.com/{{ $json.subreddit ? 'r/' + $json.subreddit + '/' : '' }}search.json?q={{ encodeURIComponent($json.query) }}&sort={{ $json.sort || 'relevance' }}&t={{ $json.time || 'all' }}&limit={{ $json.limit || 25 }}&restrict_sr={{ $json.subreddit ? 'true' : 'false' }}",
            "data": "",
            "gzip": true,
            "method": "get",
            "headers": [
              {
                "name": "User-Agent",
                "value": "n8n-workflow-automation/1.0"
              }
            ],
            "timeout": "",
            "useMtls": false,
            "bodyType": "raw",
            "contentType": "application/json",
            "serializeUrl": false,
            "shareCookies": false,
            "parseResponse": true,
            "followRedirect": true,
            "useQuerystring": false,
            "followAllRedirects": false,
            "rejectUnauthorized": true
          },
          "metadata": {
            "designer": {
              "x": 300,
              "y": 300,
              "name": "Search Reddit Posts"
            },
            "restore": {
              "expect": {
                "qs": {
                  "mode": "chose",
                  "items": []
                },
                "method": {
                  "mode": "chose",
                  "label": "GET"
                },
                "headers": {
                  "mode": "chose",
                  "items": [
                    null
                  ]
                },
                "bodyType": {
                  "label": "Raw"
                },
                "contentType": {
                  "label": "JSON (application/json)"
                }
              },
              "parameters": {
                "key": {
                  "label": "ANONYMIZED_CREDENTIALS"
                }
              }
            },
            "parameters": [
              {
                "name": "key",
                "type": "keychain:basicauth",
                "label": "Credentials",
                "required": true
              },
              {
                "name": "handleErrors",
                "type": "boolean",
                "label": "Evaluate all states as errors (except for 2xx and 3xx )",
                "required": true
              },
              {
                "name": "useNewZLibDeCompress",
                "type": "hidden"
              }
            ],
            "expect": [
              {
                "name": "url",
                "type": "url",
                "label": "URL",
                "required": true
              },
              {
                "name": "serializeUrl",
                "type": "boolean",
                "label": "Serialize URL",
                "required": true
              },
              {
                "name": "method",
                "type": "select",
                "label": "Method",
                "required": true,
                "validate": {
                  "enum": [
                    "get",
                    "head",
                    "post",
                    "put",
                    "patch",
                    "delete",
                    "options"
                  ]
                }
              },
              {
                "name": "headers",
                "spec": [
                  {
                    "name": "name",
                    "type": "text",
                    "label": "Name",
                    "required": true
                  },
                  {
                    "name": "value",
                    "type": "text",
                    "label": "Value"
                  }
                ],
                "type": "array",
                "label": "Headers"
              },
              {
                "name": "qs",
                "spec": [
                  {
                    "name": "name",
                    "type": "text",
                    "label": "Name",
                    "required": true
                  },
                  {
                    "name": "value",
                    "type": "text",
                    "label": "Value"
                  }
                ],
                "type": "array",
                "label": "Query String"
              },
              {
                "name": "bodyType",
                "type": "select",
                "label": "Body type",
                "validate": {
                  "enum": [
                    "raw",
                    "x_www_form_urlencoded",
                    "multipart_form_data"
                  ]
                }
              },
              {
                "name": "parseResponse",
                "type": "boolean",
                "label": "Parse response",
                "required": true
              },
              {
                "name": "contentType",
                "type": "select",
                "label": "Content type",
                "validate": {
                  "enum": [
                    "text/plain",
                    "application/json",
                    "application/xml",
                    "text/xml",
                    "text/html",
                    "custom"
                  ]
                }
              },
              {
                "name": "data",
                "type": "buffer",
                "label": "Request content"
              }
            ]
          }
        }
      ]
    }
  ],
  "metadata": {
    "version": 1
  }
}
← Browse all nodes