The Reddit source collects posts from Reddit as part of a Data Stream.
Datastreamer selects from available providers automatically based on your Job configuration. You do not need to manage provider accounts or credentials to use this source.
API data_source: reddit_auto
Configuring a Job
The query type decides how a Reddit Job searches: across the whole platform, from one account, or inside one community. Each Job uses one query type, set in query.query_type (the Query Type field on the Portal's New Job form), with query.platform set to reddit. To cover more than one, create a Job for each.
- Search by topic.
keywordfinds posts that mention your terms anywhere on Reddit. - Follow an account.
usercollects posts from one account. - Follow a community.
subredditcollects posts from one subreddit. - Search inside a community.
keywordsrruns a keyword search inside one subreddit;usersrcollects one user's posts inside one subreddit. - Full control.
advancedtakes a Lucene query, so you can combine terms and search specific fields. See Advanced Search Query.
Query types
| Query Type (Portal) | query_type | Fields | Notes |
|---|---|---|---|
| Posts by keyword | keyword | query | Keyword to search for across Reddit. |
| Posts by user | user | query | The Reddit user without the u/ prefix. Example: spez. |
| Posts by sub-reddit | subreddit | subreddit | The subreddit name without the r/ prefix. Example: technology. |
| Posts by keyword/sub-reddit | keywordsr | query, subreddit | Keyword search within one subreddit. |
| Posts by user/sub-reddit | usersr | query, subreddit | Posts by one user within one subreddit. query is the username without u/. |
| Advanced Search Query | advanced | query | Lucene query over unified schema fields. See Advanced Search Query. |
The query object for each type:
{"platform": "reddit", "query_type": "keyword", "query": "electric vehicles"}
{"platform": "reddit", "query_type": "user", "query": "spez"}
{"platform": "reddit", "query_type": "subreddit", "subreddit": "technology"}
{"platform": "reddit", "query_type": "keywordsr", "query": "charging", "subreddit": "technology"}
{"platform": "reddit", "query_type": "usersr", "query": "spez", "subreddit": "technology"}
{"platform": "reddit", "query_type": "advanced", "query": "(charging OR battery) AND NOT tesla"}Job options
| Field | Description |
|---|---|
query.prioritization | freshness favors newer documents; coverage favors collecting a greater volume. See Freshness or Coverage. |
job_type | onetime runs once over a date range; periodic runs on a schedule. |
query_from, query_to | One-time Jobs only. Start and end of the date range, in ISO 8601 format. Both are required. |
max_documents | Optional. Maximum documents to return. This is a soft limit: because pipelines are asynchronous, a few more documents may be returned. |
label, tags | Optional. A label for grouping Jobs, and tags for filtering. |
Advanced Search Query
The advanced query type takes a Lucene query in query.query. You can search any field in the Datastreamer unified schema; a term without a field searches content.body.
{ "platform": "reddit", "query_type": "advanced", "query": "(\"electric vehicle\" OR ev) AND content.hashtags:charging" }Do not put dates in the query. Set the date range with query_from and query_to on the Job instead.
See the Schema Reference for field names.
Example Job request
curl --request POST \
--url 'https://api.platform.datastreamer.io/api/pipelines/{PIPELINE_ID}/components/{COMPONENT_ID}/jobs?ready=true' \
--header 'apikey: <your-api-key>' \
--header 'Content-Type: application/json' \
--data '{
"job_name": "reddit-example",
"component_name": "reddit-auto",
"query": {
"platform": "reddit",
"query_type": "keywordsr",
"query": "charging",
"subreddit": "technology",
"prioritization": "coverage"
},
"data_source": "reddit_auto",
"job_type": "onetime",
"query_from": "2026-10-01T00:00:00Z",
"query_to": "2026-10-02T00:00:00Z",
"max_documents": 1000
}'Refer to the Job creation documentation for full configuration details: Creating Jobs
API Reference: Create a Job
What is Collected
Each document returned from the Reddit source represents a post. Fields are mapped to the Datastreamer unified schema and include content text, author metadata, engagement metrics (upvotes, comments, awards), post date, and subreddit information.
Platform-specific fields are available under the reddit and subreddit schema namespaces. See the Schema Reference for field details.
Troubleshooting
Job fails or returns no data
- Check that the subreddit or keyword query is valid
- Verify the date range contains data
- Review Job logs for specific errors
Unexpectedly high document counts
- Scope the query to specific subreddits rather than all of Reddit
- Set a document limit on the Job
- Review the DVU pricing page
Provider switch noted in Job logs
- This is expected behavior. If a provider is unavailable, the Job is routed to an alternative automatically. No action is required.
Related
- Sources Overview
- Creating Jobs
- Data Volume Units
- Direct Integrations: use if you need a specific provider directly
Updated 12 days ago
