Zernio
APIFor you
Zernio
APIFor you
API Reference

Creatives

Creative libraryGETAd image libraryGETAd video libraryGETList TikTok ad identitiesGETList partnership ad contentGETList partnership permissionsGETCreate a standalone creativePOSTCreative detailsGETDirect video and image URLs for an adGETRender previews of an existing adGETGet ad video processing statusGETSet partnership permissionPOSTRename a creativePUTDelete a creativeDELETEDelete an ad videoDELETERender pre-create ad previewsPOSTUpload an ad image from base64POSTUpload an ad videoPOST
Dashboard
OverviewPlatformsAPI ReferenceResources
Creatives

Ad image library

Lists the images in a Meta ad account's library so you can reuse one in a creative.

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).


PlatformsMeta
GET
/v1/ads/images

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Query Parameters

accountId*string

Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.

adAccountId*string

Meta ad account id (act_).

fields?string

Comma-separated Graph field override. Supports nested {} projections and Graph field modifiers, so a nested edge can be paged explicitly: without a .limit() modifier the expansion runs at the Meta default page size and the tail is dropped silently.

limit?integer

Rows per page

Range1 <= value <= 100
Default25
after?string

Cursor from paging.after of the previous page.

Response Body

application/json

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.listAdImages({  query: {    accountId: 'account_abc123',    adAccountId: 'adaccount_abc123',  },});console.log(data);
{  "adAccountId": "string",  "data": [    {}  ],  "paging": {    "after": "string"  }}
Was this page helpful?

Creative library

Lists the creatives saved in a Meta ad account so you can reuse one in a new ad. Lists the ad account's creative library (Meta's `/act_X/adcreatives`), rows returned verbatim. The default projection covers id, name, status, object type, thumbnail, object_story_spec / asset_feed_spec and url_tags; `fields` is a raw-passthrough override. Any creative id here is reusable on the create endpoints via `existingCreativeId`.

Ad video library

Lists the videos in a Meta ad account's library, including ones uploaded elsewhere, so you can reuse one across ads. Lists the ad account's video library (Meta's `/act_X/advideos`), rows returned verbatim. The default projection covers id, title, status, poster frames, length and `source` (the playable MP4); `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. `source` lets you PLAY a video before picking it, which a poster frame alone can't settle when several videos share a first frame. It is a signed CDN URL that EXPIRES, so treat it as good for preview at selection time only. Never persist it; re-list to get a fresh one. 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`. Upload a new video via POST /v1/ads/videos, or inline via `video.url` on POST /v1/ads/create.