How To Make Money On Snapchat

Read-only published criteria. Not affiliated with, endorsed by, or sponsored by Snap Inc.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
94%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,825Tokens (tool definitions)
~8.6 KBTypical response size
Significant attention impact (2.99% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "creator-monetization": {
      "url": "https://howtomakemoneyonsnapchat.com/mcp"
    }
  }
}

Remote endpoints

https://howtomakemoneyonsnapchat.com/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_monetization_requirements(program, country, include_unverified, include_historical, include_out_of_scope, ...)

FACT. Use this first when you need Snap's published creator-monetization rules themselves: thresholds, country lists, policy text, source URL, verified_at, and effective date. Do not use it to score one creator or to compute a shortfall. For a creator's numbers, use check_eligibility or calculate_gap.

Input Schema

{
  "type": "object",
  "properties": {
    "program": {
      "description": "Limit to one program. Omit for all programs.",
      "anyOf": [
        {
          "description": "Program identifier. Validated at runtime against programs present in the rules database; unknown values return UNKNOWN_PROGRAM. Examples: unified_monetization_program, snap_star, creator_subscriptions, brand_partnerships, payouts, tax, recommendation_eligibility, creator_monetization_policy, public_profile, lens_creator_rewards.",
          "type": "string",
          "pattern": "^[a-z0-9_]{2,64}$"
        }
      ]
    },
    "country": {
      "description": "ISO 3166-1 alpha-2, alpha-3, or an English country name. Adds country_eligibility. Does not remove facts.",
      "type": "string",
      "minLength": 2,
      "maxLength": 80
    },
    "include_unverified": {
      "type": "boolean",
      "default": true,
      "description": "Include rules we could not verify (status=unverified). Default true so gaps in knowledge are visible."
    },
    "include_historical": {
      "type": "boolean",
      "default": false
    },
    "include_out_of_scope": {
      "type": "boolean",
      "default": false,
      "description": "Include programs outside the MVP scope (e.g., lens_creator_rewards, creator_subscriptions). Default false. Requesting an out-of-scope program with this false returns PROGRAM_OUT_OF_SCOPE."
    },
    "requirement_phase": {
      "description": "Optional filter.",
      "type": "string",
      "enum": [
        "entry",
        "ongoing",
        "entry_and_ongoing",
        "not_applicable"
      ]
    },
    "as_of": {
      "description": "Return the rules that were in force on this date (uses version history). Default: today.",
      "type": "string",
      "format": "date"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://howtomakemoneyonsnapchat.com/schemas/v1/get_monetization_requirements.input.schema.json",
  "title": "get_monetization_requirements input",
  "description": "FACT tool. Returns Snap's current creator-monetization requirements per program, each with source URL, verified_at, effective_date, status, applies_to (entry vs enrolled creators) and mvp_scope. Defaults to in-scope programs: unified_monetization_program, payouts, tax, snap_star, creator_monetization_policy, recommendation_eligibility, brand_partnerships, public_profile, plus historical records on request. Use check_eligibility/calculate_gap to compare a creator's metrics against the rules.",
  "additionalProperties": false
}
🟢get_rule_changes(since, until, program, limit, cursor, ...)

FACT. Use this when you need what changed in Snap's monetization rules since a date: previous value, new value, source, and the date we detected the change. Do not use it for the current rule list (get_monetization_requirements) or for a creator's gap (calculate_gap).

Input Schema

{
  "type": "object",
  "properties": {
    "since": {
      "type": "string",
      "format": "date",
      "description": "Inclusive lower bound on the change date: effective_date, else changed_before, else the last day of effective_month, else detected_at."
    },
    "until": {
      "type": "string",
      "format": "date",
      "description": "Inclusive upper bound on that same change date. Default: the UTC date of the request."
    },
    "program": {
      "description": "Program identifier. Validated at runtime against programs present in the rules database; unknown values return UNKNOWN_PROGRAM. Examples: unified_monetization_program, snap_star, creator_subscriptions, brand_partnerships, payouts, tax, recommendation_eligibility, creator_monetization_policy, public_profile, lens_creator_rewards.",
      "type": "string",
      "pattern": "^[a-z0-9_]{2,64}$"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "default": 50
    },
    "cursor": {
      "type": "string",
      "maxLength": 200,
      "description": "Opaque pagination cursor from a previous response."
    },
    "include_baseline": {
      "type": "boolean",
      "default": false,
      "description": "When true, also return baseline records in baseline. Baseline records are never included in changes."
    }
  },
  "required": [
    "since"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://howtomakemoneyonsnapchat.com/schemas/v1/get_rule_changes.input.schema.json",
  "title": "get_rule_changes input",
  "description": "FACT tool. Lists approved changes to Snap monetization rules. A change is a record that supersedes an approved earlier record and differs in value, status, or source, or a record with an explicit approved change block (added or retired). Baseline records (no supersedes and no change block) are omitted unless include_baseline is true, and they are never included in changes or in change counts. since and until filter on the change date: effective_date, else changed_before, else the last day of effective_month, else detected_at. They do not filter on verified_at.",
  "additionalProperties": false
}
🟢check_eligibility(program, metrics, confirmations, already_enrolled, metrics_as_of)

CALCULATION. Use this to compare one creator's caller-supplied metrics with the published entry requirements. Returns published_criteria_status of meets_published_criteria, does_not_meet_published_criteria, or unknown, plus pass/fail/unknown per requirement. Do not use it when you need the numeric shortfall (calculate_gap) or the rules without a creator (get_monetization_requirements).

Input Schema

{
  "type": "object",
  "properties": {
    "program": {
      "description": "Programs the calculation tools evaluate in v1. Other in-scope programs (payouts, tax, snap_star, creator_monetization_policy, recommendation_eligibility, brand_partnerships) are served as FACTs by get_monetization_requirements; Snap Star status is evaluated as a prerequisite inside unified_monetization_program.",
      "type": "string",
      "enum": [
        "unified_monetization_program"
      ],
      "default": "unified_monetization_program"
    },
    "metrics": {
      "description": "Metrics supplied by the caller (the creator or their agent). We never look metrics up ourselves; Snap offers no public analytics for arbitrary usernames. All fields optional; missing fields produce `unknowns`, never guesses. Data minimization: no age, birthdate, name, or username is accepted; creator age is never stored.",
      "type": "object",
      "additionalProperties": false,
      "minProperties": 1,
      "properties": {
        "followers": {
          "type": "integer",
          "minimum": 0,
          "maximum": 10000000000
        },
        "view_time_hours_28d": {
          "description": "Total view time in hours over the last 28 days, as shown in Snapchat Insights.",
          "type": "number",
          "minimum": 0,
          "maximum": 1000000000
        },
        "spotlight_view_time_hours_28d": {
          "description": "Spotlight view time in hours over the last 28 days.",
          "type": "number",
          "minimum": 0,
          "maximum": 1000000000
        },
        "meets_age_requirement": {
          "description": "Whether the creator meets the age requirement (18 or the local age of majority). true/false as stated by the caller; null = unknown and returns requires_user_confirmation. Data minimization: we never ask for or store a creator's age or birthdate.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "country": {
          "description": "Country of residence. ISO 3166-1 alpha-2 (US), alpha-3 (USA), or the English name on the reviewed country map (United States). Unlisted territories stay unknown.",
          "type": "string",
          "minLength": 2,
          "maxLength": 80
        },
        "is_snap_star": {
          "description": "Self-reported Snap Star status. Cannot be verified by us; treated as a user confirmation.",
          "type": "boolean"
        },
        "posts_per_month": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100000
        },
        "active_posting_days_28d": {
          "type": "integer",
          "minimum": 0,
          "maximum": 28
        }
      }
    },
    "confirmations": {
      "description": "Caller's answers to qualitative requirements (requires_user_confirmation rules), keyed by rule id. We record the answer as given and never verify it.",
      "type": "array",
      "maxItems": 50,
      "uniqueItems": true,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "rule_id",
          "confirmed"
        ],
        "properties": {
          "rule_id": {
            "type": "string",
            "pattern": "^[a-z0-9_]+(\\.[a-z0-9_]+)+$",
            "maxLength": 120
          },
          "confirmed": {
            "type": "boolean"
          }
        }
      }
    },
    "already_enrolled": {
      "description": "Set true only if the creator is already enrolled in the Monetization Program. Default false: only entry (invitation) requirements are evaluated. When true, ongoing requirements for enrolled creators are reported in a separate section.",
      "type": "boolean",
      "default": false
    },
    "metrics_as_of": {
      "type": "string",
      "format": "date",
      "description": "Date the metrics were read from Insights."
    }
  },
  "required": [
    "metrics"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://howtomakemoneyonsnapchat.com/schemas/v1/check_eligibility.input.schema.json",
  "title": "check_eligibility input",
  "description": "CALCULATION tool. Creator metrics in; pass/fail per published entry requirement of the Monetization Program out, plus unknowns and requirements needing the creator's own confirmation. Never returns an 'eligible' verdict: the result is meets_published_criteria / does_not_meet_published_criteria / unknown, with a fixed disclaimer that invitation is at Snap's discretion. Ongoing requirements for enrolled creators are reported separately only when already_enrolled=true.",
  "additionalProperties": false
}
🟢calculate_gap(program, metrics, already_enrolled, include_recommendations)

CALCULATION. Use this when you need the exact numeric shortfall, percent complete, and binding constraint for a creator's caller-supplied metrics. Do not use it for the pace to close that gap (calculate_growth_pace) or for a per-requirement pass/fail list (check_eligibility).

Input Schema

{
  "type": "object",
  "properties": {
    "program": {
      "description": "Programs the calculation tools evaluate in v1. Other in-scope programs (payouts, tax, snap_star, creator_monetization_policy, recommendation_eligibility, brand_partnerships) are served as FACTs by get_monetization_requirements; Snap Star status is evaluated as a prerequisite inside unified_monetization_program.",
      "type": "string",
      "enum": [
        "unified_monetization_program"
      ],
      "default": "unified_monetization_program"
    },
    "metrics": {
      "description": "Metrics supplied by the caller (the creator or their agent). We never look metrics up ourselves; Snap offers no public analytics for arbitrary usernames. All fields optional; missing fields produce `unknowns`, never guesses. Data minimization: no age, birthdate, name, or username is accepted; creator age is never stored.",
      "type": "object",
      "additionalProperties": false,
      "minProperties": 1,
      "properties": {
        "followers": {
          "type": "integer",
          "minimum": 0,
          "maximum": 10000000000
        },
        "view_time_hours_28d": {
          "description": "Total view time in hours over the last 28 days, as shown in Snapchat Insights.",
          "type": "number",
          "minimum": 0,
          "maximum": 1000000000
        },
        "spotlight_view_time_hours_28d": {
          "description": "Spotlight view time in hours over the last 28 days.",
          "type": "number",
          "minimum": 0,
          "maximum": 1000000000
        },
        "meets_age_requirement": {
          "description": "Whether the creator meets the age requirement (18 or the local age of majority). true/false as stated by the caller; null = unknown and returns requires_user_confirmation. Data minimization: we never ask for or store a creator's age or birthdate.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "country": {
          "description": "Country of residence. ISO 3166-1 alpha-2 (US), alpha-3 (USA), or the English name on the reviewed country map (United States). Unlisted territories stay unknown.",
          "type": "string",
          "minLength": 2,
          "maxLength": 80
        },
        "is_snap_star": {
          "description": "Self-reported Snap Star status. Cannot be verified by us; treated as a user confirmation.",
          "type": "boolean"
        },
        "posts_per_month": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100000
        },
        "active_posting_days_28d": {
          "type": "integer",
          "minimum": 0,
          "maximum": 28
        }
      }
    },
    "already_enrolled": {
      "description": "Set true only if the creator is already enrolled in the Monetization Program. Default false: only entry (invitation) requirements are evaluated. When true, ongoing requirements for enrolled creators are reported in a separate section.",
      "type": "boolean",
      "default": false
    },
    "include_recommendations": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "metrics"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://howtomakemoneyonsnapchat.com/schemas/v1/calculate_gap.input.schema.json",
  "title": "calculate_gap input",
  "description": "CALCULATION tool. Exact shortfall for each numeric entry requirement of the Monetization Program: absolute amount and percent complete, and which gap is the binding constraint. Ongoing requirements for enrolled creators are reported separately only when already_enrolled=true.",
  "additionalProperties": false
}
🟢calculate_growth_pace(program, metrics, already_enrolled, target_days, observed_daily_change, ...)

CALCULATION. Use this when you need the daily and weekly pace to close each numeric gap within target_days, with scenarios and labeled assumptions. This is a projection, not a prediction. Do not use it to learn the size of the gap (calculate_gap) or to list the rules (get_monetization_requirements).

Input Schema

{
  "type": "object",
  "properties": {
    "program": {
      "description": "Programs the calculation tools evaluate in v1. Other in-scope programs (payouts, tax, snap_star, creator_monetization_policy, recommendation_eligibility, brand_partnerships) are served as FACTs by get_monetization_requirements; Snap Star status is evaluated as a prerequisite inside unified_monetization_program.",
      "type": "string",
      "enum": [
        "unified_monetization_program"
      ],
      "default": "unified_monetization_program"
    },
    "metrics": {
      "description": "Metrics supplied by the caller (the creator or their agent). We never look metrics up ourselves; Snap offers no public analytics for arbitrary usernames. All fields optional; missing fields produce `unknowns`, never guesses. Data minimization: no age, birthdate, name, or username is accepted; creator age is never stored.",
      "type": "object",
      "additionalProperties": false,
      "minProperties": 1,
      "properties": {
        "followers": {
          "type": "integer",
          "minimum": 0,
          "maximum": 10000000000
        },
        "view_time_hours_28d": {
          "description": "Total view time in hours over the last 28 days, as shown in Snapchat Insights.",
          "type": "number",
          "minimum": 0,
          "maximum": 1000000000
        },
        "spotlight_view_time_hours_28d": {
          "description": "Spotlight view time in hours over the last 28 days.",
          "type": "number",
          "minimum": 0,
          "maximum": 1000000000
        },
        "meets_age_requirement": {
          "description": "Whether the creator meets the age requirement (18 or the local age of majority). true/false as stated by the caller; null = unknown and returns requires_user_confirmation. Data minimization: we never ask for or store a creator's age or birthdate.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "country": {
          "description": "Country of residence. ISO 3166-1 alpha-2 (US), alpha-3 (USA), or the English name on the reviewed country map (United States). Unlisted territories stay unknown.",
          "type": "string",
          "minLength": 2,
          "maxLength": 80
        },
        "is_snap_star": {
          "description": "Self-reported Snap Star status. Cannot be verified by us; treated as a user confirmation.",
          "type": "boolean"
        },
        "posts_per_month": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100000
        },
        "active_posting_days_28d": {
          "type": "integer",
          "minimum": 0,
          "maximum": 28
        }
      }
    },
    "already_enrolled": {
      "description": "Set true only if the creator is already enrolled in the Monetization Program. Default false: only entry (invitation) requirements are evaluated. When true, ongoing requirements for enrolled creators are reported in a separate section.",
      "type": "boolean",
      "default": false
    },
    "target_days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 730
    },
    "observed_daily_change": {
      "description": "Optional recent average daily change per metric (caller-supplied, may be negative) for comparing required vs. current pace.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "followers": {
          "type": "number",
          "minimum": -1000000000,
          "maximum": 1000000000
        },
        "view_time_hours_28d": {
          "type": "number",
          "minimum": -1000000000,
          "maximum": 1000000000
        },
        "spotlight_view_time_hours_28d": {
          "type": "number",
          "minimum": -1000000000,
          "maximum": 1000000000
        },
        "posts_per_month": {
          "type": "number",
          "minimum": -1000000000,
          "maximum": 1000000000
        },
        "active_posting_days_28d": {
          "type": "number",
          "minimum": -1000000000,
          "maximum": 1000000000
        }
      }
    },
    "metrics_to_pace": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "followers",
          "view_time_hours_28d",
          "spotlight_view_time_hours_28d",
          "posts_per_month",
          "active_posting_days_28d"
        ]
      },
      "uniqueItems": true,
      "maxItems": 5
    }
  },
  "required": [
    "metrics",
    "target_days"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://howtomakemoneyonsnapchat.com/schemas/v1/calculate_growth_pace.input.schema.json",
  "title": "calculate_growth_pace input",
  "description": "CALCULATION tool. Required daily and weekly pace to close each numeric gap within target_days, with a linear scenario plus alternatives and labeled assumptions. A projection, never a prediction.",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools