---
title: Vimeo REST API
menu_group: REST API
menu_order: 20
tab: Vimeo
tab_order: 20
requires_vimeo: true
summary: Check Vimeo connection status and import or sync videos via REST.
---

# Vimeo REST API

Vimeo REST routes require **Enable Vimeo Integration** on **MediaBlaster → General Settings**, plus a connected OAuth token under **Integrations**.

Base path: `/wp-json/mediablaster/v3/vimeo/`

All Vimeo write routes require `edit_posts`.

## Status

`GET /vimeo/status`

Returns whether credentials and an access token are configured.

**Configured and connected:**

```json
{
  "configured": true,
  "authenticated": true
}
```

**Not configured:**

```json
{
  "configured": false,
  "authenticated": false,
  "message": "Vimeo API credentials are not configured."
}
```

Use this before building import UIs so clients can show setup instructions.

## Import from Vimeo URL

`POST /vimeo/import`

Creates a new content post from a Vimeo video and populates MediaBlaster meta from the Vimeo API.

### Request body

| Field | Required | Description |
|-------|----------|-------------|
| `vimeo_url` | Yes | Full Vimeo URL (e.g. `https://vimeo.com/123456789`) |
| `type` | Yes | `movies`, `videos`, or `episodes` (not `series`) |
| `status` | No | Default `draft`; `publish` requires publish capability |

Example:

```json
{
  "vimeo_url": "https://vimeo.com/123456789",
  "type": "movies",
  "status": "draft"
}
```

### Behavior

- Fetches video metadata from Vimeo (`/me/videos/{id}`).
- Creates a WordPress post of the requested type.
- Sets `rovidx_smart_tv_vm_pro_url` from the Vimeo link.
- Sets HLS URL, duration, format (`HLS`), quality, title/description when import options allow.
- Attaches featured image from Vimeo thumbnails when available.
- Imports Vimeo tags to post tags when present.

Response: full [content object](rest-api-content.md) for the new post.

## Sync existing post

`POST /vimeo/sync/{post_id}`

Refreshes an existing post from its stored Vimeo URL.

### Requirements

- Post must exist and be a supported content type.
- Caller must be able to `edit_post` for that ID.
- Post meta `rovidx_smart_tv_vm_pro_url` must contain a valid Vimeo URL.

### Behavior

- Re-fetches Vimeo video data.
- Updates `rovidx_smarttv_URL`, duration, format, quality, and optional title/description per **Vimeo Settings** import toggles.
- Updates featured image when a thumbnail is available.

Response: full updated content object.

Errors:

| Code | When |
|------|------|
| `mediablaster_not_found` | Invalid post |
| `mediablaster_forbidden` | Cannot edit post |
| `mediablaster_invalid_payload` | Missing Vimeo URL on post |
| `mediablaster_vimeo_not_configured` | Integration disabled |
| `mediablaster_vimeo_sync_failed` | Vimeo API or processing error |

## Admin alternatives

The same Vimeo logic is available in wp-admin without REST:

- **Load Video Data** on the post editor ([Vimeo metabox](metabox-vimeo-import.md))
- **Vimeo Mass Import** ([Mass Import guide](vimeo-mass-import.md))

REST is intended for agents, headless tools, and automated pipelines.

## Related guides

- [REST API Overview](rest-api-overview.md)
- [Content API and Fields](rest-api-content.md)
- [Integrations — Vimeo OAuth](integrations-vimeo-oauth.md)
- [Vimeo Settings](vimeo-settings.md)
