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

Creative details

Shows the details of one Meta creative, such as its content, status and thumbnail.

One creative's details, verbatim from Meta. fields is a raw-passthrough override of the default projection.


PlatformsMeta
GET
/v1/ads/creatives/{creativeId}

Authorization

bearerAuth
AuthorizationBearer <token>

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

In: header

Path Parameters

creativeId*string

Platform creative id

Query Parameters

accountId*string

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

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.

thumbnailWidth?integer

Width in pixels of the thumbnail_url rendering, forwarded to Meta as thumbnail_width. Without it Meta returns a 64x64 thumbnail.

Range1 <= value <= 4096
thumbnailHeight?integer

Height in pixels of the thumbnail_url rendering, forwarded to Meta as thumbnail_height. Without it Meta returns a 64x64 thumbnail.

Range1 <= value <= 4096

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.getAdCreative({  path: {    creativeId: 'creative_abc123',  },  query: {    accountId: 'account_abc123',  },});console.log(data);
{  "creative": {}}
Was this page helpful?

Create a standalone creative

Creates a reusable Meta creative from an image or carousel without creating an ad, ready to attach to ads later. 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. `creativeFeatures` configures Advantage+ enhancements. `promotion` is not supported and any object is rejected with 400.

Direct video and image URLs for an ad

Returns fresh, short-lived download links for every image and video a Meta ad uses, including the original media of a boosted Instagram post. Returns the direct signed URLs for every video and image asset used by an ad's live creative, normalised across shapes: single image/video, carousel, Reels/Story (`object_story_spec.video_data`) and dynamic creative (`asset_feed_spec`). Video items include Meta's poster thumbnail and the video's Meta id when available. Boosted Instagram posts (creatives with no image of their own) return the original post's media: the image, the video with its cover as `thumbnailUrl`, or every child of a carousel post with `index`. When the connection cannot read the Instagram post, the item is a 1080px rendering of the creative instead. Reads Meta live rather than the stored creative blob because Meta's signed fbcdn URLs carry an `oe=<hex>` expiration (image_url ~24 h, video source ~12 d). Treat URLs as short-lived: re-fetch this endpoint before serving or downloading assets instead of caching URLs beyond that window.