Pinterest video Pin 400: the cover image is required, here is a frame
Creating a Pinterest video Pin needs a valid cover_image_url or you get a 400. Pull a still from your Sume avatar clip with video frames and host it publicly.
A Pinterest video Pin cannot be created without a cover image: the docs say to provide a video and a cover image, and a valid image URL is required to avoid a 400 Bad Request. Extract a still from your Sume avatar clip with the unbilled video-frames route and pass its public URL as cover_image_url.
What are the four steps for a video Pin?
Pinterest's create-Pins guide lists four steps. Register your intent with the media create endpoint, upload the video with a multipart POST to the returned upload_url, confirm with the media get endpoint until the status reads succeeded, and call pins create with source_type: video_id, the cover_image_url and the media_id. Supported video formats on that page are .mp4, .mov and .m4v. The guide gives no file size, length or codec numbers, so I will not quote any.
| Step | Call | Check |
|---|---|---|
| 1 | Register media intent | Receive media_id and upload_url |
| 2 | POST file to upload_url | Multipart form data |
| 3 | Get media by media_id | Status must be succeeded |
| 4 | Create Pin, source_type video_id | cover_image_url must be a valid image URL |
How do you get a cover image from a Sume clip?
Video frames takes one media.sume.com clip and either at[] or fps, then returns durable image artifacts at source size. It is unbilled, submit is always 202, and format defaults to jpeg. Ask for a time where the avatar looks at the camera, and read the URL from the finished resource.
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-cover-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4",
"at": [1.5]
}'Can you use the avatar preview still instead?
An Avatar video preview returns preview_image_url, the first-frame still, before the full render. It is never caption-burned, which is good for a cover. But it is a pre-render still, and the final video may differ slightly, so for a cover that matches the played clip pick a frame from the finished video.
Processing time and the creative_type quirk
Pinterest notes that video Pins may need extra processing time after creation. While this normally takes a few seconds, you can see a wrong creative_type until it finishes. Do not treat that as a failure; read the Pin again after a short wait before you act on it.
What Sume does not do
Sume does not upload to Pinterest in the docs I read, and I could not fetch Pinterest's media endpoint reference pages, so I have not quoted its status values beyond the succeeded state named in the guide. Pin ratio rules for images are covered in the Pin specs post.
Sources
Related posts
More in Integrations
- Pipedream keeps events 7 days on Free: store Sume job ids elsewhere
Pipedream's limits page lists 7 days of event retention on the free tier. Keep Sume job ids in your own store to audit a video job after that.
- Pipedream Workflows shuts down March 31, 2027: move Sume calls
Pipedream says Workflows ends March 31, 2027. A Sume flow is HTTPS calls plus one signed webhook: rebuild those three parts elsewhere and poll in-flight jobs.
- Point an OpenRouter-style video client at Sume: what changes
Sume's /v1/videos follows the OpenRouter video API field for field. Change the base URL, key and model ids, then handle six documented differences.
- Product videos from a chat agent: dry run first, then submit
Higgsfield added slash commands in ChatGPT. When an agent makes product videos on Sume's hosted MCP, preview with dry_run, then submit with a key.
Written by Sume