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 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.
- Raycast MCP: add Sume's hosted server with Dynamic OAuth
Add Sume to Raycast as an HTTP MCP server: URL, Dynamic OAuth sign-in, read-only by default, and when to switch to an API-key header for paid tools.
- Slack Events API retries 3 times: keep one Sume run per event
Slack retries a missed Events API ack three times and can disable your subscriptions. Ack in 3 seconds and let an Idempotency-Key keep one Sume run per event.
- smolagents MCPClient: give a CodeAgent Sume's remote tools
Connect a smolagents CodeAgent to Sume's hosted MCP with MCPClient and the streamable-http transport, send an API key header, and wait on jobs correctly.
Written by Sume