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:

  1. A Vimeo account with enough remaining storage for the videos you intend to publish
  2. A registered Vimeo app, created at developer.vimeo.com/apps
  3. Your app's Client Identifier and Client Secret
  4. 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/callback

Vimeo 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:

ScopePurpose
publicRead public video and profile data
privateRead private videos belonging to the connected account
uploadUpload new videos (requires Vimeo's manual upload-access approval)
editSet video title, description and privacy on upload
deleteRemove videos via DELETE /v1/posts/{id}/remote
interactPost 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

FieldRequiredDescription
titleNoVideo title. Defaults to the first line of the container content, truncated to 128 characters, or Untitled Video when the content is empty
descriptionNoVideo description. Defaults to the full container content
privacyViewNoWho can watch: anybody, unlisted, nobody, password, contacts, users or disable. Defaults to anybody
privacyEmbedNoWhere the video can be embedded: public, private or whitelist. Defaults to public

Note: privacyView is plan-gated by Vimeo. Free accounts get anybody and nobody; unlisted, password and 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 default anybody unless 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

FeatureSupportedNotes
Video postsYesOne video per post, taken from the first container carrying media
Text-only postsNoA post with no video is rejected
Image postsNoVimeo is video-only
Comments/repliesYesPublish and read comments on your videos
Post analyticsYesPlays, likes and comment count
Account metricsNoVimeo account-level insights are not exposed through Outstand
RepostNoVimeo has no repost concept
Post deletionYesVia DELETE /v1/posts/{id}/remote - this deletes the video from Vimeo
Post importsNoNot 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