Compliance

COPPA Compliance for UGC Apps: What Developers Need to Know

·11 min read

If your app accepts user-generated content and is used by — or likely to be used by — children under 13, you're subject to the Children's Online Privacy Protection Act (COPPA). Violations carry fines up to $50,120 per incident, and the FTC actively enforces against apps and platforms that get it wrong.

This guide covers what COPPA means for developers building UGC apps, what technical controls you need, and how content moderation fits into compliance.

What COPPA Requires

COPPA applies to apps and websites that either target children under 13 or have actual knowledge that children under 13 are using the service. The core requirements are:

  • Verifiable parental consent before collecting personal information from children
  • Clear privacy policy describing what data you collect and how it's used
  • Data minimization — collect only what's necessary for the service
  • Data deletion — parents can request deletion of their child's data
  • Reasonable security for the data you do collect

For UGC apps specifically, COPPA adds another layer: any content a child posts that contains personal information (name, photo, location, school) is considered "collected" by your app.

Age Gating

The first technical control is an age gate that prevents children under 13 from creating accounts without parental consent. A few rules:

  • Don't ask for birth date directly on a form that makes the "right" answer obvious. Use a neutral date picker, not "Are you over 13?"
  • Don't use a checkbox ("I confirm I am 13 or older"). The FTC considers this insufficient.
  • Block re-attempts — if a user enters an age under 13, don't let them go back and try again with a different date. Store the determination in a cookie or device identifier.
age-gate.tsNode.js
app.post('/api/auth/age-check', async (req, res) => {
const { birthDate } = req.body;
const age = calculateAge(birthDate);
if (age < 13) {
// Store the determination to prevent re-attempts
res.cookie('age_check', 'under_13', {
maxAge: 30 * 24 * 60 * 60 * 1000, // 30 days
httpOnly: true,
});
return res.status(403).json({
error: 'Parental consent required',
flow: 'parental_consent',
});
}
return res.json({ status: 'eligible' });
});

Parental Consent Mechanisms

If you allow children under 13, you need verifiable parental consent. The FTC accepts several methods:

  • Signed consent form — parent signs and returns by mail, fax, or electronic scan
  • Credit card verification — charging a small amount to a parent's card
  • Government ID check — parent uploads a government-issued ID
  • Video call — live verification with a parent
  • Knowledge-based authentication — questions only the parent would know

The method must be reasonable for the data you collect. More sensitive data (photos, location) requires stronger verification.

Content Moderation Under COPPA

UGC apps used by children have heightened moderation requirements. You need to:

  • Filter personal information — children often share their name, school, phone number, or address in posts. Your moderation system should catch and block this.
  • Block explicit content — obvious, but doubly important in a child-directed context. Zero tolerance for NSFW content.
  • Monitor for grooming patterns — adults soliciting personal information from children is a serious risk. Your moderation policy should flag suspicious interaction patterns.
coppa-policy.tsNode.js
// Configure a stricter moderation policy for child-directed content
const result = await vettly.check({
content: userPost.text,
policy: 'coppa-safe', // Stricter than default — blocks PII, contact info
});
if (result.action === 'block') {
return res.status(422).json({
error: 'This post contains information that cannot be shared',
});
}
// Flag posts that mention personal details for human review
if (result.action === 'flag') {
await moderationQueue.add({
postId: post.id,
reason: 'Potential PII in child-directed content',
decisionId: result.decisionId,
});
}

Data Minimization in Practice

COPPA requires you to collect only what's necessary. For UGC apps, this means:

  • Don't require real names — let children use usernames
  • Don't collect location unless the app's core function requires it
  • Don't store device identifiers beyond what's needed for age-gate enforcement
  • Minimize metadata — if you store posts, don't also store IP addresses, device models, and precise timestamps unless you have a legitimate need

Parental Dashboards

Parents must be able to review and delete their child's data. Build a parental dashboard that lets verified parents:

  • View their child's posts and activity
  • Delete specific content
  • Delete the entire account
  • Update consent preferences

Safe Harbor Programs

The FTC recognizes several safe harbor programs that provide guidelines and review for COPPA compliance:

  • CARU (Children's Advertising Review Unit) — operated by BBB National Programs
  • ESRB Privacy Certified — focused on games and entertainment
  • kidSAFE Seal Program — for websites and apps

Joining a safe harbor program doesn't exempt you from COPPA, but it demonstrates good faith and provides a framework for compliance.

Common Mistakes

  • Assuming COPPA doesn't apply because your app "isn't for kids." If children actually use it, the FTC may disagree.
  • Age gate only at signup. If users can skip the age gate by using a guest mode or shared device, it doesn't count.
  • Collecting data for analytics. Even analytics data (device IDs, usage patterns) is "personal information" under COPPA if it comes from a child.
  • No moderation for PII. If a child posts their phone number in a comment, your app has effectively "collected" it. Moderation should catch this.

Checklist

  • Age gate with neutral date picker (no re-attempts)
  • Verifiable parental consent flow
  • Privacy policy that specifically addresses children's data
  • Content moderation that catches PII in child-directed UGC
  • Parental dashboard for review and deletion
  • Data retention policy with automatic deletion
  • Incident response plan for COPPA violations

Need moderation for a child-directed app?

Vettly's policy engine lets you create COPPA-specific rules that catch PII, contact info, and inappropriate content. Start with the free tier.