RedCrawler API
Posting V1

Create Image Post V1

Create an image post. Pass media_url (image URL) or base64_data. Requires bearer token.

POST /api/v1/publishing/image

Create an image post. Pass media_url (image URL) or base64_data. Requires bearer token.

Body parameters

NameTypeRequiredDescription
subredditstringYesTarget subreddit (name, r/name, or URL).
titlestringYesPost title (max 300 chars).
textstringNoOptional post body text — plain text or Reddit markdown both work.
is_spoilerstringNoMark as spoiler (true/false, default: false).
flair_textstringNoFlair display text.
media_urlstringNoImage URL to upload. Either this or base64_data is required.
sendrepliesstringNoSend reply notifications (true/false, default: true).
flair_idstringNoFlair template ID.
is_nsfwstringNoMark as NSFW (true/false, default: false).
proxystringNoProxy. Optional if stored in Token Vault.
bearerstringNoBearer token. Optional if stored in Token Vault.
base64_datastringNoBase64-encoded image data. Either this or media_url is required.

Authentication

HeaderValue
X-RapidAPI-KeyYour RapidAPI key
X-RapidAPI-Hostred-crawler1.p.rapidapi.com

Example request

cURL

curl -X POST "https://red-crawler1.p.rapidapi.com/api/v1/publishing/image" \
  -H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
  -H "X-RapidAPI-Host: red-crawler1.p.rapidapi.com" \
  -H "Content-Type: application/json" \
  --data '{"subreddit": "test", "title": "<title>", "text": "<text>", "is_spoiler": "<is_spoiler>", "flair_text": "<flair_text>", "media_url": "<media_url>", "sendreplies": "<sendreplies>", "flair_id": "<flair_id>", "is_nsfw": "<is_nsfw>", "proxy": "<proxy>", "bearer": "<bearer>", "base64_data": "<base64_data>"}'

JavaScript

const res = await fetch("https://red-crawler1.p.rapidapi.com/api/v1/publishing/image", {
  method: "POST",
  headers: {
      "X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
    "X-RapidAPI-Host": "red-crawler1.p.rapidapi.com"
    },
    body: JSON.stringify({
  "subreddit": "test",
  "title": "<title>",
  "text": "<text>",
  "is_spoiler": "<is_spoiler>",
  "flair_text": "<flair_text>",
  "media_url": "<media_url>",
  "sendreplies": "<sendreplies>",
  "flair_id": "<flair_id>",
  "is_nsfw": "<is_nsfw>",
  "proxy": "<proxy>",
  "bearer": "<bearer>",
  "base64_data": "<base64_data>"
})
});
const data = await res.json();
console.log(data);

Python

import requests

url = "https://red-crawler1.p.rapidapi.com/api/v1/publishing/image"
headers = {
    "X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
    "X-RapidAPI-Host": "red-crawler1.p.rapidapi.com",
    "Content-Type": "application/json"
}
payload = {
  "subreddit": "test",
  "title": "<title>",
  "text": "<text>",
  "is_spoiler": "<is_spoiler>",
  "flair_text": "<flair_text>",
  "media_url": "<media_url>",
  "sendreplies": "<sendreplies>",
  "flair_id": "<flair_id>",
  "is_nsfw": "<is_nsfw>",
  "proxy": "<proxy>",
  "bearer": "<bearer>",
  "base64_data": "<base64_data>"
}
resp = requests.post(url, headers=headers, json=payload)
print(resp.json())

Example response

HTTP 200 — captured from a live call to the gateway.

{
  "success": true,
  "data": {
    "json": {
      "errors": [],
      "data": {
        "user_submitted_page": "https://www.reddit.com/user/Motor_Tip8865/submitted/",
        "websocket_url": "wss://k8s-lb.wss.redditmedia.com:443/8o4ckekyn5yg1?m=AQAAuDLyabxMj4hBRYno80_Ac1njJBytkMcgBQe9gxT2PlOCW2Xl"
      }
    }
  },
  "error": null,
  "meta": {
    "websocket_url": "wss://k8s-lb.wss.redditmedia.com/8o4ckekyn5yg1?m=AQAAtzLyaUe6RWFHunN0CVTaLvUaDcGSdeO1VrYvF14OXutnG_fx"
  },
  "timestamp": "2026-04-29T16:22:57.029418+00:00"
}

On this page