Pepperoni, mushrooms, olives, and cheese pack juicy flavor into these keto pizza meatballs, all my favorite toppings at 0.4g net carbs each. Air fryer, oven, or stovetop all work, and I calculated macros per meatball so tracking is effortless.
I started making these because I wanted pizza flavor without the crust fuss. Ground beef and pork, pork rind crumbs, two kinds of cheese, pepperoni, mushrooms, olives, bell pepper, and a low carb pizza sauce holding it all together. Every bite tastes like a loaded slice.
The thing I like most is the portioning. I roll each one to about golf-ball size, which gives me a consistent 0.4g net carbs and 5.9g protein per meatball. Readers tracking macros point that out in the comments, and they're right. For meal prep, that kind of predictability matters. I make a double batch almost every time now and freeze half.
I tested all three cooking methods side by side. The air fryer at 400°F for 6-7 minutes gives the best exterior crispness with the least effort. The oven at 400°F for 9-12 minutes is my pick when I’m making a big batch (two sheet pans, rotate halfway). Stovetop in avocado oil works too, but you need to babysit them and brown all sides. If you love air fryer cooking, my air fryer meatballs use a similar method with a classic Italian profile.
These are one of my go-to appetizers for game days. I set them out on a platter with toothpicks and a small bowl of warmed pizza sauce for dipping. They disappear fast, and they hold well at room temperature for about 2 hours, which covers a game day or holiday party. If you’re building a spread, pair them with keto layered pizza dip and keto mozzarella sticks for a full pizza night without a single crust.
For a full dinner, I serve them over cauliflower rice or spiralized zucchini noodles with extra sauce spooned on top and a sprinkle of Parmesan. Spaghetti squash works too if you have it on hand. My kids eat them plain, straight off the sheet pan. They don’t care that they’re keto. They just think it’s pizza night. If you want more meatball variety, my keto taco meatballs and buffalo chicken meatballs rotate through our weekly menu too.
One more thing I learned the hard way: don’t skip the pork rinds. They act as the binder the way breadcrumbs would in a traditional meatball. Without them the mixture is too wet and the meatballs fall apart in the air fryer. If you’re into pizza-flavored everything, try my pizza chaffle or pizza bowl next.
Pizza flavor in a bite sized meatball, ready to set out for game day or pack for lunch.
Which Meat to Use
I like a mix of ground beef and ground pork. It makes juicy, flavorful meatballs. If you only have one of them thawed, use all beef or all pork. Ground chicken works too.
Pick Your Toppings and Sauce
The recipe as written makes a supreme style meatball with onion, mushrooms, pepperoni, green bell pepper, and olives. Swap in the pizza toppings you like. Skip the mushrooms or add tomatoes. For the sauce, pick a jar that is low in sugar and carbs, or make my low carb pizza sauce.
To freeze, I pack the raw meatballs in a single layer in a zip top bag, then thaw them in the fridge the night before I cook them.
To a large bowl, add all ingredients and mix until combined.
2
Form into little balls
Roll meatballs into a golf ball size shape.
3
Air fryer instructions
Preheat air fryer to 400 degrees for 3-4 minutes. Air fry at 400 degrees for 6-7 minutes for until the interior of the meatball is cooked through.
4
Oven instructions
Place meatballs on a parchment lined baking tray and bake in a 400 degree oven for 9-12 minutes or until cooked through.
5
Stovetop instructions
Heat a couple tablespoons of avocado oil in a skillet over medium-high heat. Add meatballs in a single layer in the skillet. Space about 1 inch apart as to not over crowd the skillet to allow for even browning. Work in batches. Cook meatballs on all sides until browned on the outside and cooked through in the interior.
6
Freezer instructions
Place meatballs in a single layer inside a ziploc bag. Then freeze. Thaw out in the refrigerator the night before cooking.
Nutrition
Per serving: 1 meatball
Calories
86
Fat
6.8g
Protein
5.9g
Total carbs
0.5g
Net carbs
0.4g
Nutrition is an estimate calculated from the ingredients listed. Brands vary, so check labels if you track closely.
Frequently Asked Questions
Can I reheat these from frozen?
I reheat mine straight from frozen in the air fryer at 375°F for about 8 minutes. No thawing needed, and they come out just as good as fresh. If you're using an oven instead, I'd go 300°F for about 20 minutes on a sheet pan. The lower temp keeps them from drying out while the center heats through.
Can I make these in a slow cooker or crockpot?
I've done this and it works, but the texture is different. Drop the raw meatballs into your slow cooker, pour pizza sauce over the top, and cook on low for 4-5 hours or high for 2-3 hours. They come out softer (no crispy exterior), which I actually prefer when I'm serving them smothered in sauce over cauliflower rice. Just make sure they hit 160°F internally.
Can I use Italian sausage instead of ground pork?
I've made these with a pound of beef and a pound of mild Italian sausage, and the flavor is incredible. The fennel and red pepper flake in the sausage add a layer you don't get with plain pork. I skip the extra dried basil when I do this since the sausage already brings enough seasoning.
Why is my meatball mixture too wet to roll?
Two things fix this. First, I mix, wait two to five minutes, then form, because the pork rinds need that time to absorb the sauce and moisture. Shape right away and the mixture feels wetter than it should, and the meatballs can fall apart in the air fryer. Second, I squeeze the chopped mushrooms dry in a paper towel before they go in, since they hold a lot of water and it all goes into the meat. Wet hands make the sticky mix easier to roll too.
How do I know when the meatballs are fully cooked?
I use a meat thermometer every time. You're looking for 160°F internal temperature. If you don't have a thermometer, cut one open at the thickest part. No pink means you're good. I pull mine right at 160°F because they keep cooking for another minute or two from residual heat.
Can I make these dairy-free?
I've tested this by dropping the mozzarella and Parmesan entirely and adding an extra quarter cup of pork rind crumbs to compensate for the lost binding. The flavor shifts more toward a straight pepperoni-and-olive profile, which I still like. Nutritional yeast (2 tablespoons) gets you closer to that cheesy taste if you want it.
Let the mix rest five minutes before you roll. Pork rinds need that time to absorb the moisture or the meatballs won’t hold. I was keto for over a year before I stopped expecting anything to fill the pizza gap. These actually do. The beef-pork ratio keeps things from drying out in the air fryer, and working the sauce into the meat (instead of just on top) is what makes it work. Four stars because I went too heavy on the sauce my first batch and the mix was too loose to roll. The recipe amount is right, don’t adjust it.
Five minutes and the mix firms right up. I should have put that in the notes. Half cup is exactly the ceiling on the sauce, past that and rolling gets messy.
Almost skipped the mushrooms since I wasn’t sure they’d hold up in ground beef, but the pieces stay intact and you taste them in every meatball. Does the 6-7 minute air fryer time still work if they come out a little smaller than golf ball size?
Tested these last weekend and I’m hooked. I used the air fryer method and the texture came out perfect. I want to make a double batch for meal prep but there’s no way I’m eating 80 meatballs in one week. Can I freeze these after cooking, and if I do, do they hold up when reheated or do they get weird and rubbery. I’ve had bad luck freezing meatballs before. Do I need to let them cool all the way before bagging or does that not matter.
They freeze fine cooked. I let mine cool first so the bag doesn’t steam, then reheat straight from frozen in the air fryer at 375 for about 8 minutes. No rubbery texture.
The pork rinds as binder caught my eye — never seen that used before. I’ve been wanting to try something like this since the kids started pushing for pizza night every week.nnMy basket air fryer tops out around 12-14 meatballs before they’re touching, so I’m looking at two rounds, maybe three. What I always second-guess with batch cooking is the timing for round two, since the basket is already hot from the first cook. Not going to guess on doneness with a beef-pork mix. I’ll pull one open and check rather than trust the clock on batch two. Is 6-7 minutes at 400 consistent across all rounds, or does the carryover heat mean I should shave a minute off?
The hot basket does speed things up. I’d pull one at the 5-minute mark on round two and check temp not just trust the clock. 160 is the number, and third batch usually goes fastest.
Pizza Friday was a thing in my house growing up. Same delivery place, same order, every week. When I went keto I figured that one was just over. These hit different than I expected. Something about the pepperoni and sauce folded into the meat (the pork rinds I was skeptical about, but they just hold everything together without you noticing) gives you an actual full pizza bite. Made them for myself one Tuesday night and ended up sitting at the counter thinking about my mom’s kitchen for a few minutes. Didn’t expect keto to give me that back.
The pork rinds are always the hard sell. Once they’re folded into the beef and pork they just disappear. That counter moment sounds like a good Tuesday.
These hit the table with no explanation and my wife started calling them ‘pizza meatballs’ around bite three, which she figured out entirely on her own. The pepperoni and mozzarella inside apparently spoke for themselves. I had a whole argument ready for why these work as a pizza substitute and she didn’t give me the chance to use it.
Swapped the ground pork for mild Italian sausage and I’m pretty sure I can’t go back. The fennel and garlic are already built in so every meatball tastes like the inside of a pizza slice, not just seasoned beef. I also started pressing a little dent in the center before rolling them closed and tucking extra pizza sauce inside (kind of a stuffed version), and honestly that first batch now feels like a warm-up. One air fryer tip: shake the basket at the 3-minute mark and they crisp up all the way around instead of staying soft on one side. Five batches in and my freezer is never without these.
That stuffed version is next on my list. Dent, sauce, press closed – I want to see that cross-section. And yes on the basket shake, mine get flat on one side when I skip it.
Swapped the ground pork for Italian sausage and the whole thing tastes like actual pizza from a place. If you do this, go easy on extra salt since the sausage brings plenty. Didn’t expect it to make that much of a difference but here we are.
Went into this skeptical that pork rinds as binder would hold up in something this dense, but the texture is freaking unreal, no crumble, no falling apart, just tight and juicy all the way through. Made them in the air fryer at 400 and they were done in six minutes flat. Not looking at another meatball recipe.
I’ve tried four or five versions of keto pizza meatballs and the pork rind base always threw off the texture for me. These are different. The beef and pork combo keeps them dense enough that the pepperoni and cheese inside don’t turn everything greasy, which was always my problem with the others.
The fat ratio is what does it. 80/20 beef keeps them dense, pork alone gets too soft and everything leaks out. Took me a few batches to lock that down.
My daughter burned her fingers grabbing one straight from the air fryer and still went back for more before they hit the plate. Pretty sure it’s the pepperoni pockets (she kept breaking them open to check). Not questioning the science.
I’ve bounced between a few keto meatball recipes and they all had that dry, falling-apart thing I just accepted as the price of no breadcrumbs. Whatever the pork rind binder is doing here, these hold together completely differently. The mini pepperoni crisps up inside and you get little bursts of flavor all the way through. Knocking a star off for the air fryer timing – mine needed closer to 6 minutes to get any color, so start checking early.
6 minutes tracks. Air fryer wattage and basket size vary enough that I always say start checking at 5. Mine hits color right at 6 but I’ve had readers need closer to 8.
SO good but I’d squeeze the mushrooms dry before mixing (mine got a little watery in the center and I think that’s why) and I’m doubling the mini pepperoni next batch because that’s where all the pizza punch is actually coming from.
Made these about five times now and keep coming back to the air fryer version. That 6-7 minutes at 400 crisps the outside up in a way the oven just doesn’t match. The pork rinds as a binder surprised me at first (had no idea that was even a thing), but now I don’t notice them at all. Probably doing a double batch next Sunday.