Ad video library
Lists the ad account's video library (Meta's /act_X/advideos), rows returned verbatim.
The default projection covers id, title, status, poster frames and length; fields is a
raw-passthrough override. Any id here is reusable as video.id on the create
endpoints, so N ads that differ only in copy share one upload.
This is the only way to reach a video uploaded OUTSIDE Zernio (Ads Manager, another
tool); videos we uploaded also come back as creative.videoId on GET /v1/ads.
Meta transcodes asynchronously, so a row is only usable once status.video_status
reads ready. There is no upload operation here: upload by URL inline via video.url
on POST /v1/ads/create.
API key authentication - use your Zernio API key as a Bearer token
In: header
Query Parameters
Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.
Meta ad account id (act_).
Comma-separated Graph field override (supports nested {} projections).
Rows per page
251 <= value <= 100Cursor from paging.after of the previous page.
Response Body
application/json
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.adcreatives.listAdVideos({ query: { accountId: 'account_abc123', adAccountId: 'adaccount_abc123', },});console.log(data);{
"adAccountId": "string",
"data": [
{}
],
"paging": {
"after": "string"
}
}{
"error": "string",
"type": "invalid_request_error",
"code": "string",
"param": "string",
"platform": "string",
"platformError": {},
"details": {}
}{
"error": "Unauthorized"
}Ad image library GET
Lists the ad account's image library (Meta's `/act_X/adimages`), rows returned verbatim. The default projection covers hash, url, name, dimensions and status; `fields` is a raw-passthrough override. Any `hash` here is reusable wherever Meta accepts `image_hash` (e.g. `imageHash` on POST /v1/ads/creatives).
Create a standalone creative POST
Creates a creative in the library WITHOUT an ad, reusable on the create endpoints via `existingCreativeId`. Provide exactly one of `imageUrl` (uploaded server-side), `imageHash` (from POST /v1/ads/images or the library list), or `carouselCards` (2-10 hand-built cards). The Page (and linked Instagram account, when present) is resolved from `accountId` as the story actor.