Vimeo
Configure Vimeo in Outstand with your own API credentials (BYOK) to connect an account and publish videos through the unified API.
Vimeo requires your own API credentials (BYOK). Once configured, you can connect a Vimeo account and publish videos, read play and engagement metrics, and post comments through Outstand's unified social media API.
Managed Keys do not cover Vimeo. Outstand ships no managed Vimeo OAuth app, so registering your own Vimeo application and adding its credentials is required - not an optional white-labelling step. Vimeo accounts cannot be connected until you have done so.
Prerequisites
Before configuring the Vimeo integration, you need:
- A Vimeo account with enough remaining storage for the videos you intend to publish
- A registered Vimeo app, created at developer.vimeo.com/apps
- Your app's Client Identifier and Client Secret
- Upload access granted to the app - automatic on paid plans, a manual request on free ones
Important: If your Vimeo account is on a free plan, your app can authenticate but cannot upload until Vimeo grants it upload access. Request it from the app's page in My Apps under Permissions → Upload Access; Vimeo reviews each request by hand and states it can take up to five business days. Until it is granted, OAuth consent succeeds and the first publish fails. Paid Vimeo plans are approved for upload access automatically and need no request.
When registering the app, add this redirect URI in the app's Authentication section:
https://app.outstand.so/api/socials/vimeo/callbackVimeo rejects the authorization request outright if the redirect URI is not registered ahead of time, so add it before your first connection attempt.
Required Scopes
Outstand requests the following OAuth scopes by default:
| Scope | Purpose |
|---|---|
public | Read public video and profile data |
private | Read private videos belonging to the connected account |
upload | Upload new videos (requires Vimeo's manual upload-access approval) |
edit | Set video title, description and privacy on upload |
delete | Remove videos via DELETE /v1/posts/{id}/remote |
interact | Post and read comments |
Your Vimeo app must have these scopes enabled in its settings. You can narrow the list per connection by passing a scopes query parameter to the OAuth initiation endpoint, but dropping upload or edit will break publishing.
Setup
Step 1: Register Your Vimeo API Credentials
curl -X POST https://api.outstand.so/v1/social-networks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"network": "vimeo",
"client_key": "YOUR_VIMEO_CLIENT_IDENTIFIER",
"client_secret": "YOUR_VIMEO_CLIENT_SECRET"
}'Step 2: Connect a Vimeo Account
Direct your users to the OAuth initiation endpoint:
GET https://app.outstand.so/api/socials/vimeo/{orgId}Optional query parameters:
redirect_uri- Custom redirect URI after OAuth completes (for white-label flows)tenant_id- Tenant identifier for multi-tenant applications
Creating Vimeo Posts
Every Vimeo post must carry a video file. Outstand uploads the video in the post's first container; a post with no media is rejected. Vimeo accepts one video per post, so if several containers carry media, only the first video is published.
curl -X POST https://api.outstand.so/v1/posts \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Our 2026 product walkthrough\nEverything we shipped this year, in four minutes.",
"accounts": ["YOUR_VIMEO_ACCOUNT_ID"],
"containers": [
{ "content": "Our 2026 product walkthrough", "media": ["YOUR_MEDIA_ID"] }
],
"vimeo": {
"title": "Product walkthrough 2026",
"description": "Everything we shipped this year, in four minutes.",
"privacyView": "anybody",
"privacyEmbed": "public"
}
}'Vimeo Configuration Fields
| Field | Required | Description |
|---|---|---|
title | No | Video title. Defaults to the first line of the container content, truncated to 128 characters, or Untitled Video when the content is empty |
description | No | Video description. Defaults to the full container content |
privacyView | No | Who can watch: anybody, unlisted, nobody, password, contacts, users or disable. Defaults to anybody |
privacyEmbed | No | Where the video can be embedded: public, private or whitelist. Defaults to public |
Note:
privacyViewis plan-gated by Vimeo. Free accounts getanybodyandnobody;unlisted,passwordand the remaining values need a paid Vimeo plan (Starter or above). Sending a value your plan does not allow fails the upload, so keep the defaultanybodyunless you know the connected account is on a paid plan.
How the Upload Works
Outstand publishes to Vimeo using Vimeo's pull approach: rather than streaming the file to Vimeo, Outstand hands Vimeo a URL and Vimeo fetches the video itself. Two consequences worth planning for:
- The video must be reachable by Vimeo at fetch time. Media uploaded to Outstand satisfies this; an arbitrary private URL does not.
- Outstand polls for up to 60 seconds for Vimeo to accept the file. The poll confirms acceptance, not viewer-ready transcoding - Vimeo continues processing after the post is recorded as published, and a large file may still be transcoding when you first open its link.
Supported Features
| Feature | Supported | Notes |
|---|---|---|
| Video posts | Yes | One video per post, taken from the first container carrying media |
| Text-only posts | No | A post with no video is rejected |
| Image posts | No | Vimeo is video-only |
| Comments/replies | Yes | Publish and read comments on your videos |
| Post analytics | Yes | Plays, likes and comment count |
| Account metrics | No | Vimeo account-level insights are not exposed through Outstand |
| Repost | No | Vimeo has no repost concept |
| Post deletion | Yes | Via DELETE /v1/posts/{id}/remote - this deletes the video from Vimeo |
| Post imports | No | Not yet supported - existing Vimeo videos cannot be imported |
Token Management
Vimeo access tokens do not expire. There is no refresh flow, and nothing to renew on a schedule. A token stops working only when the user revokes the app's access from their Vimeo account settings, or when the credentials behind it are rotated - in either case, reconnect the account to restore publishing.
Rate Limits
Vimeo applies API request limits, but the constraint that bites in practice is the storage allowance on your Vimeo plan. Uploads consume it, and once it is exhausted the publish fails even though your API request rate is well within limits. Check your remaining allowance in your Vimeo account settings before scheduling a burst of videos.
Limitations
- Every post needs a video; text-only and image posts are rejected
- One video per post - additional media containers are ignored
- Analytics are limited to plays, likes and comments; Vimeo exposes no impressions or reach figure through this integration
- No import of existing Vimeo videos
- Deleting a post via the API deletes the underlying video on Vimeo, which cannot be undone