Aveiro API
Authentication
Sites
List Sites
List Templates
Create Site
Pages
Create a Page
Delete a Page
List Pages
Reorder Pages
Update a Page
Site Media
Publish Site
Audience
Newsletter API Overview
Newsletter Campaigns
Social
Social API Overview
Social Accounts
Social Media
Social Posts
Social Performance
Website Mockup Video
TrademarkTrademark
Ctrl k
Search…
Sign up
Aveiro API
Authentication
Sites
List Sites
List Templates
Create Site
Pages
Create a Page
Delete a Page
List Pages
Reorder Pages
Update a Page
Site Media
Publish Site
Audience
Newsletter API Overview
Newsletter Campaigns
Social
Social API Overview
Social Accounts
Social Media
Social Posts
Social Performance
Website Mockup Video
Sponsored
Aveiro
aveiro.app
Sponsored
Aveiro
aveiro.app
TrademarkTrademark
AveiroBlogContact
© Aveiro. All rights reserved.
Built with Aveiro

Website Mockup Video

GET/POST /api/v1/social/video and GET /api/v1/social/video/{renderId} — film a public URL into a 3D mockup video in the social library.
Updated 9d ago
Social Performance
In short
Film a publicly reachable web page in a 3D device mockup and register the finished video in the social media library. Renders are asynchronous — POST returns pending jobs, poll GET /api/v1/social/video/{renderId} until done, then attach the asset id to a draft. Credits are charged at enqueue and refunded on failure.

How it works

Unlike every other media route, website renders take minutes. The page is loaded in a real browser, filmed in a 3D scene, and encoded by a render farm — not by a generative model. The flow is:
  • GET lists available presets and recent renders for the org
  • POST quotes (with estimateOnly) or enqueues a render — returns 202 with pending jobs
  • GET {renderId} polls until done (carries the library asset) or error (credits refunded)
The page must be publicly reachable — content behind a login cannot be filmed. A second cut of the same URL reuses the browser capture unless you pass recapture: true. Pricing: Frametic bills in render units (50 AI credits per unit). Full HD = 1 unit, QHD = 2, 4K = 3; clips longer than ten seconds double. A typical Full HD cut costs far less than a five-second AI video clip because this is deterministic capture, not model inference. MCP tools: aveiro_video_list_presets, aveiro_video_create_mockup, aveiro_video_get.

List presets and renders

GET /api/v1/social/video Authorization: Bearer av_live_…
Required scope: social:write
Returns { renders, presets, available }. When Frametic is not configured on the deployment, available is false and both arrays are empty.
Each render includes id, sourceUrl, status (pending, done, or error), assetId (set when done), credits, and error (when failed).
Presets (presets) are bundle ids that produce several cuts in one enqueue — e.g. a vertical and a square cut for social, or a 4K landscape hero.

Start a render

POST /api/v1/social/video Authorization: Bearer av_live_… Content-Type: application/json { "url": "https://example.com", "preset": "social-pack", "durationSec": 8, "still": false, "recapture": false, "estimateOnly": false }
Required scope: social:write
Field
Required
Description
urlyesPublicly reachable page to film (max 2,000 chars)
presetnoPreset id from GET; omit for a single landscape cut
durationSecnoLength in seconds (2–60); over 10s doubles the unit cost
stillnoRender one frame instead of a video — far cheaper
recapturenoRe-film the page even when a capture exists (site changed)
estimateOnlynoReturn the credit cost without starting or charging
When estimateOnly is true, returns 200:
Otherwise returns 202:
Credits are debited at enqueue. Failed renders refund exactly what was charged.

Poll one render

GET /api/v1/social/video/{renderId} Authorization: Bearer av_live_…
Required scope: social:write
Returns { render: { …, asset: { id, url, aspectRatio, … } | null } }. Poll after POST until status is done or error. When done, asset carries the full library record — attach asset.id via mediaAssignments on post create/update.

Errors

HTTP
Code
When
400VALIDATION_ERRORInvalid URL or body
401UNAUTHORIZEDMissing or invalid token
402QUOTA_EXCEEDEDInsufficient AI credits
403FORBIDDENToken lacks social:write
404NOT_FOUNDRender id not in this organization
501NOT_CONFIGUREDFrametic not configured on this deployment
502FRAMETIC_ERRORUpstream render service error

Stuck renders

Renders that finish on Frametic but miss the completion webhook (for example, when webhook delivery is misconfigured) used to stay pending forever. GET /api/v1/social/video and GET /api/v1/social/video/{renderId} now run a reconciliation sweep: jobs older than a few minutes are checked against Frametic directly — finished ones ingest like a webhook, failed ones refund credits and surface the error. The dashboard renders list runs the same sweep when you open it.

Related

  • Social API overview
  • Social media
  • Social posts
  • Platform docs: Social agents and API
{
  "credits": 50,
  "durationSec": 8,
  "variants": [{ "id": "…", "label": "Full HD landscape", "units": 1 }]
}
{
  "renders": [
    {
      "id": "render-uuid",
      "status": "pending",
      "sourceUrl": "https://example.com",
      "assetId": null,
      "credits": 50
    }
  ],
  "credits": 50
}