Media Uploads
pepe.business supports images (JPG/PNG/WebP), videos (MP4/MOV/WebM), and multi-image carousels on all compatible platforms.
Method 1: Remote URL
Pass a public URL, pepe.business downloads and transcodes:
POST /v1/posts
{
"text": "New product!",
"platforms": ["instagram", "facebook"],
"mediaUrls": ["https://my-shop.com/product.jpg"]
}
Advantages: simple, no client-side size limit.
Method 2: Direct upload
For non-public or large media:
# Step 1: get a signed URL
POST /v1/media/upload-url
{ "filename": "video.mp4", "contentType": "video/mp4" }
# Response
{ "uploadUrl": "https://storage.pepe.business/...", "mediaId": "med_xxx" }
# Step 2: PUT the file to uploadUrl
curl -X PUT https://storage.pepe.business/... \
-H "Content-Type: video/mp4" \
--data-binary @video.mp4
Then use the mediaId:
POST /v1/posts
{
"mediaIds": ["med_xxx"],
"platforms": ["tiktok", "youtube"]
}
Limits per platform
| Platform | Max image | Max video | Max carousel |
|---|---|---|---|
| Twitter/X | 5 MB | 15 MB | 4 images |
| 8 MB | 100 MB | 10 images | |
| TikTok | — | 500 MB | — |
| YouTube | — | 256 GB | — |
| 5 MB | 200 MB | 10 images | |
| 4 MB | 1 GB | 10 images | |
| 32 MB | — | — |
Automatic transcoding
pepe.business automatically transcodes to the formats required by each platform:
- Video: H.264, AAC, MP4 container
- Images: JPG for photos, PNG for logos
- Ratio: smart adaptation (1:1 for square Instagram, 9:16 for Stories, 16:9 for YouTube)
Carousels
POST /v1/posts
{
"text": "Our new collection",
"platforms": ["instagram", "linkedin"],
"mediaUrls": [
"https://shop.com/1.jpg",
"https://shop.com/2.jpg",
"https://shop.com/3.jpg"
]
}
Pre-publish validation
POST /v1/validate/media
{
"url": "https://shop.com/image.jpg",
"platforms": ["instagram", "twitter"]
}
Returns warnings (too large, bad ratio, etc.) before publishing.