Developers

Media

Upload images or videos that posts will reference. You can upload bytes directly with multipart, or hand us a public HTTPS URL and we'll fetch it for you — useful for agents that have already generated or stored media elsewhere.

Upload via multipart

POST/api/v1/media
bash
curl -X POST https://postme.live/api/v1/media \
  -H "Authorization: Bearer pml_live_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -F "[email protected]"

Upload via URL

POST/api/v1/media
bash
curl -X POST https://postme.live/api/v1/media \
  -H "Authorization: Bearer pml_live_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://example.com/hero.jpg" }'

URLs must be https://, resolve to a public IP (no private, loopback, link-local, or ULA addresses), and download in under 5 minutes for files no larger than 1 GB.

Response — 201 Created

json
{
  "id": "9f3a…",
  "kind": "image",
  "bytes": 184320,
  "mime": "image/jpeg",
  "filename": "hero.jpg",
  "url": "https://media.postme.live/…",
  "thumbnail_status": "pending"
}

Use the returned id in media[].id on a subsequent POST /posts. Thumbnail generation, ffprobe metadata extraction, and YouTube poster- frame candidates run asynchronously on the worker; the post endpoint doesn't wait for them.

Limits

LimitValue
Maximum file size1 GB
URL fetch timeout5 minutes
Allowed URL schemeshttps://
Allowed remote networksPublic IPs only (no private/loopback/link-local/ULA)
Media — Public API