API DocsUse CasesImage Campaign Scheduler
2× click-through rateUploads + Schedule

Image Campaign Scheduler

Upload product screenshots once. Reuse across campaigns. Visual posts drive 2× more clicks.

Who this is for

SaaS companies with visual productsUI/UX designersDeveloper tool buildersE-commerce brands

The problem

Products with a strong visual component — dashboards, UI screenshots, before/after comparisons, design tools — are fundamentally harder to market with text alone. A paragraph describing a beautiful interface is worth far less than a screenshot of it. But most Reddit marketers post text anyway, because managing and reusing image assets across multiple posts is friction.

The operational problem is image hosting. Without a CDN or hosting solution, every image post requires uploading to an external service, copying URLs, and hoping those URLs stay alive. Many marketers end up with broken image links in old posts, or waste time re-uploading the same image multiple times because they didn't store the original URL.

Image posts also require different copy than text posts. The visual carries the message, so the title needs to set context rather than explain everything. Most marketers don't adjust their copy approach for image vs text posts, leaving significant click-through performance on the table.

How Reoogle solves it

The Reoogle upload API hosts your images and returns a permanent URL — no separate CDN required. Upload once, reuse across any number of scheduled posts across any number of subreddits. Each scheduled post with an image_url creates a Reddit link post that renders as an in-feed image preview. Pair the same image with different titles tailored to each community, and you can run a coordinated visual campaign across 20+ subreddits from a single upload.

How it works

1

Prepare your image assets for Reddit

Reddit renders images at up to 1200px wide in-feed. Use PNG for UI screenshots (lossless quality), JPEG for photos, and GIF for short demos or animations. Annotate screenshots with callouts or arrows pointing to key features — Reddit readers scroll fast and benefit from visual emphasis. Avoid images with text-only content, which is hard to read at small sizes.

2

Upload assets once to create a permanent library

POST /uploads for each image file (JPEG, PNG, GIF, WebP — up to 20 MB). Store the returned URL in your database keyed by a descriptive name ("dashboard-v2-dark", "onboarding-flow", "pricing-comparison"). This URL is permanent as long as your account is active — upload once, use everywhere.

3

Plan your copy variants before scheduling

Write a different title for each subreddit tier. Technical communities: "How we built the real-time sync — under the hood screenshot." Productivity communities: "6 months of feature work condensed into one dashboard." Founder communities: "The interface we wished existed when we started." The same image; three completely different frames.

4

Schedule image posts across communities

For each subreddit, call POST /schedule with image_url set to your hosted image and a community-specific title. The API creates a Reddit link post — the image_url becomes the link target, and Reddit renders an in-feed preview card. Use scheduled_for times staggered at least 2 hours apart.

5

Rotate assets to avoid duplicate detection

Reddit's image duplicate detection flags identical image hashes submitted multiple times within a short window. If you're posting the same screenshot to 20 subreddits, add a minor variation between posts — a 1-pixel border, slight crop, or brightness adjustment creates a different hash while keeping the visual essentially identical.

6

Track image performance separately from text posts

Filter GET /ai-posts by post_type to separate image post performance from text posts. Image posts typically have 2–3× higher click-through but lower comment count than equivalent text posts. Track both: click-through tells you about traffic generation; comments tell you about community resonance.

Code examples

Upload once, schedule everywhere

typescript
async function uploadAndSchedule(
  imagePath: string,
  titleVariants: Record<string, string>,  0
  body: string,
  launchDate: Date,
) {
  1
  const form = new FormData();
  form.append(2, await fetch(imagePath).then(r => r.blob()), 3);

  const uploadRes  = await fetch(4, { method: 5, headers: HEADERS, body: form });
  const { url: imageUrl } = await uploadRes.json();
  console.log(6, imageUrl);

  7
  const entries = Object.entries(titleVariants);
  for (let i = 0; i < entries.length; i++) {
    const [subreddit, title] = entries[i];
    const scheduledFor = new Date(launchDate.getTime() + i * 4 * 60 * 60_000).toISOString();

    await fetch(8, {
      method:  9,
      headers: { ...HEADERS, 10: 11 },
      body:    JSON.stringify({ title, body, subreddit, image_url: imageUrl, scheduled_for: scheduledFor }),
    });
  }

  console.log(12);
  return imageUrl;
}

Full example: product screenshot campaign

bash
# 1. Upload the screenshot
curl -X POST https://reoogle.com/api/v1/uploads \
  -H "Authorization: Bearer rog_live_YOUR_KEY" \
  -F "file=@dashboard-screenshot.png"
# → { "url": "https://reoogle.com/api/v1/images/uid_1751234567.png" }

# 2. Schedule the same image to multiple subs with different titles
curl -X POST https://reoogle.com/api/v1/schedule \
  -H "Authorization: Bearer rog_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title":         "Show HN: the dashboard I built to stop losing track of Reddit posts",
    "subreddit":     "SaaS",
    "image_url":     "https://reoogle.com/api/v1/images/uid_1751234567.png",
    "scheduled_for": "2026-08-01T14:00:00Z"
  }'

curl -X POST https://reoogle.com/api/v1/schedule \
  -H "Authorization: Bearer rog_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title":         "Built this in a weekend — analytics for Reddit marketers",
    "subreddit":     "indiehackers",
    "image_url":     "https://reoogle.com/api/v1/images/uid_1751234567.png",
    "scheduled_for": "2026-08-01T18:00:00Z"
  }'

Common pitfalls

Posting the exact same image to multiple subs without modification

Reddit's perceptual hash algorithm detects visually identical images submitted in close succession and may flag them as duplicate content. Minor variations (crop, border, brightness) create a different hash while keeping the image functionally identical.

Choosing images with too much text or small UI elements

Reddit renders post thumbnails at 70×70px and in-feed images at ~600px wide. Dense UI screenshots with small text or complicated layouts lose most of their information at these sizes. Use annotated, zoomed screenshots that highlight a single key feature.

Using the same title for image posts as for text posts

Text posts need to explain everything in the title. Image posts don't — the visual does the heavy lifting. Image post titles should frame and contextualise the screenshot, not describe what's in it. "The dashboard after 6 months of user feedback" outperforms "Dashboard screenshot with key features highlighted".

Key benchmarks

2–3×

Click-through vs text posts

Image posts typically generate 2–3× more clicks to the linked URL compared to equivalent text posts.

20 MB

Max image file size

Maximum file size accepted by POST /uploads. JPEG compression at 85% quality typically reduces screenshots to 500KB–2MB.

unlimited

Unique URL reuse

A single uploaded image URL can be used in as many scheduled posts as needed, across any number of subreddits.

Recommended stack

Reoogle APIImage upload, hosting, and scheduled posting
Figma / SketchCreate annotated screenshots and branded feature callouts
Sharp / ImageMagickAutomate minor variations to images for duplicate hash avoidance
Cloudflare Images (optional)Additional CDN layer for programmatic image transformation

Frequently asked questions

What image formats does the upload API accept?

JPEG, PNG, GIF, and WebP, up to 20 MB per file. For screenshots, PNG preserves text clarity best. For product demos or animated walkthroughs, GIF is supported. WebP offers the best compression if you're working with large images and want to stay under bandwidth limits.

How long does the hosted image URL stay active?

Image URLs remain active as long as your Reoogle account is active and in good standing. There's no expiry date on uploaded images. If you delete your account, the images are removed — but active accounts retain all uploaded assets indefinitely.

Can I use the same image in multiple campaigns at different times?

Yes — this is the primary use case. Upload once, reuse in campaigns months apart. A product dashboard screenshot you uploaded for your launch is still a valid asset for ongoing content campaigns. Just pair it with fresh, community-specific copy.

Do image posts perform well in all subreddits?

Image posts perform best in communities that regularly feature screenshots, demos, or visual content (r/SaaS, r/webdev, r/indiehackers, design communities). They perform less well in primarily text-discussion communities where images feel out of place. Check a subreddit's top posts to see if image content already exists there before targeting it with an image post.

Business value

Image posts generate 2–3× more click-throughs than plain text posts for the same product. For a product with a strong visual story, a 10-post image campaign can drive as many trial signups as a month of text-only posting.

Ready to build this?

Generate an API key from your developer dashboard and make your first request in minutes.