Skip to content

Product Hunt

Your agents schedule your launch as the maker, post the first comment at 12:01 am Pacific, and answer every comment through the day.

Connect
Sign in once, 1 grant
Runs through
A browser agent
First run
Watch your launch’s rank and comments for one day, free
Post.schedule
You, to your agent

Queue my Product Hunt launch for Tuesday and show me the page it will make.

curl -X POST "https://api.sb/leaseline.app/posts/schedule?mode=try" \
  -H "Authorization: Bearer $SB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"handle":"product-hunt:dana","title":"Leaseline","body":"Rent and renewal tracking for property managers","media":["files/ph-thumbnail","files/ph-gallery-1","files/ph-gallery-2","files/ph-gallery-3"],"publishAt":"2026-11-03T08:01:00Z"}'
npx startup-builder do Post.schedule --try --data '{"handle":"product-hunt:dana","title":"Leaseline","body":"Rent and renewal tracking for property managers","media":["files/ph-thumbnail","files/ph-gallery-1","files/ph-gallery-2","files/ph-gallery-3"],"publishAt":"2026-11-03T08:01:00Z"}'
{
  "name": "do",
  "arguments": {
    "mode": "try",
    "code": "return await $.Post.schedule({ handle: 'product-hunt:dana', title: 'Leaseline', body: 'Rent and renewal tracking for property managers', media: ['files/ph-thumbnail', 'files/ph-gallery-1', 'files/ph-gallery-2', 'files/ph-gallery-3'], publishAt: '2026-11-03T08:01:00Z' })"
  }
}
import { $ } from 'startup-builder'

const result = await $.try.Post.schedule({ handle: 'product-hunt:dana', title: 'Leaseline', body: 'Rent and renewal tracking for property managers', media: ['files/ph-thumbnail', 'files/ph-gallery-1', 'files/ph-gallery-2', 'files/ph-gallery-3'], publishAt: '2026-11-03T08:01:00Z' })
Response
{
  "$type": "Post",
  "mode": "try",
  "stored": false,
  "venue": "product-hunt",
  "status": "scheduled",
  "name": "Leaseline",
  "tagline": "Rent and renewal tracking for property managers",
  "taglineLength": 47,
  "goesLive": "2026-11-03T08:01:00Z",
  "goesLiveLocal": "Tuesday, Nov 3, 2:01 am Central",
  "firstComment": "drafted, waiting for your approval",
  "runsBy": "browser",
  "steps": 11
}
Try mode reads, stores nothing and spends nothingAPI referenceIts Nouns

Connect once

  1. Call Integration.connect with system: 'social' and venue: 'product-hunt'; a browser window opens on producthunt.com.
  2. Sign in as the maker who will launch. The session is saved to your browser profile.
  3. Call Handle.connect to bind the maker account as your account.
GrantWhat it unlocksScope
Your saved sessionThe launch form, the first comment and your replies, as the makerbrowser session: producthunt.com
ToDo this
PauseIntegration.pause holds every run that needs your Product Hunt session; the session stays saved.
ReconnectIntegration.reconnect opens a browser window where you sign in to Product Hunt once more; the saved session replaces the old one.
DisconnectIntegration.revoke deletes the saved Product Hunt session; every Post and reply it made stays in your records.

What your agents do

AskVerbRuns throughPrice
Schedule my launch for Tuesday with the gallery, the tagline and the first comment, signed in as me.Post.scheduleA browser agentAbout 1.6¢ a step
Answer each comment I approve, signed in as me.Conversation.answerA browser agentAbout 1.6¢ a step

Calls on your own account are free.

Reading this site’s public data needs no account: Monitor.create is a Data call (the three ways a call runs).

What it holds

NounThe account’s objectWhenWhich side leads
PostlaunchYour agent schedules the launchThe account
MessagecommentSomeone comments, or your agent posts your replyThe account
ProspectcommenterA commenter who fits asks a question or signs upYour records

Events and webhooks

DirectionEvent
EmitsPost.scheduled, Post.published, Message.created, Monitor.checked

Any Event can wake a Workflow, and a Watch delivers it to your endpoint, signed (Events and webhooks).

Limits

WhatLimitCall
Launch timeLaunches go live at 12:01 am Pacific and the day’s ranking runs to midnight Pacific, so the agent schedules for 12:01 amPost.schedule
Vote asksYour agent asks your list for feedback, never for upvotesEvery call
RepliesEvery comment gets a drafted answer within 30 minutes for the first 6 hoursEvery call

Field map

Our fieldProduct Hunt’s fieldNotesCalls
Post.titlenameNone.Post.schedule
Post.bodytagline60 characters: what it does and for whomPost.schedule
Post.mediathumbnail and galleryA square 240 × 240 thumbnail; the first gallery image is the link previewPost.schedule
Post.publishAtlaunch dateProduct Hunt takes a day, and the launch goes live at 12:01 am Pacific that dayPost.schedule

What try does here

Returns the launch page as Product Hunt will show it, with the time it goes live in your time zone; nothing is scheduled.

How long a connection lasts

A connection lasts as long as the site keeps your saved session signed in; the platform checks the session before every run.

The platform asks you to reconnect 7 days before it runs out; until you do, a call that needs it refuses with needs-reauth.

Formats

SiteFormatSizeLimits
Product HuntLaunchNone.Tagline 60 characters; a square 240 × 240 thumbnail

Plays and strategies

Used by

Reference

2 calls, each with its path and price
CallPathPrice
Post.schedulePOST /posts/scheduleAbout 1.6¢ a step
Conversation.answerPOST /conversations/answerAbout 1.6¢ a step

Contents