Meet ElasticFunnels at Affiliate Grand Slam in Rome, 2–5 November 2026

Pricing Academy Blog

Is Meta CAPI free? Cost and setup

What the Meta Conversions API costs, where the real cost sits, the three ways to set it up, the steps Meta asks for, and the mistakes that quietly lose sales for people who run paid traffic.

Summarize with:
Illustration: a server card sends an arrow to a target while the monitor mascot holds up a single coin
The short answer

Yes, Meta CAPI is free. Meta doesn't charge for sending events through its Conversions API. The cost is in running it: a partner platform's plan, the cloud or partner fees for Meta's Conversions API Gateway, or the developer time and server for a direct integration.

For a seller on paid traffic, the setup that matters is the one that sends every purchase and upsell from where the order is recorded, with the click ID and hashed customer data, and the same event ID as the pixel.

I'd pick the method by where your sale happens, and only then look at the price.

"Is it free?" is a fair question, because most of the answers online come from companies selling a CAPI tool. The API itself costs nothing to call. What you pay for is the plumbing around it, and the cheapest plumbing isn't always the one that sends Meta the sales you care about. Here's what each option costs, what the setup involves, and where people lose sales without noticing.

What Meta CAPI is, in one paragraph

The Meta pixel reports events from the visitor's browser. The Conversions API reports them from a server: your own, a platform's or a gateway's. Meta processes server events the same way as pixel events, for reporting and for optimization. It recommends running both and sending the same events through each, because the pixel can lose events to network problems and page loading errors (Meta best practices). Ad blockers and closed tabs make the gap wider. For anyone optimizing campaigns on purchases, a purchase Meta never hears about is a purchase the algorithm can't learn from.

Illustration: a browser card whose dashed line stops short of the target, above a server card whose solid arrow reaches it
The browser path can break before the event reaches Meta. The server path doesn't depend on the visitor's browser.

What Meta CAPI costs to run

Meta's own documentation says the integration methods "vary by level of effort, cost, and the features they enable" (Meta, get started). In practice there are three ways in, and the bill looks different for each.

Illustration: three cards, a plug, a cloud and code brackets, with a small, medium and tall stack of coins under them
A partner integration, the Gateway, or your own code: the API is free in all three, the effort around it is not.
MethodWhat you pay forEffortWhat it sends
Partner integration (your store, funnel or checkout platform)Usually part of the platform you already pay forConnect a pixel ID and a tokenThe events the platform records, often including purchases from its own checkout
Conversions API GatewayCloud hosting in your own AWS or Google Cloud account, or a hosting partner's feeNo code; set up and maintain a cloud serviceCopies of the events your pixel sees in the browser
Direct integrationDeveloper time and the server it runs onBuild, test and keep up with Meta's changesAnything your server knows about, including events that happen after the visit

On the Gateway, Meta is explicit: "The only cost of the Conversions API Gateway is the associated cloud resource or partner fees" (Meta, Conversions API Gateway). It needs no code and Meta generates the event IDs for you. The catch is in the last column. The Gateway forwards what the pixel saw in the browser. If a purchase happens on your server, like a one-click upsell charged to the card on file, or a sale your call center closes the next day, the browser never sees it and the Gateway has nothing to forward.

That's why I wouldn't choose on price alone. For a funnel with upsells and late sales, the right setup is the one that sends events from where the order is recorded, and that's usually your checkout platform or your own server.

How to set up Meta CAPI

Whichever method you choose, Meta asks for the same pieces. A partner integration fills most of them in for you; a direct integration means building each one.

Illustration: five circles in a row with a key, a list, a padlock, a flask and a gauge, joined by arrows
Token, events, hashed customer data, a test, then the match score.
  1. Use your existing pixel ID. Meta asks for the same pixel ID for browser and server events.
  2. Generate an access token. In Events Manager, open the pixel's settings and generate a token under Conversions API. Meta creates a Conversions API app and system user for you, and there's no app review.
  3. Choose the events. For a funnel: Purchase for every order, including upsells, plus the earlier steps you optimize on, such as InitiateCheckout or Lead.
  4. Send the required fields. Each event needs event_name, event_time, action_source, and for website events event_source_url, plus value and currency on purchases.
  5. Add customer information. Email and phone hashed with SHA-256, the fbc value built from the fbclid click ID, the fbp browser ID, the IP address and the user agent.
  6. Deduplicate with the pixel. Give the pixel's event and the server's event the same name and the same event ID.
  7. Test, then watch the score. Send test events with the Test Events tool, then check Event Match Quality (EMQ) for each server event in Events Manager.

If your funnel starts on a presell or an advertorial and the checkout sits on another domain, check step 5 twice. The click ID arrives on the first page, and if it doesn't travel with the visitor to the checkout, every purchase reaches Meta without the one value that ties it to the ad.

Mistakes that quietly lose sales

None of these throw an obvious error. The events arrive, the dashboard looks busy, and the campaign optimizes on less than you think.

Illustration: a browser card and a server card whose arrows merge into one arrow ending at a single check mark, with the monitor mascot pointing at it
Two copies of the same purchase, one count. That only works when both copies carry the same event ID.
  • Double counting. If the pixel and the server both send Purchase without a shared event ID, Meta can count the sale twice and your reported ROAS looks better than it is. Meta discards the second copy only when the event name and ID match, within 48 hours (Meta, deduplication).
  • Losing the click ID. Redirects, link shorteners and cross-domain checkouts drop the fbclid. The sale still goes out, with nothing tying it to the ad.
  • Sending late sales too late. event_time can be at most 7 days in the past, and if one event in a batch is older, Meta rejects the whole request and processes none of it (Meta, server event parameters). Send call-center and delayed sales as they happen.
  • Unhashed or badly formatted data. Meta's SDKs hash for you. Without them, normalize and hash with SHA-256 yourself, or the match rate drops.
  • Only the front-end sale. If upsells don't go out as purchases, Meta optimizes toward buyers of the cheap first product and never sees which ads bring the buyers who take the upsell.

The last one is the expensive one for upsell funnels. Two ads can bring in the same number of front-end buyers and very different revenue per buyer, and Meta can only tell them apart if the upsells reach it.

Meta CAPI in ElasticFunnels

In ElasticFunnels the checkout, the upsells and the order record live in the same place, so the server that records the sale is the one that tells Meta about it. That's the setup I'd want for any funnel with upsells, and it's included on every plan.

  • Connect with a pixel ID and a system-user token. The Meta Conversions API integration needs no Meta app review.
  • Purchases and upsells from the server. Each sale and each upsell goes to Meta as it's recorded, with SHA-256 hashed customer data and the fbc value built from the fbclid captured on the visit.
  • ROAS counted on sales. Meta ad spend syncs back, so the Campaigns report shows spend next to the revenue your checkout recorded, per campaign, ad set and ad.

For the click ID side, what is fbclid explains how it becomes the _fbc cookie and how to keep it through a funnel. Marketing attribution models covers why Meta's numbers and your own never quite match.

My take
  • Don't pay for a CAPI tool that only mirrors your pixel if your upsells and late sales happen on the server. It sends Meta the part it already had.
  • Check deduplication before you trust a single ROAS number. A setup that double counts makes every campaign look better than it is.
  • Follow one real purchase through, from the ad click to Test Events, before you scale. A short check now beats a month of optimizing on half the data.
  • A high match score on a funnel that drops the click ID is still a broken setup. Check the fbc field on real events.

I spent nine years as CTO of a direct-response company, and one line from that time still sums up tracking for me: postbacks that broke when URLs changed. The Conversions API is the modern version of that problem. It's free to use and easy to switch on, and that's exactly why it's easy to get wrong without noticing. Spend the time on which sales reach Meta, and with what attached to them. That decides what your campaigns learn.

FAQ

Meta CAPI FAQ

Is the Meta Conversions API free?

Yes. Meta does not charge for sending events through the Conversions API. What costs money is running it: a partner platform's plan, the cloud or partner fees for the Conversions API Gateway, or the developer time and server for a direct integration.

How do I set up the Facebook Conversions API?

Use the same pixel ID as your browser pixel, generate an access token in Events Manager, then send each event with its name, time, source, value and hashed customer data, either through a partner integration, the Conversions API Gateway or your own server. Give browser and server copies of an event the same event ID, test with Test Events, and check Event Match Quality.

Is the Facebook pixel still used?

Yes. Meta recommends running the Conversions API alongside the pixel and sending the same events through both, which it calls a redundant setup. The server copy fills the gaps when the browser event is lost, and the shared event ID lets Meta count each event once.

What is the Conversions API Gateway?

A Meta product that runs in a cloud account you own (AWS or Google Cloud) or through a partner, receives your pixel's browser events and forwards them to the Conversions API without code. Meta's documentation says its only cost is the cloud resource or partner fees.

Do I need Meta app review for the Conversions API?

No, not when you generate the token in Events Manager. Meta creates a Conversions API app and system user for you, and its documentation says there is no need to go through app review or request permissions.

What is Event Match Quality?

A score out of 10 that Events Manager shows for each server event. It indicates how well the customer information you send, such as hashed email, phone, the fbc click ID, IP address and user agent, can be matched to a Meta account. Meta currently shows it for web events.

Send Meta every sale and upsell

Connect the Conversions API with a pixel ID and a token, and count ROAS on sales. Start a 14-day free trial.