{"registry_version":"2026.1025.387","generated_at":"2026-10-25T06:27:00Z","content_sha256":"089d16f627d9365e3d0663cc8069203706d7cb23a76c332226e29686968811a5","signed":true,"signature":{"key_id":"ed25519:74ca19268e364242","algorithm":"ed25519","expires_at":"2026-11-24T06:27:09Z","expired":false,"manifest":"/registry/manifest.json"},"entry_sha256":"1c35b3e1ba1dbd981f54e66e9f0309a18028743ef40f4019c37f72cba5d68f16","entry":{"id":"meta/marketing-api","name":"Meta Marketing API","vendor":"Meta","summary":"Create, manage and report on Facebook and Instagram ads by API. Starts at Limited Access (heavily rate-limited, development only); Full Access needs App Review plus 500+ calls in 15 days at under 15% errors.","aliases":["facebook-marketing-api","facebook-ads-api","meta-ads-api","ads-management-standard-access","marketing-api-access-tier"],"category":"social","group":"B","homepage":"https://developers.facebook.com/docs/marketing-api/","docs":["https://developers.facebook.com/docs/marketing-api/get-started","https://developers.facebook.com/docs/marketing-api/overview/authorization","https://developers.facebook.com/docs/marketing-api/overview/rate-limiting"],"status":"researched","last_verified":null,"last_researched":"2026-10-25","sources":[{"id":"mapi-get-started","url":"https://developers.facebook.com/docs/marketing-api/get-started","title":"Marketing API – Get started","accessed":"2026-10-25","supports":"Active ad account required to run campaigns and manage billing; register as a Meta developer; create an app; authorization; authentication","kind":"official"},{"id":"mapi-authorization","url":"https://developers.facebook.com/docs/marketing-api/overview/authorization","title":"Marketing API – Authorization","accessed":"2026-10-25","supports":"Standard Access renamed Limited Access and Advanced Access renamed Full Access; Limited is heavily rate-limited and for development only; Full Access requested via App Review, needs 500+ calls in 15 days and under 15% errors in last 500 calls; ads_read and ads_management need the Marketing API Access Tier feature and Advanced Access to manage other people's ad accounts; Business Verification if accessing sensitive data; system user counts per tier","kind":"official"},{"id":"mapi-auth","url":"https://developers.facebook.com/documentation/ads-commerce/marketing-api/get-started/authentication","title":"Marketing API – Authentication","accessed":"2026-10-25","supports":"Short-lived user token 1-2 hours; extend in Access Token Debugger; system user token does not expire and suits server-to-server use; tokens via Graph API Explorer with ads_read/ads_management","kind":"official"},{"id":"mapi-rate","url":"https://developers.facebook.com/docs/marketing-api/overview/rate-limiting","title":"Marketing API – Rate limiting","accessed":"2026-10-25","supports":"Ads Management Standard Access renamed Marketing API Access Tier; Limited vs Full quotas (score cap 60 vs 9,000, Ads Management 300/h vs 100,000/h plus 40 per active ad); 100 QPS per app and ad account; one edit per object every 30 s; 4 budget changes per hour per ad set; 10 spend-limit changes per day per ad account","kind":"official"},{"id":"ad-standards","url":"https://transparency.meta.com/policies/ad-standards/","title":"Meta Advertising Standards","accessed":"2026-10-25","supports":"Violating ads rejected and business account or assets may be restricted; restricted assets cannot advertise; termination possible; helping anyone evade enforcement is prohibited; no selling or exchanging admin access; each advertiser or client managed through separate ad accounts","kind":"official"},{"id":"ad-account-help","url":"https://www.facebook.com/business/help/915885887059947","title":"Meta Business Help Centre – ad account","accessed":"2026-10-25","supports":"Where to create or find an ad account (linked from Marketing API get-started) [to verify page title]","kind":"official"},{"id":"devpolicy","url":"https://developers.facebook.com/devpolicy/","title":"Meta Developer Policies","accessed":"2026-10-25","supports":"10.7(a) do not use Meta advertising data except on an aggregate and anonymous basis; 10.7(e) do not use Meta data to build or augment user profiles","kind":"official"},{"id":"platform-terms","url":"https://developers.facebook.com/terms/","title":"Meta Platform Terms","accessed":"2026-10-25","supports":"No selling or licensing Platform Data (3.a.iv); protect access tokens and app secrets (6.a.iv); enforcement may suspend or permanently remove apps and accounts (7.e)","kind":"official"},{"id":"duc-blog","url":"https://developers.facebook.com/blog/post/2020/09/10/data-use-checkup-rolling-out-broadly-facebook-platform-developers/","title":"Meta for Developers blog – Data Use Checkup rolling out broadly","accessed":"2026-10-25","supports":"Annual Data Use Checkup; missing the deadline loses access to the relevant platform features","kind":"official"},{"id":"bundle-social","url":"https://bundle.social/blog/meta-app-review-20-days","title":"bundle.social – Meta App Review taking 20 days (July 2026)","accessed":"2026-10-25","supports":"Third-party report that Meta App Review waits reached around 20 days by mid-2026 (explicitly not an official Meta figure)","kind":"community"}],"allowed_domains":["developers.facebook.com","business.facebook.com","adsmanager.facebook.com","facebook.com"],"account_model":{"summary":"A Business Portfolio owns the ad account(s), the Meta app and the system user. The app gets the Marketing API product (Limited Access by default). A system user in the portfolio, assigned to the app and the ad account, holds the non-expiring token your server uses.","accounts":[{"name":"Meta developer account","kind":"developer","owned_by":"the person","required":true},{"name":"Meta Business Portfolio","kind":"organisation","owned_by":"the business","required":true},{"name":"Ad account","kind":"billing","owned_by":"the business (or each client business)","parent":"Meta Business Portfolio","required":true,"note":"Must be active with a payment method to run campaigns. Each advertiser or client needs its own ad account."},{"name":"Meta app with Marketing API product","kind":"project","parent":"Meta Business Portfolio","required":true},{"name":"System user","kind":"other","parent":"Meta Business Portfolio","required":false,"note":"Limited Access allows 1 system user and 1 admin system user; Full Access allows 10 plus 1 admin."}],"notes":["Managing only your own business's ad accounts works at Limited Access with system users. Managing other people's ad accounts needs Advanced (Full) Access to ads_read / ads_management via App Review.","Meta renamed tiers in 2026 docs, Standard to Limited and Advanced to Full; older docs and dashboards may still use the old names."]},"prerequisites":[{"entry":"meta/developer-app"},{"entry":"meta/business-portfolio"},{"entry":"meta/app-review","note":"For Full Access and for ads_read / ads_management on other people's ad accounts."},{"entry":"meta/business-verification","note":"Required if the app accesses sensitive data, and commonly for Advanced Access."}],"identity_requires":["legal_name","website","privacy_policy_url","support_email"],"have_ready":[{"kind":"payment_card","description":"Payment method on the ad account (entered by you on Meta's page)","why":"An active ad account is needed to run campaigns and manage billing","needed_for":["ad-account"],"auto_check":"none","source":"mapi-get-started"},{"kind":"app_privacy_policy_url","description":"Public privacy policy URL for the app","needed_for":["create-app"],"auto_check":"website_live","source":"platform-terms"},{"kind":"demo_video","description":"Screencast of how the app uses ads_read / ads_management (only for App Review)","needed_for":["full-access"],"auto_check":"none"},{"kind":"other","description":"A real integration that will make 500+ Marketing API calls in 15 days with under 15% errors","why":"Eligibility threshold for Full Access","needed_for":["full-access"],"auto_check":"none","source":"mapi-authorization"}],"steps":[{"id":"ad-account","title":"Have an active ad account in your Business Portfolio","summary":"Create or find the ad account in Ads Manager / Business settings and add a payment method yourself. Note its number (shown in Ads Manager > Settings > Account overview); the API uses it as act_<number>.","route":"guided","depends_on":[],"gate":"human_payment","url":"https://adsmanager.facebook.com/","sources":["mapi-get-started","ad-account-help"]},{"id":"create-app","title":"Create a Business app with the Marketing API product","summary":"In the App Dashboard create a Business-type app connected to your portfolio and add Marketing API (the \"create and manage ads\" use case [to verify label]). This gives Limited Access straight away.","route":"guided","depends_on":[],"gate":"human_submit","url":"https://developers.facebook.com/apps/","sources":["mapi-authorization","mapi-rate"]},{"id":"system-user-token","title":"Create a system user and generate a token","summary":"In Business settings > Users > System users, create a system user, assign it the app and the ad account, and generate a token with ads_read and/or ads_management. System user tokens do not expire. Shown once: verapli captures it.","route":"guided","depends_on":["ad-account","create-app"],"gate":"human_submit","url":"https://business.facebook.com/settings/system-users","recovery":[{"hiccup":"Cannot add another system user","fix":"Limited Access allows only 1 system user and 1 admin system user; reuse it or get Full Access (10).","source":"mapi-authorization"}],"capture":{"env":"META_ADS_ACCESS_TOKEN","kind":"token"},"sources":["mapi-auth","mapi-authorization"]},{"id":"build-and-call","title":"Build and run the integration at Limited Access","summary":"Develop against your own ad account. Expect tight limits (ad account score cap 60 with a 300 s block; Ads Management 300 per hour plus 40 per active ad). Keep error rates low; they count towards Full Access.","route":"guided","depends_on":["system-user-token"],"gate":"none","recovery":[{"hiccup":"Calls blocked for 300 seconds (rate limit reached)","fix":"Back off and batch; Limited Access is for development. Apply for Full Access once eligible.","source":"mapi-rate"},{"hiccup":"Edits rejected on the same campaign or ad","fix":"Wait 30 seconds between edits to one object; at most 4 budget changes per hour per ad set.","source":"mapi-rate"}],"sources":["mapi-rate"]},{"id":"full-access","title":"Request Full Access (Marketing API Access Tier) through App Review","summary":"Once the app has made 500+ calls in the past 15 days with under 15% errors in the last 500, request the Marketing API Access Tier feature (and Advanced Access to ads_read / ads_management if you manage other people's ad accounts) under App Review > Permissions and Features.","route":"guided","depends_on":["build-and-call"],"gate":"third_party_review","url":"https://developers.facebook.com/apps/","lead_time":{"official":{"text":"No review time stated on the authorization page [to verify]","source":"mapi-authorization"},"reported":{"text":"Third-party reports put general Meta App Review at around 20 days by mid-2026 (not official, not specific to Marketing API)","source":"bundle-social"}},"recovery":[{"hiccup":"Request button greyed out or not eligible","fix":"Make at least 500 successful Marketing API calls over 15 days and keep errors under 15% of the last 500.","source":"mapi-authorization"},{"hiccup":"Full Access lost later","fix":"The call-volume and error-rate thresholds apply to keeping Full Access too; keep the integration active and healthy.","source":"mapi-authorization"}],"optional":true,"sources":["mapi-authorization"]}],"outputs":[{"name":"META_ADS_ACCESS_TOKEN","description":"System user access token with ads_read / ads_management (does not expire)","secret":true,"example_format":"EAA…","environments":["development","production"],"from_step":"system-user-token"},{"name":"META_AD_ACCOUNT_ID","description":"Ad account id used in API paths","secret":false,"example_format":"act_1234567890","from_step":"ad-account"},{"name":"META_ADS_APP_ID","description":"App ID of the Meta app with the Marketing API product","secret":false,"example_format":"1234567890123456","from_step":"create-app"}],"terms_notes":[{"kind":"rules_say","severity":"red","title":"Ad policy breaches restrict the whole business","text":"Ads that break the Advertising Standards are rejected and the business account or its assets may be restricted from advertising, up to termination. Ads created by API go through the same review. Plain-English summary, not legal advice.","source":"ad-standards"},{"kind":"rules_say","severity":"red","title":"No evading enforcement or sharing access","text":"Helping anyone evade or get round Meta's enforcement is prohibited, as is selling, renting, buying or exchanging admin access. Do not open new ad accounts to get round a restriction.","source":"ad-standards"},{"kind":"rules_say","severity":"amber","title":"One ad account per advertiser","text":"Each advertiser or client must be managed through a separate ad account; if a client changes, set up a new account.","source":"ad-standards"},{"kind":"rules_say","severity":"red","title":"Advertising data use limits","text":"Do not use Meta advertising data except on an aggregate and anonymous basis, and do not use Meta data to build or augment user profiles (Developer Policies 10.7).","source":"devpolicy"},{"kind":"rules_say","severity":"amber","title":"Annual Data Use Checkup","text":"Apps with Advanced Access must complete Data Use Checkup every year or lose access to the relevant features.","source":"duc-blog"}],"renewals":[{"what":"Data Use Checkup for apps with Advanced Access","every":"1 year","every_days":365,"source":"duc-blog"},{"what":"Full Access eligibility (500+ calls in the past 15 days, under 15% errors)","every":"rolling 15 days","every_days":15,"source":"mapi-authorization"}],"pricing_notes":{"costs":"The API itself states no fee; you pay for ad spend through the ad account's payment method [to verify]","source":"mapi-get-started"},"api_provisioning":{"available":"partial","notes":"App creation, Marketing API product, App Review and system users are set up in dashboards. Once running, campaigns, ad sets, ads and insights are fully managed by API.","docs":["https://developers.facebook.com/docs/marketing-api/get-started"],"source":"mapi-get-started"},"detect":{"env_names":["META_ADS_ACCESS_TOKEN","META_AD_ACCOUNT_ID","FACEBOOK_ACCESS_TOKEN","FB_AD_ACCOUNT_ID"],"packages":["facebook-nodejs-business-sdk","facebook_business"]}}}