Skip to content

MediaBlaster v3 REST namespace, discovery, schema, errors, and permissions.

REST API Overview

MediaBlaster 3.0 exposes a single custom WordPress REST namespace for apps, agents, and integrations.

Base URL

All routes live under:

https://YOUR-SITE.com/wp-json/mediablaster/v3

Legacy namespaces tv/roku and wpst/v1 are not registered in 3.0.0.

Discovery

GET /wp-json/mediablaster/v3

Public. Returns API metadata and links to major endpoints.

Example response fields:

FieldDescription
nameProduct name (MediaBlaster)
versionPlugin version
namespacemediablaster/v3
enabled_post_typesActive content types on this site
featuresvimeo, subscriptions, agent_tools flags
linksAbsolute URLs to schema, content, type routes, platform config (config), Vimeo, auth

Use this endpoint to probe capabilities before building a client.

Schema

Describe the public field model (not raw WordPress meta keys).

MethodRouteDescription
GET/schemaSchema for all supported types
GET/schema/{type}Schema for one type (movies, videos, episodes, series)

Each schema object includes type, label, supports, and a fields map with types, enums, and required flags.

See Content API and Fields for how schema fields map to request and response bodies.

Error responses

Errors use WordPress WP_Error JSON:

{
  "code": "mediablaster_not_found",
  "message": "Content not found.",
  "data": { "status": 404 }
}

Common codes:

CodeHTTPMeaning
mediablaster_invalid_type400Unknown or disallowed post type
mediablaster_invalid_payload400Validation failed
mediablaster_not_found404Post missing or wrong type for route
mediablaster_forbidden403Capability or publish permission denied
mediablaster_vimeo_not_configured400Vimeo integration off or not connected
mediablaster_vimeo_sync_failed500Vimeo API or sync error
mediablaster_invalid_platform400Unsupported platform on /config

Permissions (summary)

ActionRequirement
Read published contentPublic (subject to subscription access rules)
Read drafts/privateUser with edit_posts and appropriate query
Create contentedit_posts
Update contentedit_post on that post
Delete / trashdelete_post; permanent delete needs force=true and strong delete cap
Vimeo import/syncedit_posts + Vimeo enabled
Admin statsmanage_options
Auth / paymentsSee Subscriptions and Apps API

Locked premium content may omit media.url for users without access while other metadata remains visible.

Endpoint index

Content (always available)

MethodRoute
GET, POST/content
GET, PATCH, DELETE/content/{id}
GET, POST/movies, /videos, /episodes, /series
GET, PATCH, DELETE/{type}/{id}

Type routes are aliases of /content with type implied by the path.

App Config (always available)

MethodRoute
GET/config?platform=roku

Public platform app settings (branding, navigation, layout, labels). Managed under MediaBlaster → App Config → App Settings. Distinct from subscription GET /app/config.

See REST API — App Config.

Vimeo (requires Enable Vimeo Integration)

MethodRoute
GET/vimeo/status
POST/vimeo/import
POST/vimeo/sync/{post_id}

See Vimeo REST API.

Subscriptions and apps (requires WPST_SUBSCRIPTIONS_ENABLED + REST enabled)

MethodRoute
GET/me
GET/subscription/status
GET/subscription/tiers
GET/app/config
POST/auth/register, /auth/login, /auth/logout, /auth/refresh
POST/payments/stripe/create-checkout-session
POST/payments/stripe/create-portal-session
GET/payments/stripe/checkout-session
POST/payments/stripe/webhook (and other provider webhooks)
GET/stats/content, /stats/subscriptions, /stats/revenue

See Subscriptions and Apps API.

Authentication for write requests

  • WordPress session — cookie auth while logged into wp-admin works for same-origin tools.
  • Application Passwords — standard WordPress application passwords for server-to-server writes.
  • Bearer tokens — when subscriptions REST is enabled, POST /auth/login returns a token; send Authorization: Bearer {token} on subsequent requests.

Was this helpful?