Ground chicken meatballs have one problem, and everybody who has made them knows exactly what it is: they come out dry. Not slightly dry — chalky, crumbly, sad-on-a-fork dry.

Golden brown air fryer chicken meatballs in a white bowl with marinara and fresh parsley
Save This Recipe Form

Want to save this recipe?

Enter your email below & I will send it straight to your inbox. Plus you’ll get more great recipes from me on occasion!

That is not the air fryer’s fault, and it is not your fault. It is a math problem. Ground beef runs about 80% lean. Ground chicken runs 93% to 99%. When you take the same meatball recipe your grandmother used for beef and swap in chicken, you have removed most of the fat that was keeping it juicy and replaced it with nothing.

The fix takes sixty seconds and two ingredients you already have. Soak the panko in milk before it touches the chicken, and add a tablespoon of olive oil to the mix. That is it. That is the whole trick.

I rewrote this recipe after enough of you told me the original was dry. You were right. This version is the one I actually make now.

Air fryer chicken meatballs smothered in creamy brown gravy and topped with fresh parsley

Why This Recipe Works

  • The panade. Soaking panko in milk creates a paste that traps moisture inside the meatball as it cooks. The starch holds water that would otherwise cook out. This is the single technique separating a juicy chicken meatball from a dry one, and it is why I use it in my Ninja Crispi meatballs too.
  • 375°F, not 400°F. Hotter is not faster here. At 400°F the outside sets before the center is safe, and by the time the middle hits 165°F the exterior has gone leathery. 375°F browns and cooks at roughly the same rate.
  • Circulating air, not a wet pan. Meatballs in a skillet sit in their own rendered liquid and steam. In the air fryer basket, moving air pulls that liquid away and the surface actually browns. You get a real crust on a lean meat that normally refuses to give you one.
  • 22 minutes, start to plate. Ten minutes of prep, twelve in the basket. Faster than heating an oven.

Ingredients

Ground chicken, panko, milk, Parmesan, egg, olive oil and seasonings measured in glass bowls
  • Ground chicken: If your store carries ground chicken thigh, buy it. It runs around 85% lean and makes a noticeably better meatball. Ground chicken breast at 99% lean will work with this recipe but it is the hardest version to keep juicy.
  • Panko breadcrumbs: Panko specifically. Its larger, drier flakes absorb more milk than fine dry breadcrumbs, which is the entire point.
  • Whole milk: The panade liquid. Buttermilk works. Unsweetened almond or oat milk works.
  • Parmesan cheese: Salt, fat, and umami. Do not skip it; chicken needs the help.
  • Egg: Binder.
  • Olive oil: Added fat, mixed directly into the meat. This is the second half of the fix.
  • Fresh parsley: Or 1 teaspoon dried.
  • Seasonings: Kosher salt, garlic powder, onion powder, Italian seasoning, black pepper.

Full measurements and nutrition are in the printable recipe card below.

How to Make Chicken Meatballs in the Air Fryer

Ground chicken meatball mixture combined with Parmesan, egg and herbs in a mixing bowl

Step One: Make the Panade

Stir the panko and milk together in a large bowl and let it sit for one full minute. It will look like wet paste. That is correct. Do not skip the wait — the panko needs the time to actually absorb the liquid. Preheat the air fryer to 375°F on the air fry setting while it soaks. Three to five minutes.

Step Two: Mix — Barely

Add the ground chicken, Parmesan, egg, olive oil, parsley, salt, garlic powder, onion powder, Italian seasoning, and black pepper to the soaked panko.

Mix with your hands for about twenty seconds — just until you no longer see streaks of egg. Stop there. Overmixing develops the proteins and turns meatballs springy and tough, and lean chicken punishes this mistake faster than beef does. The mixture will be wetter and stickier than a beef meatball mix. That is exactly what you want. Wet your hands with cold water before rolling.

Raw chicken meatballs rolled and spaced in a single layer in an air fryer basket

Step Three: Roll and Load

Scoop about 1½ tablespoons per meatball — a cookie scoop makes this effortless and, more importantly, makes them all the same size. Roll into 1-inch balls. You should get around 18 to 20.

Arrange them in a single layer with space between each one. Spray the basket with olive oil, or use a parchment liner with holes. Cook in two batches if they do not fit with room to spare — crowded meatballs steam instead of brown. Spritz the tops lightly with olive oil spray.

Cooked air fryer chicken meatballs browned and crisp in the basket after 12 minutes

Step Four: Air Fry

Cook for 10 to 12 minutes, flipping at the halfway mark. Start checking at 10 minutes with an instant-read thermometer. Pull them the moment they reach 165°F. This matters more than anything else in this recipe. Chicken has no fat buffer — a meatball at 175°F is dry, and there is no coming back from it. Two extra minutes is the difference between the meatballs I want you to eat and the ones you left a three-star review about.

Step Five: Rest

Let them sit two or three minutes before serving. The juices redistribute. Cutting into one immediately dumps that moisture onto the plate instead of leaving it in the meatball.

Juicy chicken meatballs cut open to show the tender center, served with dipping sauce

How Long to Cook Chicken Meatballs in the Air Fryer

For 1-inch raw meatballs at 375°F: 10 to 12 minutes, flipped once.

Larger meatballs need more. A 1½-inch meatball runs 14 to 16 minutes. Every air fryer is different — basket models tend to run hotter than oven-style models — so the thermometer is the real answer and the clock is a suggestion. 165°F is the target, every time.

Troubleshooting

  • Dry meatballs. You cooked past 165°F, skipped the panade, or used 99% lean breast meat. In that order of likelihood.
  • Tough, bouncy texture. Overmixed. Twenty seconds, hands only, then stop.
  • Meatballs falling apart. Not enough binder, or the mixture was too warm from over-handling. Chill the mix for fifteen minutes before rolling.
  • Pale, no browning. Basket was crowded, or you skipped the oil spray on top. Lean chicken will not brown on its own.
  • Stuck to the basket. Spray it, or use parchment. Chicken has almost no fat to release.

Substitutions and Variations

  • Gluten-free: Swap the panko for gluten-free panko one-for-one. Crushed pork rinds also work and add fat, which helps here.
  • Dairy-free: Use unsweetened almond milk for the panade and skip the Parmesan — but add an extra 1/4 teaspoon salt and a tablespoon of nutritional yeast to make up for what you lost.
  • Ground turkey: Works identically. Same temperature, same time, same 165°F target.
  • Ground beef or pork: You can drop the panade if you like, since the fat does that job — that is how my Olive Garden copycat meatballs and my Maggiano’s copycat meatballs are built.
  • Spicy: Toss the finished meatballs in buffalo sauce and return them to the basket for two minutes to set the glaze. Or just make my air fryer buffalo chicken meatballs, which are built for it.
  • Other directions entirely: Air fryer Swedish meatballs for nutmeg and cream gravy, air fryer lamb meatballs for Mediterranean spice, or air fryer Beyond meatballs if you are cooking plant-based.
Chicken meatballs in marinara sauce plated with fresh parsley

How to Serve Them

Over pasta with marinara is the obvious move, and my air fryer spaghetti and meatballs walks through the timing so the noodles and meatballs land together. Air fryer garlic bread on the side is non-negotiable at my house.

Split them into sub rolls with marinara and provolone — same idea as my copycat Firehouse meatball sub, just lighter.

Serve on toothpicks with ranch or honey mustard as an appetizer. Slice them over a Caesar. Thread them onto skewers with peppers and onion. Or eat six standing at the counter, which is what actually happens.

Storage and Reheating

Refrigerator: Airtight container, 3 to 4 days. Cool completely first or condensation makes them soggy.

Freezer: Freeze cooked meatballs on a sheet pan until solid, then transfer to a freezer bag for up to 3 months. Freezing them separated first keeps them from fusing into a brick.

Freeze them raw instead: Roll, freeze on a tray, bag them. Cook straight from frozen at 375°F for 15 to 18 minutes. This is the better meal-prep move — you get a fresh-cooked meatball later instead of a reheated one.

Reheating: Air fryer at 350°F for 4 to 5 minutes. The microwave will work and will also make them rubbery.

Air fryer chicken meatballs in marinara served over spaghetti on a white plate

Frequently Asked Questions

Do I have to use the milk panade? No, and your meatballs will be drier. It costs sixty seconds. Use it.

Why are my chicken meatballs always dry? Almost always overcooking. Ground chicken has no fat margin — the window between done and ruined is about two minutes wide. An instant-read thermometer solves this permanently for about fifteen dollars.

What temperature should chicken meatballs reach? 165°F internal, measured at the center of the largest one. Pull them immediately at 165°F, not above.

Can I cook these from frozen? Raw frozen meatballs from this recipe: 375°F for 15 to 18 minutes, still to 165°F. For store-bought bagged meatballs, the timing is different — see my guides for frozen turkey meatballs or Trader Joe’s chicken meatballs.

Do I need to preheat? Yes. A cold basket means the meatballs sit and sweat before they start browning, and you lose the crust.

Can I make the mixture ahead? Yes — up to 24 hours in the fridge, covered. It actually rolls easier cold.

Ground chicken breast or thigh? Thigh, if you can find it. More fat, better meatball. Breast works with this recipe but leaves you no margin for error.

What size air fryer do I need? Any. I tested this in a 5.8-quart basket model, which fits all 20 in one layer. Smaller baskets just mean two batches. More air fryer basics live in my air fryer recipes hub and my charts and tips.

Golden brown air fryer chicken meatballs in a white bowl with marinara and fresh parsley

Air Fryer Chicken Meatballs

3.50 from 2 votes
Prep Time: 10 minutes
Cook Time: 12 minutes
Total Time: 22 minutes
Servings: 6 Servings

Description

Juicy air fryer chicken meatballs with a golden crust and a tender center — the milk panade keeps lean ground chicken from drying out. Ready in 22 minutes.

Ingredients 

  • 1/3 cup panko breadcrumbs
  • 3 tablespoons whole milk
  • 1 pound ground chicken, thigh preferred
  • 1/4 cup Parmesan cheese, grated
  • 1 large egg
  • 1 tablespoon olive oil
  • 1 tablespoon fresh parsley, chopped
  • 1 teaspoon kosher salt
  • 1 teaspoon garlic powder
  • 1/2 teaspoon Italian seasoning
  • 1/4 teaspoon onion powder
  • 1/4 teaspoon black pepper

Instructions

  • Stir the panko and milk together in a large bowl. Let sit 1 minute until it forms a paste. Meanwhile, preheat the air fryer to 375°F for 3–5 minutes on the air fry setting.
  • Add the ground chicken, Parmesan, egg, olive oil, parsley, salt, garlic powder, Italian seasoning, onion powder, and black pepper to the soaked panko. Mix with your hands about 20 seconds, just until combined. Do not overmix.
  • With damp hands, scoop 1½ tablespoons per meatball and roll into 1-inch balls (about 20). Spray the air fryer basket with olive oil or line with perforated parchment. Arrange the meatballs in a single layer with space between them, working in batches if needed. Spritz the tops with olive oil.
  • Air fry 10–12 minutes, flipping halfway through. Begin checking at 10 minutes and remove as soon as the internal temperature reaches 165°F.
  • Rest 2–3 minutes before serving.

Equipment

  • Cooking Spray
  • Parchment Paper, optional

Notes

  • Ground chicken thigh (~85% lean) makes a juicier meatball than ground chicken breast (~99% lean).
  • The mixture will be sticky. That is correct — it is why they stay moist.
  • Do not cook past 165°F. This is the difference between juicy and dry.
  • Tested in a 5.8-quart basket air fryer. Oven-style models may need 1–2 additional minutes.

Nutrition

Serving: 1ServingCalories: 177kcalCarbohydrates: 4gProtein: 17gFat: 11gSaturated Fat: 3gPolyunsaturated Fat: 2gMonounsaturated Fat: 5gTrans Fat: 0.1gCholesterol: 100mgSodium: 540mgPotassium: 442mgFiber: 0.3gSugar: 1gVitamin A: 149IUVitamin C: 1mgCalcium: 79mgIron: 1mg

Share this recipe

We can’t wait to see what you’ve made! Mention @forktospoon or tag #forktospoon!