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
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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-httpWhat it can do
Tool inventory
Tools (5)
🟢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
Evidence