Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the LazyAds API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Flazyads.ai%2Flazyads" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Flazyads.ai%2Flazyads" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with LazyAds API.
Create a draft campaign on platforms such as meta, google, tiktok, or linkedin, or import live campaigns already running there
Pause and resume campaigns, ad sets, and individual ads, and set daily budgets in dailyBudgetUsd
Update ad set targeting, add search keywords, set a manual bidUsd, or switch the conversion event a Meta ad set optimizes for
Edit an ad's headline, body, call to action, destinationUrl, and urlTags, or attach a creative by creativeId
GET STARTED
Pull performance metrics for a date range grouped by day, platform, or campaign
Send up to 100 server-side conversion events per call with eventName and eventId for pixel deduplication
Search competitor ads from the Meta Ad Library by query, country, or website
Patterns agents use LazyAds API for, with concrete tasks.
★ Agent-managed ad spend through Jentic
An AI agent reviewing ad performance can read metrics from the performance operation, then pause underperforming ad sets or lower their daily budget, one ad set id at a time. Through Jentic the agent finds each operation by intent, the bearer key is injected at execution time, and a rule can allow pause and budget changes while leaving campaign creation and AI builds out of reach.
Call GET /performance with start_date '2026-10-01', end_date '2026-10-31', platform 'meta', and group_by 'campaign', then call POST /ad-sets/{id}/pause for the ad set with the highest cost and no conversions
Cross-network campaign control
Teams running ads on several networks usually juggle a separate console for each. LazyAds exposes one set of operations for campaigns, ad sets, and ads across Meta, Google, TikTok, LinkedIn, Reddit, Apple, Bing, ChatGPT, and Snapchat, so pausing, resuming, renaming, and rebudgeting work the same way regardless of where the ad runs.
Call GET /campaigns with status 'active' and platform 'tiktok', then call POST /campaigns/{id}/budget with dailyBudgetUsd 75 for the campaign named 'Spring Launch'
Server-side conversion tracking
Browser pixels miss conversions to ad blockers and privacy settings. The LazyAds events operation accepts batches of first-party conversion events with an eventName such as Purchase or Lead, an eventId shared with the pixel for deduplication, and optional value, currency, and click ids like fbclid, gclid, and ttclid, with user data hashed server-side before forwarding.
Call POST /events with one event: eventName 'Purchase', eventId 'order-10482', value 129.0, currency 'USD', and the order's gclid
Competitor ad research
Planning new creative often starts with seeing what competitors run. LazyAds keeps a list of tracked competitors and searches the Meta Ad Library by keyword, country, and website, so an agent can collect competitor ad examples before briefing a new campaign or starting an AI campaign build.
Call GET /competitors/ads with q 'meal kit delivery', country 'US', and limit 20, then summarise the most common offers in the returned ads
43 endpoints — the lazyads api runs paid ad campaigns across meta, google, tiktok, linkedin, reddit, apple, bing, chatgpt, and snapchat from one interface.
METHOD
PATH
DESCRIPTION
/campaigns
List campaigns
/campaigns
Create a draft campaign
/campaigns/{id}/pause
Pause a campaign
/ad-sets/{id}/budget
Set an ad set daily budget
/ads/{id}
Update ad copy or destination URL
/performance
Get performance metrics
/events
Ingest conversion events
/competitors/ads
Search competitor ads
/campaigns
List campaigns
/campaigns
Create a draft campaign
/campaigns/{id}/pause
Pause a campaign
/ad-sets/{id}/budget
Set an ad set daily budget
/ads/{id}
Update ad copy or destination URL
/performance
Get performance metrics
/events
Ingest conversion events
/competitors/ads
Search competitor ads
What agents get from Jentic-routed access to this vendor.
Setup
Wiring LazyAds by hand means handling bearer auth, plan-gated operations that return errors on the wrong tier, per-key rate limit headers, and the optional X-LazyAds-Client header agencies use to target a client workspace. Through Jentic you install once, import LazyAds from the API Directory, store the key once, and your agent calls it.
Permission scoping
LazyAds puts the campaign, ad set, and ad id in the URL path (/campaigns/{id}/pause, /ad-sets/{id}/budget), so a rule can pin your agent to one campaign or ad set and the operations you pick. You choose the operations it may call, so spend-changing ones like budget increases or AI campaign builds are not included unless you add them.
Credential isolation
Your LazyAds API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'pause an ad campaign' or 'get ad performance by day', and Jentic returns the matching LazyAds operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using LazyAds API through Jentic.
Is there a LazyAds MCP server?
You don't need an MCP server to give your agent the LazyAds API. Jentic connects it directly from the API Directory: import it, store your API key once, and your agent calls it. Operations are discovered on demand, so your agent's context carries no tool definitions it will not use.
What authentication does the LazyAds API use?
Per its OpenAPI spec, the LazyAds API uses HTTP bearer authentication: send `Authorization: Bearer <api_key>` with a key generated in Settings, API. The spec notes that REST access needs a Growth, Scale, or Enterprise plan, and that the campaign build, chat, and competitor ads operations also need an AI plan. Through Jentic, the key is stored encrypted by your own Jentic One instance and injected at execution time.
Can I change budgets with the LazyAds API?
Yes. POST /campaigns/{id}/budget and POST /ad-sets/{id}/budget each take a required dailyBudgetUsd. For LinkedIn, TikTok, ChatGPT, and Snapchat ad sets, POST /ad-sets/{id}/bid sets a manual bid with bidUsd.
What are the rate limits for the LazyAds API?
Per the OpenAPI spec description, rate limits are per key per minute: Growth 100, Scale 500, and Enterprise 1000, with the current state returned in X-RateLimit-* response headers.
How do I pause a campaign with LazyAds through Jentic?
Install Jentic One with `curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh`, import the LazyAds API from the directory, and store your API key. Your agent then searches for 'pause an ad campaign', and Jentic returns POST /campaigns/{id}/pause, which takes the campaign id from GET /campaigns. To run it on your own infrastructure, install Jentic One from its GitHub repo.
Can I send server-side conversions with the LazyAds API?
Yes. POST /events accepts between 1 and 100 events per request, each with a required eventName and eventId. The eventId is shared with the pixel for deduplication, and optional fields include value, currency, orderId, and click ids such as fbclid, gclid, and ttclid.
Can I limit what my agent is allowed to do with the LazyAds API?
Yes. For a spend-watching assistant, write a rule that allows GET /performance and POST /ad-sets/{id}/pause for the ad set ids you name: the agent can read results and pause those ad sets, but cannot create campaigns, change budgets, or edit ads, and every call it makes is logged.
For Agents
Create, pause, resume, and rebudget ad campaigns, ad sets, and ads across Meta, Google, TikTok, LinkedIn, and other networks, read performance, send conversion events, and research competitor ads.
Use for: I need to pause every Meta campaign that is overspending this week, Get the performance for my Google campaigns grouped by day for last month, Set the daily budget on this ad set to 50 dollars, Find all paused campaigns on TikTok
Not supported: Does not handle organic social posting, email campaigns, SEO, or ad creative design tools. Use for running and measuring paid ad campaigns across ad networks only.
The LazyAds API runs paid ad campaigns across Meta, Google, TikTok, LinkedIn, Reddit, Apple, Bing, ChatGPT, and Snapchat from one interface. It creates draft campaigns or imports live ones, pauses and resumes campaigns, ad sets, and ads, sets daily budgets and manual bids, updates targeting and search keywords, and edits ad copy, destination URLs, and UTM tags. Reporting covers performance metrics grouped by day, platform, or campaign, along with pixels, conversion-event volume, and audiences, and the API also ingests server-side conversion events, starts AI campaign builds, searches competitor ads in the Meta Ad Library, and sends outbound webhooks.
This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.
Base layer of spec validity and structural soundness.
Aggregated quality score from linter diagnostics, weighted by severity.
Percentage of `$ref` references that resolve successfully.
Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).
Structural correctness score based on schema issues using logarithmic dampening.
Clarity, completeness, and ingestion readiness for developers and tooling.
How richly the API is illustrated with examples.
Percentage of examples that conform to their schemas.
Percentage of operations with complete response definitions (success, client error, server error).
Health of API ingestion, bundling, and resolution within Jentic pipelines.
Semantic breadth, depth, and agent comprehension for AI systems.
Coverage of descriptions across API elements.
Coverage of RFC 9457 Problem Details for error responses.
Coverage, uniqueness, and casing consistency of operationIds for AI inference.
Coverage of summaries across operations/tags/info.
Functional utility, complexity comfort, and AI orchestration readiness.
Agent comfort level based on API operational and structural complexity.
Trust, risk posture, and security compliance.
Average quality of security schemes based on authentication method strength (weakest link for OAuth2).
Findability, semantic richness, and reasoning readiness.
Clarity and depth of descriptions across API elements.
Score it yourself
Every API in the directory is allowlisted, so you can re-score it with no key required.
npx @jentic/api-scorecard-cli score <openapi-url>