← Reddit

Submit a Post with Reddit API

Pipedream makes it easy to connect APIs for Reddit and 800+ other apps remarkably fast.

Trigger workflow on
HTTP requests, schedules and app events
Next, do this
Submit a Post with the Reddit API
No credit card required
Into to Pipedream
Watch us build a workflow
Watch us build a workflow
7 min
Watch now ➜
Trusted by 250,000+ developers from startups to Fortune 500 companies:
Trusted by 250,000+ developers from startups to Fortune 500 companies

Developers Pipedream

Getting Started

Create a workflow to Submit a Post with the Reddit API. When you configure and deploy the workflow, it will run on Pipedream's servers 24x7 for free.

  1. Configure the Submit a Post action
    1. Connect your Reddit account
    2. Select a Subreddit
    3. Configure Title
    4. Select a Kind
    5. Optional- Configure Text
    6. Optional- Configure URL
    7. Optional- Configure Spoiler
    8. Optional- Configure Send Replies
    9. Optional- Configure Not Safe For Work
    10. Optional- Configure Event Start
    11. Optional- Configure Event End
    12. Optional- Select a Event Timezone
  2. Select a trigger to run your workflow on HTTP requests, schedules or app events
  3. Deploy the workflow
  4. Send a test event to validate your setup
  5. Turn on the trigger

Details

This is a pre-built, open source component from Pipedream's GitHub repo. The component is developed by Pipedream and the community, and verified and maintained by Pipedream.

To contribute an update to an existing component or create a new component, create a PR on GitHub. If you're new to Pipedream component development, you can start with quickstarts for trigger span and action development, and then review the component API reference.

Submit a Post on Reddit
Description:Create a post to a subreddit. [See the docs here](https://www.reddit.com/dev/api/#POST_api_submit)
Version:0.0.1
Key:reddit-submit-a-post

Code

import { axios } from "@pipedream/platform";
import reddit from "../../reddit.app.mjs";
import tzs from "../../pytz-timezones.mjs";

export default {
  type: "action",
  key: "reddit-submit-a-post",
  version: "0.0.1",
  name: "Submit a Post",
  description: "Create a post to a subreddit. [See the docs here](https://www.reddit.com/dev/api/#POST_api_submit)",
  props: {
    reddit,
    subreddit: {
      propDefinition: [
        reddit,
        "subreddit",
      ],
      description: "Type to search for a subreddit or enter a subreddit display name as a custom expression (for example, `happycowgifs`).",
    },
    title: {
      type: "string",
      label: "Title",
      description: "The title of your post",
    },
    kind: {
      type: "string",
      label: "Kind",
      description: "Post type",
      options: [
        "link",
        "self",
        "image",
      ],
    },
    text: {
      type: "string",
      label: "Text",
      description: "The content your post. Applicable if **Kind** is `self`",
      optional: true,
    },
    url: {
      type: "string",
      label: "URL",
      description: "The URL to be shared in your post. Applicable if **Kind** is `image` or `link`",
      optional: true,
    },
    spoiler: {
      type: "boolean",
      label: "Spoiler",
      description: "Default to `false`. Flag it as `true` if your post contains some spoiler.",
      optional: true,
    },
    sendReplies: {
      type: "boolean",
      label: "Send Replies",
      description: "Default to `true`. If `true`, you will receive email notification if your post has some reply.",
      optional: true,
    },
    nsfw: {
      type: "boolean",
      label: "Not Safe For Work",
      description: "Default to `false`. If your post is not safe for work (+18), please, set `true` for this field.",
      optional: true,
    },
    eventStart: {
      type: "string",
      label: "Event Start",
      description: "(beta) a datetime string e.g. `2018-09-11T12:00:00`",
      optional: true,
    },
    eventEnd: {
      type: "string",
      label: "Event End",
      description: "(beta) a datetime string e.g. `2018-09-11T12:00:00`",
      optional: true,
    },
    eventTz: {
      type: "string",
      label: "Event Timezone",
      description: "(beta) a [pytz](https://pypi.org/project/pytz/) timezone e.g. `America/Los_Angeles`",
      optional: true,
      options: tzs,
    },
  },
  async run ({ $ }) {
    const data = {
      api_type: "json",
      sr: this.subreddit.value || this.subreddit,
      kind: this.kind,
      title: this.title,
      spoiler: this.spoiler,
      sendreplies: this.sendReplies,
      nsfw: this.nsfw,
      url: this.url,
      text: this.text,
      event_start: this.eventStart,
      event_end: this.eventEnd,
      event_tz: this.eventTz,
    };

    const res = await axios($, this.reddit._getAxiosParams({
      method: "POST",
      path: "/api/submit",
      data,
    }));

    this.reddit.checkErrors(res);

    $.export("$summary", `The post "${this.title}" has been successfully created into "${this.subreddit?.label || this.subreddit}" subreddit`);
    return res?.json?.data || res;
  },
};

Configuration

This component may be configured based on the props defined in the component code. Pipedream automatically prompts for input values in the UI and CLI.
LabelPropTypeDescription
RedditredditappThis component uses the Reddit app.
SubredditsubredditstringSelect a value from the drop down menu.
Titletitlestring

The title of your post

KindkindstringSelect a value from the drop down menu:linkselfimage
Texttextstring

The content your post. Applicable if Kind is self

URLurlstring

The URL to be shared in your post. Applicable if Kind is image or link

Spoilerspoilerboolean

Default to false. Flag it as true if your post contains some spoiler.

Send RepliessendRepliesboolean

Default to true. If true, you will receive email notification if your post has some reply.

Not Safe For Worknsfwboolean

Default to false. If your post is not safe for work (+18), please, set true for this field.

Event StarteventStartstring

(beta) a datetime string e.g. 2018-09-11T12:00:00

Event EndeventEndstring

(beta) a datetime string e.g. 2018-09-11T12:00:00

Event TimezoneeventTzstringSelect a value from the drop down menu:Africa/AbidjanAfrica/AccraAfrica/Addis_AbabaAfrica/AlgiersAfrica/AsmeraAfrica/BamakoAfrica/BanguiAfrica/BanjulAfrica/BissauAfrica/BlantyreAfrica/BrazzavilleAfrica/BujumburaAfrica/CairoAfrica/CasablancaAfrica/CeutaAfrica/ConakryAfrica/DakarAfrica/Dar_es_SalaamAfrica/DjiboutiAfrica/DoualaAfrica/FreetownAfrica/GaboroneAfrica/HarareAfrica/JohannesburgAfrica/KampalaAfrica/KhartoumAfrica/KigaliAfrica/KinshasaAfrica/LagosAfrica/LibrevilleAfrica/LomeAfrica/LuandaAfrica/LubumbashiAfrica/LusakaAfrica/MalaboAfrica/MaputoAfrica/MaseruAfrica/MbabaneAfrica/MogadishuAfrica/MonroviaAfrica/NairobiAfrica/NdjamenaAfrica/NiameyAfrica/NouakchottAfrica/OuagadougouAfrica/Porto-NovoAfrica/Sao_TomeAfrica/TripoliAfrica/TunisAfrica/WindhoekAmerica/AdakAmerica/AnchorageAmerica/AntiguaAmerica/AraguainaAmerica/Argentina/Buenos_AiresAmerica/Argentina/CatamarcaAmerica/Argentina/CordobaAmerica/Argentina/JujuyAmerica/Argentina/La_RiojaAmerica/Argentina/MendozaAmerica/Argentina/Rio_GallegosAmerica/Argentina/San_JuanAmerica/Argentina/TucumanAmerica/Argentina/UshuaiaAmerica/AsuncionAmerica/AtikokanAmerica/BahiaAmerica/BarbadosAmerica/BelemAmerica/BelizeAmerica/Blanc-SablonAmerica/Boa_VistaAmerica/BogotaAmerica/BoiseAmerica/Cambridge_BayAmerica/Campo_GrandeAmerica/CancunAmerica/CaracasAmerica/ChicagoAmerica/ChihuahuaAmerica/Costa_RicaAmerica/CuiabaAmerica/DawsonAmerica/Dawson_CreekAmerica/DenverAmerica/DetroitAmerica/DominicaAmerica/EdmontonAmerica/EirunepeAmerica/El_SalvadorAmerica/FortalezaAmerica/Glace_BayAmerica/Goose_BayAmerica/GrenadaAmerica/GuatemalaAmerica/GuatemalaAmerica/GuayaquilAmerica/GuyanaAmerica/HalifaxAmerica/HavanaAmerica/HermosilloAmerica/Indiana/IndianapolisAmerica/Indiana/KnoxAmerica/Indiana/MarengoAmerica/Indiana/PetersburgAmerica/Indiana/VevayAmerica/Indiana/VincennesAmerica/InuvikAmerica/IqaluitAmerica/JamaicaAmerica/JuneauAmerica/Kentucky/LouisvilleAmerica/Kentucky/MonticelloAmerica/La_PazAmerica/LimaAmerica/Los_AngelesAmerica/MaceioAmerica/ManaguaAmerica/ManausAmerica/MazatlanAmerica/MenomineeAmerica/MeridaAmerica/Mexico_CityAmerica/MonctonAmerica/MonterreyAmerica/MontevideoAmerica/MontrealAmerica/NassauAmerica/New_YorkAmerica/NipigonAmerica/NomeAmerica/NoronhaAmerica/North_Dakota/CenterAmerica/North_Dakota/New_SalemAmerica/PanamaAmerica/PangnirtungAmerica/ParamariboAmerica/PhoenixAmerica/Port_of_SpainAmerica/Porto_VelhoAmerica/Rainy_RiverAmerica/Rankin_InletAmerica/RecifeAmerica/ReginaAmerica/Rio_BrancoAmerica/SantiagoAmerica/Santo_DomingoAmerica/Sao_PauloAmerica/ShiprockAmerica/St_JohnsAmerica/St_KittsAmerica/St_LuciaAmerica/St_VincentAmerica/Swift_CurrentAmerica/TegucigalpaAmerica/Thunder_BayAmerica/TijuanaAmerica/TorontoAmerica/VancouverAmerica/WhitehorseAmerica/WinnipegAmerica/YakutatAmerica/YellowknifeAsia/AdenAsia/AlmatyAsia/AmmanAsia/AnadyrAsia/AqtauAsia/AqtobeAsia/AshgabatAsia/BaghdadAsia/BahrainAsia/BakuAsia/BangkokAsia/BeirutAsia/BishkekAsia/BruneiAsia/CalcuttaAsia/ChoibalsanAsia/ChongqingAsia/ColomboAsia/DamascusAsia/DhakaAsia/DiliAsia/DubaiAsia/DushanbeAsia/HarbinAsia/HovdAsia/IrkutskAsia/JakartaAsia/JayapuraAsia/JerusalemAsia/KabulAsia/KamchatkaAsia/KarachiAsia/KashgarAsia/KatmanduAsia/KrasnoyarskAsia/Kuala_LumpurAsia/KuchingAsia/KuwaitAsia/MagadanAsia/MakassarAsia/ManilaAsia/MuscatAsia/NicosiaAsia/NovosibirskAsia/OmskAsia/OralAsia/Phnom_PenhAsia/PontianakAsia/PyongyangAsia/QatarAsia/QyzylordaAsia/RangoonAsia/RiyadhAsia/SaigonAsia/SakhalinAsia/SamarkandAsia/SeoulAsia/ShanghaiAsia/SingaporeAsia/TashkentAsia/TbilisiAsia/TehranAsia/ThimphuAsia/TokyoAsia/UlaanbaatarAsia/UrumqiAsia/VientianeAsia/VladivostokAsia/YakutskAsia/YekaterinburgAsia/YerevanAtlantic/AzoresAtlantic/CanaryAtlantic/Cape_VerdeAtlantic/MadeiraAtlantic/ReykjavikAustralia/AdelaideAustralia/BrisbaneAustralia/Broken_HillAustralia/CurrieAustralia/DarwinAustralia/HobartAustralia/LindemanAustralia/Lord_HoweAustralia/MelbourneAustralia/PerthAustralia/SydneyEurope/AmsterdamEurope/AndorraEurope/AthensEurope/BelgradeEurope/BerlinEurope/BratislavaEurope/BrusselsEurope/BucharestEurope/BudapestEurope/ChisinauEurope/CopenhagenEurope/DublinEurope/HelsinkiEurope/IstanbulEurope/KaliningradEurope/KievEurope/LisbonEurope/LjubljanaEurope/LondonEurope/LuxembourgEurope/MadridEurope/MaltaEurope/MinskEurope/MonacoEurope/MoscowEurope/OsloEurope/ParisEurope/PodgoricaEurope/PragueEurope/RigaEurope/RomeEurope/SamaraEurope/San_MarinoEurope/SarajevoEurope/SimferopolEurope/SkopjeEurope/SofiaEurope/StockholmEurope/TallinnEurope/TiraneEurope/UzhgorodEurope/VaduzEurope/VaticanEurope/ViennaEurope/VilniusEurope/VolgogradEurope/WarsawEurope/ZagrebEurope/ZaporozhyeEurope/ZurichIndian/AntananarivoIndian/ComoroIndian/MaheIndian/MaldivesIndian/MauritiusPacific/ApiaPacific/AucklandPacific/ChathamPacific/EasterPacific/EfatePacific/EnderburyPacific/FijiPacific/FunafutiPacific/GalapagosPacific/GuadalcanalPacific/HonoluluPacific/KiritimatiPacific/KosraePacific/KwajaleinPacific/MajuroPacific/NauruPacific/PalauPacific/PonapePacific/Port_MoresbyPacific/TarawaPacific/TongatapuPacific/Truk

Authentication

Reddit uses OAuth authentication. When you connect your Reddit account, Pipedream will open a popup window where you can sign into Reddit and grant Pipedream permission to connect to your account. Pipedream securely stores and automatically refreshes the OAuth tokens so you can easily authenticate any Reddit API.

Pipedream requests the following authorization scopes when you connect your account:

accountidentityeditflairhistoryreadreportsavestructuredstylessubmitsubscribevoteflairmodflairmodconfigmodflairmodlogmodpostsmodwikimysubredditswikieditwikiread

About Reddit

Reddit is a network of communities based on people's interests. Find communities you're interested in, and become part of an online community!