Reserve reach-frequency inventory
Locks the quoted price and inventory of a Meta reach and frequency prediction so you can launch a campaign on it.
Locks the quoted price + inventory until the returned expiresAt and mints a NEW
prediction id. Pass that RESERVED id (not the original) as rfPredictionId on
POST /v1/ads/create. Release an unused reservation via DELETE.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
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.reachandfrequency.reserveRfPrediction({ path: { predictionId: 'prediction_abc123', }, body: { accountId: 'account_abc123', adAccountId: 'adaccount_abc123', },});console.log(data);{ "adAccountId": "string", "prediction": { "predictionId": "string", "status": "string", "budget": 0, "reach": 0, "impressions": 0, "minBudget": 0, "maxBudget": 0, "minReach": 0, "maxReach": 0, "frequencyCap": 0, "startTime": 0, "stopTime": 0, "expiresAt": "string" }}Cancel reach-frequency booking
Cancels a Meta reach and frequency reservation, releasing its locked price and inventory. Unreserved predictions expire on their own.
List leads for a single form
Lists the leads submitted through one Meta lead form. Serves persisted leads (ingested via the leadgen webhook) when available, falling back to a live Graph read. Accepts a Facebook account or a metaads business-login account with leads_retrieval access to the form; the latter uses its system-user token without a posting parent. Persisted leads arrive in real time through Meta's webhook, and a background pass re-reads every Page from Meta to catch the leads the webhook misses: every 15 minutes for Pages that received a lead in the last 7 days. `meta.lastCheckedAt` says when that pass last ran, so polling this endpoint faster than that returns nothing new; subscribe to the `lead.received` webhook instead. The live Graph read is cached for 5 minutes, and `meta.lastCheckedAt` is when it was read.