Two fact tools free, no key, low limit. Other tools: 14-day trial or paid plan. Watch writes data.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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).
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. Caller metrics are checked for plausibility. spotlight_view_time_hours_28d above view_time_hours_28d returns VALUE_INCONSISTENT. view_time_hours_28d above 28 days × 24 hours × followers × 0.5 is a warning that the figure is unusually high for your follower count, please check for a typo. The warning also says view time can come from non-followers. followers of 0 with hours above 0 is the same kind of warning, never an error.
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.
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.
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).
| Argument | Type | Description |
|---|---|---|
| metrics* | object | 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. Caller metrics are checked for plausibility. spotlight_view_time_hours_28d above view_time_hours_28d returns VALUE_INCONSISTENT. view_time_hours_28d above 28 days × 24 hours × followers × 0.5 is a warning that the figure is unusually high for your follower count, please check for a typo. The warning also says view time can come from non-followers. followers of 0 with hours above 0 is the same kind of warning, never an error. |
| program | string | 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. |
| already_enrolled | boolean | 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. |
| include_recommendations | boolean |
{
"$id": "https://howtomakemoneyonsnapchat.com/schemas/v1/calculate_gap.input.schema.json",
"type": "object",
"title": "calculate_gap input",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"metrics"
],
"properties": {
"metrics": {
"type": "object",
"properties": {
"country": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"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."
},
"followers": {
"type": "integer",
"maximum": 10000000000,
"minimum": 0
},
"is_snap_star": {
"type": "boolean",
"description": "Self-reported Snap Star status. Cannot be verified by us; treated as a user confirmation."
},
"posts_per_month": {
"type": "integer",
"maximum": 100000,
"minimum": 0
},
"view_time_hours_28d": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Total view time in hours over the last 28 days, as shown in Snapchat Insights."
},
"meets_age_requirement": {
"type": [
"boolean",
"null"
],
"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."
},
"active_posting_days_28d": {
"type": "integer",
"maximum": 28,
"minimum": 0
},
"spotlight_view_time_hours_28d": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Spotlight view time in hours over the last 28 days."
}
},
"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. Caller metrics are checked for plausibility. spotlight_view_time_hours_28d above view_time_hours_28d returns VALUE_INCONSISTENT. view_time_hours_28d above 28 days × 24 hours × followers × 0.5 is a warning that the figure is unusually high for your follower count, please check for a typo. The warning also says view time can come from non-followers. followers of 0 with hours above 0 is the same kind of warning, never an error.",
"minProperties": 1,
"additionalProperties": false
},
"program": {
"enum": [
"unified_monetization_program"
],
"type": "string",
"default": "unified_monetization_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."
},
"already_enrolled": {
"type": "boolean",
"default": false,
"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."
},
"include_recommendations": {
"type": "boolean",
"default": true
}
},
"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. Caller metrics are checked for plausibility. spotlight_view_time_hours_28d above view_time_hours_28d returns VALUE_INCONSISTENT. view_time_hours_28d above 28 days × 24 hours × followers × 0.5 is a warning that the figure is unusually high for your follower count, please check for a typo. The warning also says view time can come from non-followers. followers of 0 with hours above 0 is the same kind of warning, never an error.",
"additionalProperties": false
}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).
| Argument | Type | Description |
|---|---|---|
| metrics* | object | 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. Caller metrics are checked for plausibility. spotlight_view_time_hours_28d above view_time_hours_28d returns VALUE_INCONSISTENT. view_time_hours_28d above 28 days × 24 hours × followers × 0.5 is a warning that the figure is unusually high for your follower count, please check for a typo. The warning also says view time can come from non-followers. followers of 0 with hours above 0 is the same kind of warning, never an error. |
| program | string | 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. |
| target_days* | integer | |
| metrics_to_pace | array |
CALCULATION. Use this when you need a date-by-date timeline of Snap's payout steps from a credited date: Pending to Available, the cash-out minimum, taxpayer verification, and the earliest day cash can reach the Payout Portal. Ranges stay ranges when the source gives a range. This is an estimate, not a promise. Do not use it to score eligibility (check_eligibility) or to list every rule (get_monetization_requirements).
| Argument | Type | Description |
|---|---|---|
| amount_usd | number | Available balance in USD, supplied by the caller. Omitted when unknown. Compared with the cash-out minimum from the rules database. Not a Snap pay rate. |
| credited_date* | string | The day the reward appeared in All Activity, which is when Snap starts the pending clock. YYYY-MM-DD. |
| tax_info_verified | boolean | True when the caller says taxpayer verification is already finished. False when it is not. Omit when unknown. This service does not check a Snap account. |
{
"$id": "https://howtomakemoneyonsnapchat.com/schemas/v1/calculate_payout_timeline.input.schema.json",
"type": "object",
"title": "calculate_payout_timeline input",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"credited_date"
],
"properties": {
"amount_usd": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Available balance in USD, supplied by the caller. Omitted when unknown. Compared with the cash-out minimum from the rules database. Not a Snap pay rate."
},
"credited_date": {
"type": "string",
"format": "date",
"description": "The day the reward appeared in All Activity, which is when Snap starts the pending clock. YYYY-MM-DD."
},
"tax_info_verified": {
"type": "boolean",
"description": "True when the caller says taxpayer verification is already finished. False when it is not. Omit when unknown. This service does not check a Snap account."
}
},
"description": "CALCULATION tool. Dates Snap's payout steps from the day a reward was credited (the day it appeared in All Activity). Optional amount_usd is compared with the published cash-out minimum. Optional tax_info_verified says whether taxpayer verification is already finished. This tool does not look up an account. The result is an estimate, not a promise.",
"additionalProperties": false
}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).
| Argument | Type | Description |
|---|---|---|
| metrics* | object | 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. Caller metrics are checked for plausibility. spotlight_view_time_hours_28d above view_time_hours_28d returns VALUE_INCONSISTENT. view_time_hours_28d above 28 days × 24 hours × followers × 0.5 is a warning that the figure is unusually high for your follower count, please check for a typo. The warning also says view time can come from non-followers. followers of 0 with hours above 0 is the same kind of warning, never an error. |
| program | string | 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. |
| confirmations | array | Caller's answers to qualitative requirements (requires_user_confirmation rules), keyed by rule id. We record the answer as given and never verify it. |
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. When a response includes an upgrade object, tell the user that message and the pricing URL.
| Argument | Type | Description |
|---|---|---|
| as_of | string | Return the rules that were in force on this date (uses version history). Default: today. |
| country | string | ISO 3166-1 alpha-2, alpha-3, or an English country name. Adds country_eligibility. Does not remove facts. |
| program | any | Limit to one program. Omit for all programs. |
| requirement_phase | string | Optional filter. |
| include_historical | boolean | |
| include_unverified | boolean | Include rules we could not verify (status=unverified). Default true so gaps in knowledge are visible. |
| include_out_of_scope | boolean | 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. |
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). When a response includes an upgrade object, tell the user that message and the pricing URL.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| since | string | Inclusive lower bound on the change date: effective_date, else changed_before, else the last day of effective_month, else detected_at. Omitted on GET, POST, and MCP means 90 days before the request's UTC date. until defaults to the UTC date of the request. The response echoes both dates at the top level and inside query. |
| until | string | Inclusive upper bound on that same change date. Default: the UTC date of the request. |
| cursor | string | Opaque pagination cursor from a previous response. |
| program | string | 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. |
| include_baseline | boolean |
READ. Return this key's Eligibility Watch trend, projected dates, and rule-change notes. It does not write.
| Argument | Type | Description |
|---|---|---|
| profile_id | string | |
| already_enrolled | boolean |
{
"type": "object",
"properties": {
"profile_id": {
"type": "string"
},
"already_enrolled": {
"type": "boolean"
}
},
"additionalProperties": false
}WRITE. Save caller-supplied Snapchat numbers on this key's Eligibility Watch. A field you include replaces that date. A field you omit keeps the saved value. Null clears it.
| Argument | Type | Description |
|---|---|---|
| as_of* | string | |
| metrics* | object | |
| profile | object | |
| profile_id | string |
{
"type": "object",
"required": [
"as_of",
"metrics"
],
"properties": {
"as_of": {
"type": "string"
},
"metrics": {
"type": "object",
"properties": {
"followers": {
"type": [
"integer",
"null"
],
"minimum": 0
},
"view_time_hours_28d": {
"type": [
"number",
"null"
],
"minimum": 0
},
"spotlight_view_time_hours_28d": {
"type": [
"number",
"null"
],
"minimum": 0
}
},
"minProperties": 1,
"additionalProperties": false
},
"profile": {
"type": "object",
"additionalProperties": false
},
"profile_id": {
"type": "string"
}
},
"additionalProperties": false
}| already_enrolled | boolean | 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. |
| observed_daily_change | object | Optional recent average daily change per metric (caller-supplied, may be negative) for comparing required vs. current pace. |
{
"$id": "https://howtomakemoneyonsnapchat.com/schemas/v1/calculate_growth_pace.input.schema.json",
"type": "object",
"title": "calculate_growth_pace input",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"metrics",
"target_days"
],
"properties": {
"metrics": {
"type": "object",
"properties": {
"country": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"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."
},
"followers": {
"type": "integer",
"maximum": 10000000000,
"minimum": 0
},
"is_snap_star": {
"type": "boolean",
"description": "Self-reported Snap Star status. Cannot be verified by us; treated as a user confirmation."
},
"posts_per_month": {
"type": "integer",
"maximum": 100000,
"minimum": 0
},
"view_time_hours_28d": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Total view time in hours over the last 28 days, as shown in Snapchat Insights."
},
"meets_age_requirement": {
"type": [
"boolean",
"null"
],
"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."
},
"active_posting_days_28d": {
"type": "integer",
"maximum": 28,
"minimum": 0
},
"spotlight_view_time_hours_28d": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Spotlight view time in hours over the last 28 days."
}
},
"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. Caller metrics are checked for plausibility. spotlight_view_time_hours_28d above view_time_hours_28d returns VALUE_INCONSISTENT. view_time_hours_28d above 28 days × 24 hours × followers × 0.5 is a warning that the figure is unusually high for your follower count, please check for a typo. The warning also says view time can come from non-followers. followers of 0 with hours above 0 is the same kind of warning, never an error.",
"minProperties": 1,
"additionalProperties": false
},
"program": {
"enum": [
"unified_monetization_program"
],
"type": "string",
"default": "unified_monetization_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."
},
"target_days": {
"type": "integer",
"maximum": 730,
"minimum": 1
},
"metrics_to_pace": {
"type": "array",
"items": {
"enum": [
"followers",
"view_time_hours_28d",
"spotlight_view_time_hours_28d",
"posts_per_month",
"active_posting_days_28d"
],
"type": "string"
},
"maxItems": 5,
"uniqueItems": true
},
"already_enrolled": {
"type": "boolean",
"default": false,
"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."
},
"observed_daily_change": {
"type": "object",
"properties": {
"followers": {
"type": "number",
"maximum": 1000000000,
"minimum": -1000000000
},
"posts_per_month": {
"type": "number",
"maximum": 1000000000,
"minimum": -1000000000
},
"view_time_hours_28d": {
"type": "number",
"maximum": 1000000000,
"minimum": -1000000000
},
"active_posting_days_28d": {
"type": "number",
"maximum": 1000000000,
"minimum": -1000000000
},
"spotlight_view_time_hours_28d": {
"type": "number",
"maximum": 1000000000,
"minimum": -1000000000
}
},
"description": "Optional recent average daily change per metric (caller-supplied, may be negative) for comparing required vs. current pace.",
"additionalProperties": false
}
},
"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. Caller metrics are checked for plausibility. spotlight_view_time_hours_28d above view_time_hours_28d returns VALUE_INCONSISTENT. view_time_hours_28d above 28 days × 24 hours × followers × 0.5 is a warning that the figure is unusually high for your follower count, please check for a typo. The warning also says view time can come from non-followers. followers of 0 with hours above 0 is the same kind of warning, never an error.",
"additionalProperties": false
}| metrics_as_of | string | Date the metrics were read from Insights. |
| already_enrolled | boolean | 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. |
{
"$id": "https://howtomakemoneyonsnapchat.com/schemas/v1/check_eligibility.input.schema.json",
"type": "object",
"title": "check_eligibility input",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"metrics"
],
"properties": {
"metrics": {
"type": "object",
"properties": {
"country": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"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."
},
"followers": {
"type": "integer",
"maximum": 10000000000,
"minimum": 0
},
"is_snap_star": {
"type": "boolean",
"description": "Self-reported Snap Star status. Cannot be verified by us; treated as a user confirmation."
},
"posts_per_month": {
"type": "integer",
"maximum": 100000,
"minimum": 0
},
"view_time_hours_28d": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Total view time in hours over the last 28 days, as shown in Snapchat Insights."
},
"meets_age_requirement": {
"type": [
"boolean",
"null"
],
"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."
},
"active_posting_days_28d": {
"type": "integer",
"maximum": 28,
"minimum": 0
},
"spotlight_view_time_hours_28d": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Spotlight view time in hours over the last 28 days."
}
},
"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. Caller metrics are checked for plausibility. spotlight_view_time_hours_28d above view_time_hours_28d returns VALUE_INCONSISTENT. view_time_hours_28d above 28 days × 24 hours × followers × 0.5 is a warning that the figure is unusually high for your follower count, please check for a typo. The warning also says view time can come from non-followers. followers of 0 with hours above 0 is the same kind of warning, never an error.",
"minProperties": 1,
"additionalProperties": false
},
"program": {
"enum": [
"unified_monetization_program"
],
"type": "string",
"default": "unified_monetization_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."
},
"confirmations": {
"type": "array",
"items": {
"type": "object",
"required": [
"rule_id",
"confirmed"
],
"properties": {
"rule_id": {
"type": "string",
"pattern": "^[a-z0-9_]+(\\.[a-z0-9_]+)+$",
"maxLength": 120
},
"confirmed": {
"type": "boolean"
}
},
"additionalProperties": false
},
"maxItems": 50,
"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.",
"uniqueItems": true
},
"metrics_as_of": {
"type": "string",
"format": "date",
"description": "Date the metrics were read from Insights."
},
"already_enrolled": {
"type": "boolean",
"default": false,
"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."
}
},
"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. Caller metrics are checked for plausibility. spotlight_view_time_hours_28d above view_time_hours_28d returns VALUE_INCONSISTENT. view_time_hours_28d above 28 days × 24 hours × followers × 0.5 is a warning that the figure is unusually high for your follower count, please check for a typo. The warning also says view time can come from non-followers. followers of 0 with hours above 0 is the same kind of warning, never an error.",
"additionalProperties": false
}{
"$id": "https://howtomakemoneyonsnapchat.com/schemas/v1/get_monetization_requirements.input.schema.json",
"type": "object",
"title": "get_monetization_requirements input",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"as_of": {
"type": "string",
"format": "date",
"description": "Return the rules that were in force on this date (uses version history). Default: today."
},
"country": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "ISO 3166-1 alpha-2, alpha-3, or an English country name. Adds country_eligibility. Does not remove facts."
},
"program": {
"anyOf": [
{
"type": "string",
"pattern": "^[a-z0-9_]{2,64}$",
"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."
}
],
"description": "Limit to one program. Omit for all programs."
},
"requirement_phase": {
"enum": [
"entry",
"ongoing",
"entry_and_ongoing",
"not_applicable"
],
"type": "string",
"description": "Optional filter."
},
"include_historical": {
"type": "boolean",
"default": false
},
"include_unverified": {
"type": "boolean",
"default": true,
"description": "Include rules we could not verify (status=unverified). Default true so gaps in knowledge are visible."
},
"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."
}
},
"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
}| When true, also return baseline records in baseline. Baseline records are never included in changes. |
{
"$id": "https://howtomakemoneyonsnapchat.com/schemas/v1/get_rule_changes.input.schema.json",
"type": "object",
"title": "get_rule_changes input",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
},
"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. Omitted on GET, POST, and MCP means 90 days before the request's UTC date. until defaults to the UTC date of the request. The response echoes both dates at the top level and inside query."
},
"until": {
"type": "string",
"format": "date",
"description": "Inclusive upper bound on that same change date. Default: the UTC date of the request."
},
"cursor": {
"type": "string",
"maxLength": 200,
"description": "Opaque pagination cursor from a previous response."
},
"program": {
"type": "string",
"pattern": "^[a-z0-9_]{2,64}$",
"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."
},
"include_baseline": {
"type": "boolean",
"default": false,
"description": "When true, also return baseline records in baseline. Baseline records are never included in changes."
}
},
"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, retired, or claim_changed). claim_changed is a superseding record whose claim changed while value, status, and source stayed the same. A superseding record that keeps value, status, and source and does not set claim_changed is a date-presentation successor: the earlier record remains the published change. 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
}