meta-ads
Official CLI for the Meta Marketing API. Manage campaigns, ad sets, ads, creatives, catalogs, datasets, and insights from your terminal.
Installation
pip install meta-ads
macOS (Homebrew, prebuilt bottle — no compiler needed):
brew tap facebook/fb
brew install meta-ads
The installed binary is meta either way.
Quick Start
# Set up authentication
export ACCESS_TOKEN=your_access_token
export AD_ACCOUNT_ID=act_123456
# List campaigns
meta ads campaign list
# Get ad performance insights
meta ads insights get --date-preset last_7d
# Create a campaign
meta ads campaign create --name "Sales Campaign" --objective OUTCOME_SALES --daily-budget 5000
# Output as JSON
meta ads campaign list --output json
Commands
| Command | Description |
|---|---|
meta auth |
Manage authentication |
meta ads adaccount |
Manage ad accounts (list, get, current) |
meta ads campaign |
Manage campaigns (list, get, create, update, delete) |
meta ads adset |
Manage ad sets (list, get, create, update, delete) |
meta ads ad |
Manage ads (list, get, create, update, delete) |
meta ads creative |
Manage creatives (list, get, create, update, delete) |
meta ads catalog |
Manage product catalogs (list, get, create, update, delete) |
meta ads page |
List business pages (list, get) |
meta ads product-set |
Manage product sets (list, get, create, update, delete) |
meta ads product-item |
Manage product items (list, get, create, update, delete) |
meta ads product-feed |
Manage product feeds (list, get, create, update, delete) |
meta ads dataset |
Manage datasets/pixels (list, get, create, connect, disconnect, assign-user) |
meta ads guidance |
Get ad recommendations and guidance (list) |
meta ads insights |
Query ad performance (get) |
meta ads study |
Manage ad studies / experiments (list) |
Options
-o, --output Output format: table, json, plain [default: table]
--no-color Disable colored output
--no-input Disable interactive prompts
--debug Enable debug output
--ad-account-id Meta Ad Account ID [env: AD_ACCOUNT_ID]
--business-id Meta Business ID [env: BUSINESS_ID]
The campaign, ad set, and ad list/get/create commands also accept
--fields name,other,... to fetch any Marketing API fields beyond the defaults
(names are passed straight to the API):
meta ads adset get 123456 --fields name,targeting,promoted_object,bid_strategy
Environment Variables
| Variable | Required | Description |
|---|---|---|
ACCESS_TOKEN |
Yes | Meta access token |
AD_ACCOUNT_ID |
Yes | Ad account ID (e.g. act_123456) |
BUSINESS_ID |
No | Business ID (auto-resolved from ad account if omitted) |
Requirements
- Python 3.12+
License
Copyright (c) Meta Platforms, Inc. and affiliates. All rights reserved.
Release files for meta-ads 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 13.8 MB
Release files / meta_ads-1.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | meta_ads-1.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
01f16efc31842e6a48d8f48fe73aa9bd964393b0a94177f4b0ac410be244055b
|
|
BLAKE2b-256 checksum How to use checksums |
ebb3dc3a48f3fb3213e68b7c4815eae9acc2444e53d0e1bcc5f4be7d4b8204a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / meta_ads-1.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | meta_ads-1.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
19d13888a2b9a65f4336814f275993db668b28bd672f182cefa5ee76f268e664
|
|
BLAKE2b-256 checksum How to use checksums |
1da1f85b912fb7613235113ef16dd5fb2a764802b7fa304d91eada6e6312c30c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / meta_ads-1.2.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | meta_ads-1.2.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.3 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6e6437546b0c53ccf73371b67b6b51618df6753ea7d6e4b52240acfc2c1929da
|
|
BLAKE2b-256 checksum How to use checksums |
cd25647e8c1309f8df9f9a45cdb935ea71e62c9ac4573e579cc5d5c9388403ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / meta_ads-1.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | meta_ads-1.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
edb0d1ded8120ff8d962711c45e1435df320ce0e35283568c991d70b3b904b60
|
|
BLAKE2b-256 checksum How to use checksums |
38ecc13c83dc29142750898ed160e3069b54c281f930af49f3ec0a3990b66716
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / meta_ads-1.2.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | meta_ads-1.2.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
c5aedbcc17659e5f3bb394097e7bd7bba1625348619c20286bfd3fdda501443e
|
|
BLAKE2b-256 checksum How to use checksums |
df6a773ce8a6a8b58e1646cada5336f81fd648c33c2427efd4a2b703be0c358b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / meta_ads-1.2.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | meta_ads-1.2.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.3 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
aa72bec860d4deb81eac257d659202ca7ccb781e138a2f56c4e13fa7a08618a8
|
|
BLAKE2b-256 checksum How to use checksums |
6009dde98f6d1d8ddaa0a15d83ce791930ed9c46be6da3231d14f7e1ba513c4f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / meta_ads-1.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | meta_ads-1.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
d8a3109ed4b4fc5474eb11a2080e2d8405edbce97573c0a343160b4dc41e355b
|
|
BLAKE2b-256 checksum How to use checksums |
9f60ecd9b965b7a6e976ba7323a75d496aa37e8e13112f8c373ee0494e180976
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / meta_ads-1.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | meta_ads-1.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
9c42000ecfc2fca7e02b3a04899aecdc4cd4d3f90efaa6a75faf2eb077e41d32
|
|
BLAKE2b-256 checksum How to use checksums |
392ba3b8cd5c7e0067e10d918f3a6e06d6711fe078c501333d9347d2219493ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / meta_ads-1.2.0-cp312-cp312-macosx_26_0_arm64.whl
| Download URL | meta_ads-1.2.0-cp312-cp312-macosx_26_0_arm64.whl |
|---|---|
| Size | 1.3 MB |
| Tags | CPython 3.12 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
526ef6fe027cdad8afd17b728c153de09671a0f900f13ab3a939f54d20860ad0
|
|
BLAKE2b-256 checksum How to use checksums |
2f628cc082997b4835549d3ca78820085398b89451e031703cee8efdfb683871
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|