Pinterest video aspect ratio text, quoted, and a master check
Pinterest's video spec says 'shorter than 1:2, taller than 1.91:1'. Quote it, convert the recommended ratios to decimals, and check a master with Sume frames.

Pinterest's ad specs describe the allowed video aspect ratio as "Shorter than 1:2 (width:height), taller than 1.91:1". The sentence is hard to read as a numeric range, so this post quotes it as written and does not turn it into a limit. What it does recommend is clear: square (1:1) or vertical (2:3, 4:5 or 9:16). You can read your master's real size from a Sume video frame and compare it to those.
The ratios as decimals
Width divided by height gives a number you can compare. The table converts Pinterest's recommended ratios. Pinterest's page, read on 2026-10-08, also has a Max Width video section: that format is paid only, its videos cannot exceed the height of a 1:1 aspect ratio, and its recommended ratios are 1:1, 2:3 or 9:16.
| Ratio | Width / height | Example size |
|---|---|---|
| 1:1 | 1.000 | 1080 x 1080 |
| 4:5 | 0.800 | 1080 x 1350 |
| 2:3 | 0.667 | 1000 x 1500 |
| 9:16 | 0.5625 | 1080 x 1920 |
Read your master's size
Video frames returns each still with its width and height, and unless you set max_edge the frames keep the source size. So one still at time 0 tells you the master's dimensions without any other tool. The source can be up to 300 seconds.
curl -X POST https://api.sume.com/v1/video-frames \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: pin-ratio-check-001" \
-d '{"video_url":"https://media.sume.com/artifacts/artf_demo/master.mp4","at":[0]}'Compare in a script
Take the width and height from the response and print the ratio next to the recommended ones. The script below picks the nearest recommended ratio.
recommended = {"1:1": 1.0, "4:5": 0.8, "2:3": 2 / 3, "9:16": 9 / 16}
width, height = 1080, 1920
ratio = width / height
nearest = min(recommended, key=lambda k: abs(recommended[k] - ratio))
print(round(ratio, 4), "nearest recommended:", nearest)If the master does not match
If the nearest recommended ratio is not what you wanted, render a new file rather than editing the old one. Timeline 1.0 takes an even output width and height from 256 to 2160, with fit set to cover, contain, stretch or blur per slot. A 30 second render is $0.10.
Because the Pinterest text on the allowed range is ambiguous, stay on the recommended list. If Pinterest rejects an in-range file, the recommended ratios are the quickest way to get unblocked, and the ad manager's own message is the final word on what it accepts. Keep the master you checked and the file you uploaded under matching names, so a rejection can be traced to the exact render. A frame call at time 0 is cheap compute, which makes it practical to check every master before it goes anywhere.
- Example sizes: 1:1 at 1080 x 1080, 4:5 at 1080 x 1350, 2:3 at 1000 x 1500, 9:16 at 1080 x 1920.
- Do not stretch: pick cover or blur.
- Length is separate: 4 seconds to 15 minutes, 6 to 15 seconds recommended.
Sources
Related posts
More in Developers
- Pointing the OpenAI SDK at api.sume.com: why Sora calls still fail
Changing only the base URL does not carry a Sora call to Sume. Five documented differences: model ids, body format, seconds and size, status words, download.
- Poll a Sume image job in Python: obey next_poll_after_seconds
When POST /v1/images returns 202, keep polling the status_url and sleep for next_poll_after_seconds. A short Python loop that stops on a terminal status.
- Poll or callback for 1,000 video jobs: request counts at 30 seconds
At a 30-second poll, 1,000 video jobs make 4,000 to 20,000 status requests by job time. A callback_url cuts that to 1,000 deliveries plus a sweep.
- Poll /v1/jobs/{id}/status, then /result, in Node with backoff
A 25-line Node function that polls a Sume job on its own next_poll_after_seconds, reads /result only when the job completed, and keeps the id on timeout.
Written by Sume