> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Vimeo OAuth 2.0 connector profile – StackOne setup guide

> Set up the OAuth 2.0 connector profile for Vimeo in StackOne. One-time admin setup required before your users can link Vimeo accounts via Hub.

<Warning>A Vimeo Pro, Business, or Premium account is recommended for full API access.</Warning>

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;vimeo_get_authenticated_user&#x22;,&#x22;label&#x22;:&#x22;Get Authenticated User&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_get_user&#x22;,&#x22;label&#x22;:&#x22;Get User&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_edit_user&#x22;,&#x22;label&#x22;:&#x22;Edit User&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_edit_user_by_id&#x22;,&#x22;label&#x22;:&#x22;Edit User By ID&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_search_users&#x22;,&#x22;label&#x22;:&#x22;Search Users&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_user_followers&#x22;,&#x22;label&#x22;:&#x22;List User Followers&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_user_following&#x22;,&#x22;label&#x22;:&#x22;List User Following&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_follow_user&#x22;,&#x22;label&#x22;:&#x22;Follow User&#x22;,&#x22;scopes&#x22;:[&#x22;interact&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_unfollow_user&#x22;,&#x22;label&#x22;:&#x22;Unfollow User&#x22;,&#x22;scopes&#x22;:[&#x22;interact&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_embed_presets&#x22;,&#x22;label&#x22;:&#x22;List Embed Presets&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_portfolios&#x22;,&#x22;label&#x22;:&#x22;List Portfolios&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_watch_history&#x22;,&#x22;label&#x22;:&#x22;List Watch History&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_videos&#x22;,&#x22;label&#x22;:&#x22;List Videos&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_user_videos&#x22;,&#x22;label&#x22;:&#x22;List User Videos By ID&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_get_video&#x22;,&#x22;label&#x22;:&#x22;Get Video&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_search_videos&#x22;,&#x22;label&#x22;:&#x22;Search Videos&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_update_video&#x22;,&#x22;label&#x22;:&#x22;Update Video&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_upload_video&#x22;,&#x22;label&#x22;:&#x22;Upload Video&#x22;,&#x22;scopes&#x22;:[&#x22;upload&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_upload_video_by_user_id&#x22;,&#x22;label&#x22;:&#x22;Upload Video By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;upload&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_delete_video&#x22;,&#x22;label&#x22;:&#x22;Delete Video&#x22;,&#x22;scopes&#x22;:[&#x22;delete&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_create_folder&#x22;,&#x22;label&#x22;:&#x22;Create Folder&#x22;,&#x22;scopes&#x22;:[&#x22;create&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_folders&#x22;,&#x22;label&#x22;:&#x22;List Folders&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_get_folder&#x22;,&#x22;label&#x22;:&#x22;Get Folder&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_update_folder&#x22;,&#x22;label&#x22;:&#x22;Update Folder&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_delete_folder&#x22;,&#x22;label&#x22;:&#x22;Delete Folder&#x22;,&#x22;scopes&#x22;:[&#x22;delete&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_folder_videos&#x22;,&#x22;label&#x22;:&#x22;List Folder Videos&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_add_folder_video&#x22;,&#x22;label&#x22;:&#x22;Add Video To Folder&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_remove_folder_video&#x22;,&#x22;label&#x22;:&#x22;Remove Video From Folder&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_create_folder_by_user_id&#x22;,&#x22;label&#x22;:&#x22;Create Folder By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;create&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_folders_by_user_id&#x22;,&#x22;label&#x22;:&#x22;List Folders By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_get_folder_by_user_id&#x22;,&#x22;label&#x22;:&#x22;Get Folder By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_update_folder_by_user_id&#x22;,&#x22;label&#x22;:&#x22;Update Folder By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_delete_folder_by_user_id&#x22;,&#x22;label&#x22;:&#x22;Delete Folder By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;delete&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_folder_videos_by_user_id&#x22;,&#x22;label&#x22;:&#x22;List Folder Videos By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_add_folder_video_by_user_id&#x22;,&#x22;label&#x22;:&#x22;Add Video To Folder By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_remove_folder_video_by_user_id&#x22;,&#x22;label&#x22;:&#x22;Remove Video From Folder By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_create_showcase&#x22;,&#x22;label&#x22;:&#x22;Create Showcase&#x22;,&#x22;scopes&#x22;:[&#x22;create&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_showcases&#x22;,&#x22;label&#x22;:&#x22;List Showcases&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_get_showcase&#x22;,&#x22;label&#x22;:&#x22;Get Showcase&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_update_showcase&#x22;,&#x22;label&#x22;:&#x22;Update Showcase&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_delete_showcase&#x22;,&#x22;label&#x22;:&#x22;Delete Showcase&#x22;,&#x22;scopes&#x22;:[&#x22;delete&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_showcase_videos&#x22;,&#x22;label&#x22;:&#x22;List Showcase Videos&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_add_showcase_video&#x22;,&#x22;label&#x22;:&#x22;Add Video To Showcase&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_remove_showcase_video&#x22;,&#x22;label&#x22;:&#x22;Remove Video From Showcase&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_create_showcase_by_user_id&#x22;,&#x22;label&#x22;:&#x22;Create Showcase By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;create&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_showcases_by_user_id&#x22;,&#x22;label&#x22;:&#x22;List Showcases By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_get_showcase_by_user_id&#x22;,&#x22;label&#x22;:&#x22;Get Showcase By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_update_showcase_by_user_id&#x22;,&#x22;label&#x22;:&#x22;Update Showcase By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_delete_showcase_by_user_id&#x22;,&#x22;label&#x22;:&#x22;Delete Showcase By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;delete&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_showcase_videos_by_user_id&#x22;,&#x22;label&#x22;:&#x22;List Showcase Videos By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_add_showcase_video_by_user_id&#x22;,&#x22;label&#x22;:&#x22;Add Video To Showcase By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_remove_showcase_video_by_user_id&#x22;,&#x22;label&#x22;:&#x22;Remove Video From Showcase By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_create_channel&#x22;,&#x22;label&#x22;:&#x22;Create Channel&#x22;,&#x22;scopes&#x22;:[&#x22;create&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_channels&#x22;,&#x22;label&#x22;:&#x22;List Channels&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_get_channel&#x22;,&#x22;label&#x22;:&#x22;Get Channel&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_update_channel&#x22;,&#x22;label&#x22;:&#x22;Update Channel&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_delete_channel&#x22;,&#x22;label&#x22;:&#x22;Delete Channel&#x22;,&#x22;scopes&#x22;:[&#x22;delete&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_channel_videos&#x22;,&#x22;label&#x22;:&#x22;List Channel Videos&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_add_video_to_channel&#x22;,&#x22;label&#x22;:&#x22;Add Video To Channel&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_user_liked_videos&#x22;,&#x22;label&#x22;:&#x22;List Liked Videos&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_like_video&#x22;,&#x22;label&#x22;:&#x22;Like Video&#x22;,&#x22;scopes&#x22;:[&#x22;interact&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_unlike_video&#x22;,&#x22;label&#x22;:&#x22;Unlike Video&#x22;,&#x22;scopes&#x22;:[&#x22;interact&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_watch_later&#x22;,&#x22;label&#x22;:&#x22;List Watch Later&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_add_to_watch_later&#x22;,&#x22;label&#x22;:&#x22;Add To Watch Later&#x22;,&#x22;scopes&#x22;:[&#x22;interact&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_remove_from_watch_later&#x22;,&#x22;label&#x22;:&#x22;Remove From Watch Later&#x22;,&#x22;scopes&#x22;:[&#x22;interact&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_user_liked_videos_by_id&#x22;,&#x22;label&#x22;:&#x22;List User Liked Videos By ID&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_like_video_by_id&#x22;,&#x22;label&#x22;:&#x22;Like Video By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;interact&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_unlike_video_by_id&#x22;,&#x22;label&#x22;:&#x22;Unlike Video By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;interact&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_watch_later_by_id&#x22;,&#x22;label&#x22;:&#x22;List Watch Later By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;private&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_add_to_watch_later_by_id&#x22;,&#x22;label&#x22;:&#x22;Add To Watch Later By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;interact&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_remove_from_watch_later_by_id&#x22;,&#x22;label&#x22;:&#x22;Remove From Watch Later By User ID&#x22;,&#x22;scopes&#x22;:[&#x22;interact&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_video_comments&#x22;,&#x22;label&#x22;:&#x22;List Video Comments&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_add_video_comment&#x22;,&#x22;label&#x22;:&#x22;Add Video Comment&#x22;,&#x22;scopes&#x22;:[&#x22;interact&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_video_tags&#x22;,&#x22;label&#x22;:&#x22;List Video Tags&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_add_video_tag&#x22;,&#x22;label&#x22;:&#x22;Add Video Tag&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_remove_video_tag&#x22;,&#x22;label&#x22;:&#x22;Remove Video Tag&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_get_video_comment&#x22;,&#x22;label&#x22;:&#x22;Get Video Comment&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_edit_video_comment&#x22;,&#x22;label&#x22;:&#x22;Edit Video Comment&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_delete_video_comment&#x22;,&#x22;label&#x22;:&#x22;Delete Video Comment&#x22;,&#x22;scopes&#x22;:[&#x22;delete&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_video_thumbnails&#x22;,&#x22;label&#x22;:&#x22;List Video Thumbnails&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_add_video_thumbnail&#x22;,&#x22;label&#x22;:&#x22;Add Video Thumbnail&#x22;,&#x22;scopes&#x22;:[&#x22;upload&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_comment_replies&#x22;,&#x22;label&#x22;:&#x22;List Comment Replies&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_add_comment_reply&#x22;,&#x22;label&#x22;:&#x22;Add Comment Reply&#x22;,&#x22;scopes&#x22;:[&#x22;interact&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_video_credits&#x22;,&#x22;label&#x22;:&#x22;List Video Credits&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_add_video_credit&#x22;,&#x22;label&#x22;:&#x22;Add Video Credit&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_related_videos&#x22;,&#x22;label&#x22;:&#x22;List Related Videos&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_text_tracks&#x22;,&#x22;label&#x22;:&#x22;List Text Tracks&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_text_tracks_by_version_id&#x22;,&#x22;label&#x22;:&#x22;List Text Tracks By Version ID&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_text_tracks_by_channel_id&#x22;,&#x22;label&#x22;:&#x22;List Text Tracks By Channel ID&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_text_tracks_by_album_id&#x22;,&#x22;label&#x22;:&#x22;List Text Tracks By Album ID&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_get_text_track&#x22;,&#x22;label&#x22;:&#x22;Get Text Track&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_create_text_track&#x22;,&#x22;label&#x22;:&#x22;Create Text Track&#x22;,&#x22;scopes&#x22;:[&#x22;upload&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_create_text_track_by_channel_id&#x22;,&#x22;label&#x22;:&#x22;Create Text Track By Channel ID&#x22;,&#x22;scopes&#x22;:[&#x22;upload&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_edit_text_track&#x22;,&#x22;label&#x22;:&#x22;Edit Text Track&#x22;,&#x22;scopes&#x22;:[&#x22;edit&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_delete_text_track&#x22;,&#x22;label&#x22;:&#x22;Delete Text Track&#x22;,&#x22;scopes&#x22;:[&#x22;delete&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_content_ratings&#x22;,&#x22;label&#x22;:&#x22;List Content Ratings&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_categories&#x22;,&#x22;label&#x22;:&#x22;List Categories&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_list_groups&#x22;,&#x22;label&#x22;:&#x22;List Groups&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_get_languages&#x22;,&#x22;label&#x22;:&#x22;Get Languages&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]},{&#x22;id&#x22;:&#x22;vimeo_get_cc_licenses&#x22;,&#x22;label&#x22;:&#x22;Get Creative Commons Licenses&#x22;,&#x22;scopes&#x22;:[&#x22;public&#x22;]}]" style={{ borderRadius: '8px', padding: '16px', marginBottom: '24px' }}>
    <div className="guides-scope-selector__title" style={{ fontSize: '16px', fontWeight: '600', marginBottom: '12px' }}>Select Actions to adjust the guide</div>
    <div className="guides-scope-selector__muted" style={{ fontSize: '13px', marginBottom: '12px' }}>Some actions may require additional configuration in the provider to be accessible. Choose the actions you need and the guide will be updated.</div>

    <div style={{ display: 'flex', gap: '8px', marginBottom: '12px', flexWrap: 'wrap' }}>
      <input type="text" placeholder="Search actions..." className="guides-scope-selector__input" data-guide-action-search style={{ padding: '8px 12px', borderRadius: '6px', fontSize: '13px', flex: 1, minWidth: '160px' }} />

      <button type="button" className="guides-scope-selector__quick-btn" data-guide-select-all style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Select all</button>
      <button type="button" className="guides-scope-selector__quick-btn" data-guide-clear style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Clear</button>
    </div>

    <div className="guides-scope-selector__list" style={{ maxHeight: '240px', overflowY: 'auto', borderRadius: '6px', marginBottom: '12px' }}>
      <div className="guides-scope-selector__list-header" style={{ display: 'flex', alignItems: 'center', gap: '10px', padding: '8px 12px', fontSize: '12px', fontWeight: '600', position: 'sticky', top: 0, zIndex: 1 }}>
        <div style={{ width: '16px', flexShrink: 0 }} />

        <div style={{ flex: 1, textAlign: 'left' }}>Action</div>
        <div style={{ minWidth: '120px', marginLeft: 'auto', textAlign: 'right' }}>Scope(s)</div>
      </div>

      <div className="guides-scope-selector__muted" data-guide-loading style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>Loading actions...</div>
      <div className="guides-scope-selector__muted" data-guide-no-results hidden style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>No actions match your search.</div>
    </div>

    <div className="guides-scope-selector__url-section" style={{ marginTop: '12px', paddingTop: '12px' }}>
      <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Dynamic Guide URL</div>

      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', flexWrap: 'wrap' }}>
        <input type="text" readOnly className="guides-scope-selector__input" data-guide-url style={{ flex: 1, minWidth: '200px', padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace' }} />

        <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-url style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap', marginLeft: 'auto' }}>Copy URL</button>
      </div>

      <div style={{ marginTop: '12px' }}>
        <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Scopes Selected</div>

        <div style={{ display: 'flex', alignItems: 'stretch', gap: '8px', flexWrap: 'wrap' }}>
          <pre className="guides-scope-selector__input" role="textbox" aria-readonly="true" tabIndex={0} data-guide-scopes-output style={{ flex: 1, minWidth: '200px', minHeight: '88px', maxHeight: '120px', overflowY: 'auto', margin: 0, padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace', whiteSpace: 'pre-wrap' }} />

          <div className="guides-scope-selector__muted" style={{ display: 'flex', flexDirection: 'column', gap: '8px', fontSize: '12px', fontWeight: '500', flexShrink: 0, alignItems: 'flex-start' }}>
            <div style={{ whiteSpace: 'nowrap' }}>Separator</div>

            <select className="guides-scope-selector__input" data-guide-scope-delimiter style={{ width: '100%', padding: '6px 10px', borderRadius: '6px', fontSize: '12px' }}>
              <option value="space">Space</option>
              <option value="comma">Comma</option>
              <option value="semicolon">Semicolon</option>
              <option value="pipe">Pipe</option>
              <option value="newline">Newline</option>
            </select>

            <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-scopes style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap' }}>Copy scopes</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</Panel>

<section data-guide-section data-guide-scopes="">
  <h2>Register a Vimeo App</h2>

  <p>To use the Vimeo API with OAuth 2.0, you need to register an application on the Vimeo Developer site.</p>

  <Steps>
    <Step title="Access Vimeo Developer Portal">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Go to the <a href="https://developer.vimeo.com/apps" target="_blank" rel="noopener noreferrer">Vimeo Developer Portal</a> and sign in with your Vimeo account.</p>
      </div>
    </Step>

    <Step title="Create a New App">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click <strong>Create an App</strong> and fill in the required details.</p>

        <ul>
          <li><strong>App name</strong>: Choose a unique name for your app.</li>
          <li><strong>App description</strong>: Provide a brief description of your app's functionality.</li>
          <li>Check the box to agree to the Vimeo API Terms of Service.</li>
          <li>Click on `Create App` to move forward.</li>
        </ul>
      </div>
    </Step>

    <Step title="Configure OAuth Redirect URI">
      <div data-guide-step data-guide-scopes="public,private,purchased,create,edit,delete,interact,video_files,stats,promo_codes" data-guide-display-scopes-list="public,private,purchased,create,edit,delete,interact,video_files,stats,promo_codes">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="public,private,purchased,create,edit,delete,interact,video_files,stats,promo_codes" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Add Comment Reply, Add To Watch Later, Add To Watch Later By User ID, Add Video Comment, Add Video Credit, Add Video Tag, Add Video To Channel, Add Video To Folder, Add Video To Folder By User ID, Add Video To Showcase, Add Video To Showcase By User ID, Create Channel, Create Folder, Create Folder By User ID, Create Showcase, Create Showcase By User ID, Delete Channel, Delete Folder, Delete Folder By User ID, Delete Showcase, Delete Showcase By User ID, Delete Text Track, Delete Video, Delete Video Comment, Edit Text Track, Edit User, Edit User By ID, Edit Video Comment, Follow User, Get Authenticated User, Get Channel, Get Creative Commons Licenses, Get Folder, Get Folder By User ID, Get Languages, Get Showcase, Get Showcase By User ID, Get Text Track, Get User, Get Video, Get Video Comment, Like Video, Like Video By User ID, List Categories, List Channel Videos, List Channels, List Comment Replies, List Content Ratings, List Embed Presets, List Folder Videos, List Folder Videos By User ID, List Folders, List Folders By User ID, List Groups, List Liked Videos, List Portfolios, List Related Videos, List Showcase Videos, List Showcase Videos By User ID, List Showcases, List Showcases By User ID, List Text Tracks, List Text Tracks By Album ID, List Text Tracks By Channel ID, List Text Tracks By Version ID, List User Followers, List User Following, List User Liked Videos By ID, List User Videos By ID, List Video Comments, List Video Credits, List Video Tags, List Video Thumbnails, List Videos, List Watch History, List Watch Later, List Watch Later By User ID, Remove From Watch Later, Remove From Watch Later By User ID, Remove Video From Folder, Remove Video From Folder By User ID, Remove Video From Showcase, Remove Video From Showcase By User ID, Remove Video Tag, Search Users, Search Videos, Unfollow User, Unlike Video, Unlike Video By User ID, Update Channel, Update Folder, Update Folder By User ID, Update Showcase, Update Showcase By User ID, Update Video</span>
        </div>

        <p>Under your app settings, add the following callback URL to Authorized redirect URIs.</p>

        <ul>
          <li>You'll find the Client Id or Client Identifier and Client Secret (to scroll down below).</li>
          <li>Scroll down to the <strong>Authentication</strong> section and choose <strong>Authenticated (you)</strong> option.</li>
          <li>Select the necessary scopes, `public` scope is required.</li>
          <li>NOTE: `upload` scope is not available in sandbox environment, so we exclude it from the default scopes list. Users can still add it manually if needed.</li>
          <li>Scroll down to the <strong>Callback URLs</strong> section and click <strong>Add URL</strong>.</li>
          <li>Enter `https://api.stackone.com/connect/oauth2/vimeo/callback` as the redirect URI.</li>
          <li>Click <strong>Save</strong>.</li>
        </ul>

        <div style={{ marginTop: '8px' }} data-guide-display-scopes>
          <div className="connector-guide-scopes-container">
            <ul className="not-prose" style={{ listStyleType: "'- '", paddingLeft: '1em', margin: 0 }}>
              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="public">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy public" title="Copy scope" data-copy="public">
                  <span className="connector-guide-scope-copy__label">public</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="private">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy private" title="Copy scope" data-copy="private">
                  <span className="connector-guide-scope-copy__label">private</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="purchased">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy purchased" title="Copy scope" data-copy="purchased">
                  <span className="connector-guide-scope-copy__label">purchased</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="create">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy create" title="Copy scope" data-copy="create">
                  <span className="connector-guide-scope-copy__label">create</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="edit">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy edit" title="Copy scope" data-copy="edit">
                  <span className="connector-guide-scope-copy__label">edit</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="delete">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy delete" title="Copy scope" data-copy="delete">
                  <span className="connector-guide-scope-copy__label">delete</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="interact">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy interact" title="Copy scope" data-copy="interact">
                  <span className="connector-guide-scope-copy__label">interact</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="video_files">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy video_files" title="Copy scope" data-copy="video_files">
                  <span className="connector-guide-scope-copy__label">video\_files</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="stats">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy stats" title="Copy scope" data-copy="stats">
                  <span className="connector-guide-scope-copy__label">stats</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="promo_codes">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy promo_codes" title="Copy scope" data-copy="promo_codes">
                  <span className="connector-guide-scope-copy__label">promo\_codes</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>
  </Steps>
</section>

## Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for <strong>Vimeo</strong>:

<Steps>
  <Step title="Navigate to Connector Profiles">
    Login to StackOne and navigate to [Connector Profiles](https://app.stackone.com/connector_profiles)
  </Step>

  <Step title="Create New Connector Profile">
    <ul>
      <li>Click <strong>+ Connector Profile</strong></li>
      <li>Search for and select <strong>Vimeo</strong></li>
      <li>Select <strong>Type</strong> as <strong>OAuth 2.0</strong></li>

      <li>
        Fill out the fields using details retrieved from your provider:

        <ul style={{ marginLeft: '20px' }}>
          <li><strong>Client ID</strong></li>
          <li><strong>Client Secret</strong></li>
          <li><strong>Scopes</strong> (Optional)</li>
        </ul>
      </li>

      <li>(Optional) Select <strong>Actions</strong> to be enabled for this Connector Profile</li>
      <li>Click <strong>Create profile</strong></li>
    </ul>
  </Step>
</Steps>

Congratulations! The new Connector Profile will now show up in your project ready to be used. You can now continue to <a href="/guides/accounts-section#linking-accounts">Link Accounts</a> for <strong>Vimeo</strong>.
