Adflex API V2 examples Checked: 2026-09-02 Documentation: https://doc.adflex.io/guide Never put an API key in a browser, URL, query string, public repository, or client-side application. Use the x-api-key request header from a server-side process. 1. Get Facebook filter definitions (free endpoint) curl --get "https://api.adflex.io/api/v2/ads/facebook/filters" \ --header "x-api-key: YOUR_API_KEY" 2. Search Facebook ads, page 1 curl --request POST "https://api.adflex.io/api/v2/ads/facebook/search" \ --header "Content-Type: application/json" \ --header "x-api-key: YOUR_API_KEY" \ --data '{ "page": 1, "advanced_order": {"orderby": "newest", "order": "desc"}, "search_field": [{"type": "text", "text": "smart ring"}] }' 3. Continue the same search Copy data.last_hit from page 1. Keep every filter and sort unchanged. curl --request POST "https://api.adflex.io/api/v2/ads/facebook/search" \ --header "Content-Type: application/json" \ --header "x-api-key: YOUR_API_KEY" \ --data '{ "page": 2, "last_hit": 1786180640, "advanced_order": {"orderby": "newest", "order": "desc"}, "search_field": [{"type": "text", "text": "smart ring"}] }' 4. Search all supported sources through Mega Search curl --request POST "https://api.adflex.io/api/v2/ads/mega/search" \ --header "Content-Type: application/json" \ --header "x-api-key: YOUR_API_KEY" \ --data '{ "page": 1, "advanced_order": {"orderby": "newest", "order": "desc"}, "search_field": [{"type": "text", "text": "smart ring"}] }' Mega has no detail endpoint. Read platform and id from a Mega result, then call: GET https://api.adflex.io/api/v2/ads/{platform}/{id} 5. JavaScript (Node.js 18+) const response = await fetch("https://api.adflex.io/api/v2/ads/mega/search", { method: "POST", headers: { "content-type": "application/json", "x-api-key": process.env.ADFLEX_API_KEY, }, body: JSON.stringify({ page: 1, advanced_order: { orderby: "newest", order: "desc" }, search_field: [{ type: "text", text: "smart ring" }], }), }); const payload = await response.json(); if (payload.status !== "ok" || payload.meta?.code !== 1000) { throw new Error(payload.meta?.message || "Adflex API request failed"); } console.log(payload.data.ads); 6. Python 3 with requests import os import requests response = requests.post( "https://api.adflex.io/api/v2/ads/mega/search", headers={"x-api-key": os.environ["ADFLEX_API_KEY"]}, json={ "page": 1, "advanced_order": {"orderby": "newest", "order": "desc"}, "search_field": [{"type": "text", "text": "smart ring"}], }, timeout=30, ) response.raise_for_status() payload = response.json() if payload.get("status") != "ok" or payload.get("meta", {}).get("code") != 1000: raise RuntimeError(payload.get("meta", {}).get("message") or "Adflex API request failed") print(payload["data"]["ads"]) Important response rules - HTTP 200 does not guarantee application success. Require status=ok and meta.code=1000. - A search returns up to 18 ads per page. - Page 1 omits last_hit. Later pages reuse the exact page-one data.last_hit value. - Do not change filters or sorting while continuing a pagination snapshot. - Use the source platform for Mega ad details; /ads/mega/{id} does not exist. - Filter and filter-item endpoints are free. Search and ad-detail requests currently cost 100 credits each.