changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "$id": "https://howtomakemoneyonsnapchat.com/schemas/v1/get_monetization_requirements.output.schema.json",
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "additionalProperties": false,
+ "allOf": [
+ {
+ "description": "Fields present in every successful tool output.",
+ "properties": {
+ "api_version": {
+ "const": "v1"
+ },
+ "data_freshness": {
+ "additionalProperties": false,
+ "properties": {
+ "generated_at": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "newest_verified_at": {
+ "format": "date",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "oldest_verified_at": {
+ "format": "date",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "policy": {
+ "description": "Human-readable freshness policy, e.g. 'Sources are re-checked daily; rules not re-verified within 7 days are listed as stale.'",
+ "type": "string"
+ },
+ "rules_db_version": {
+ "description": "Monotonic version of the published rules set. Pattern YYYY-MM-DD.n",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}\\.[0-9]+$",
+ "type": "string"
+ },
+ "stale_rule_ids": {
+ "description": "Rules in this response whose verified_at is older than the staleness window stated in `policy`.",
+ "items": {
+ "maxLength": 120,
+ "pattern": "^[a-z0-9_]+(\\.[a-z0-9_]+)+$",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "rules_db_version",
+ "generated_at",
+ "oldest_verified_at",
+ "newest_verified_at",
+ "stale_rule_ids",
+ "policy"
+ ],
+ "type": "object"
+ },
+ "generated_at": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "notice": {
+ "const": "HowToMakeMoneyOnSnapchat.com is an independent third party and is not affiliated with, endorsed by, or sponsored by Snap Inc. Snapchat is a trademark of Snap Inc.",
+ "description": "Non-affiliation notice included in every response.",
+ "type": "string"
+ },
+ "sources": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "publisher": {
+ "type": "string"
+ },
+ "supports_rule_ids": {
+ "items": {
+ "maxLength": 120,
+ "pattern": "^[a-z0-9_]+(\\.[a-z0-9_]+)+$",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "title": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "url": {
+ "format": "uri",
+ "type": "string"
+ },
+ "verified_at": {
+ "format": "date",
+ "type": "string"
+ }
+ },
+ "required": [
+ "url",
+ "publisher",
+ "verified_at",
+ "supports_rule_ids"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tool": {
+ "type": "string"
+ },
+ "warnings": {
+ "description": "Plain strings. Omitted when empty. Calculation tools add a string when followers is 0 and view_time_hours_28d or spotlight_view_time_hours_28d is above 0, and when view_time_hours_28d exceeds 28 days × 24 hours × followers × 0.5. Those warnings say the figure is unusually high for your follower count, please check for a typo, and that view time can come from non-followers. They are never an error. FACT GET aliases append ignored query parameter notices to this same array. Spotlight hours above total view hours are HTTP 400 VALUE_INCONSISTENT rather than a warning.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "tool",
+ "api_version",
+ "notice",
+ "generated_at",
+ "sources",
+ "data_freshness"
+ ],
+ "type": "object"
+ }
+ ],
+ "properties": {
+ "api_version": {
+ "const": "v1"
+ },
+ "catalog_scope": {
+ "additionalProperties": false,
+ "description": "Counts computed from the approved rules database for one as-of date. mvp_in_force is the default requirements list. in_force_including_out_of_scope adds programs stored as out of scope. mvp_including_historical is every in-scope record, which is what the rule-change log lists.",
+ "properties": {
+ "approved_total": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "in_force_including_out_of_scope": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "mvp_in_force": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "mvp_including_historical": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "out_of_scope_programs": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "summary": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mvp_in_force",
+ "in_force_including_out_of_scope",
+ "mvp_including_historical",
+ "approved_total",
+ "out_of_scope_programs",
+ "summary"
+ ],
+ "type": "object"
+ },
+ "country_eligibility": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "country": {
+ "type": "string"
+ },
+ "listed": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "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.",
+ "pattern": "^[a-z0-9_]{2,64}$",
+ "type": "string"
+ },
+ "rule_id": {
+ "maxLength": 120,
+ "pattern": "^[a-z0-9_]+(\\.[a-z0-9_]+)+$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "program",
+ "country",
+ "listed",
+ "rule_id"
+ ],
+ "type": "object"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "data_freshness": {
+ "additionalProperties": false,
+ "properties": {
+ "generated_at": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "newest_verified_at": {
+ "format": "date",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "oldest_verified_at": {
+ "format": "date",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "policy": {
+ "description": "Human-readable freshness policy, e.g. 'Sources are re-checked daily; rules not re-verified within 7 days are listed as stale.'",
+ "type": "string"
+ },
+ "rules_db_version": {
+ "description": "Monotonic version of the published rules set. Pattern YYYY-MM-DD.n",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}\\.[0-9]+$",
+ "type": "string"
+ },
+ "stale_rule_ids": {
+ "description": "Rules in this response whose verified_at is older than the staleness window stated in `policy`.",
+ "items": {
+ "maxLength": 120,
+ "pattern": "^[a-z0-9_]+(\\.[a-z0-9_]+)+$",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "rules_db_version",
+ "generated_at",
+ "oldest_verified_at",
+ "newest_verified_at",
+ "stale_rule_ids",
+ "policy"
+ ],
+ "type": "object"
+ },
+ "direct_answer": {
+ "description": "Answer-first lead built from entry-requirement facts included in this response. Omitted when those facts are absent.",
+ "type": "string"
+ },
+ "direct_answer_note": {
+ "description": "Optional sentence after the lead for unverified entry facts left out of it. Omitted when there are none.",
+ "type": "string"
+ },
+ "facts": {
+ "items": {
+ "additionalProperties": false,
+ "description": "FACT: a rule record as stored in the versioned rules database (approved records only).",
+ "properties": {
+ "applies_to": {
+ "enum": [
+ "entry",
+ "enrolled_creators",
+ "all",
+ "not_applicable"
+ ],
+ "type": "string"
+ },
+ "changed_after": {
+ "description": "Inclusive start of an observed change window when the source does not state a single effective_date. Null when unknown. Additive.",
+ "format": "date",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "changed_before": {
+ "description": "Inclusive end of an observed change window when the source does not state a single effective_date. Null when unknown. Additive.",
+ "format": "date",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "claim": {
+ "type": "string"
+ },
+ "date_note": {
+ "description": "How changed_after and changed_before were established. Null when there is no window note. Not a substitute for source_url.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "effective_date": {
+ "format": "date",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "effective_date_note": {
+ "const": "not published by Snap",
+ "description": "Present when effective_date is null because Snap did not publish a date. effective_date stays null."
+ },
+ "iso_countries": {
+ "description": "ISO 3166-1 codes for each name in a country list, from the reviewed country map. Omitted unless this fact is a country list.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "alpha2": {
+ "type": "string"
+ },
+ "alpha3": {
+ "type": "string"
+ },
+ "numeric": {
+ "type": "string"
+ },
+ "snap_name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "snap_name",
+ "alpha2",
+ "alpha3",
+ "numeric"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "label": {
+ "const": "FACT"
+ },
+ "metric": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "mvp_scope": {
+ "enum": [
+ "in_scope",
+ "out_of_scope"
+ ],
+ "type": "string"
+ },
+ "notes": {
+ "type": "string"
+ },
+ "operator": {
+ "enum": [
+ "gte",
+ "gt",
+ "lte",
+ "lt",
+ "eq",
+ "in",
+ "is_true",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "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.",
+ "pattern": "^[a-z0-9_]{2,64}$",
+ "type": "string"
+ },
+ "publisher": {
+ "type": "string"
+ },
+ "related_rule_ids": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "requirement_phase": {
+ "enum": [
+ "entry",
+ "ongoing",
+ "entry_and_ongoing",
+ "not_applicable"
+ ],
+ "type": "string"
+ },
+ "requires_user_confirmation": {
+ "type": "boolean"
+ },
+ "rule_id": {
+ "maxLength": 120,
+ "pattern": "^[a-z0-9_]+(\\.[a-z0-9_]+)+$",
+ "type": "string"
+ },
+ "rule_type": {
+ "description": "Role of the rule, copied from the rules database. Omitted by older clients. Used to group answer pages.",
+ "enum": [
+ "eligibility_threshold",
+ "eligibility_condition",
+ "ongoing_condition",
+ "payout_term",
+ "tax_term",
+ "content_policy",
+ "program_fact",
+ "program_status",
+ "supplementary_note",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "source_url": {
+ "format": "uri",
+ "type": "string"
+ },
+ "status": {
+ "enum": [
+ "current",
+ "historical",
+ "unverified"
+ ],
+ "type": "string"
+ },
+ "supersedes": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "unit": {
+ "type": "string"
+ },
+ "value": {
+ "anyOf": [
+ {
+ "type": [
+ "number",
+ "string",
+ "boolean",
+ "null"
+ ]
+ },
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ ]
+ },
+ "verified_at": {
+ "format": "date",
+ "type": "string"
+ },
+ "version": {
+ "minimum": 1,
+ "type": "integer"
+ },
+ "window_days": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "label",
+ "rule_id",
+ "version",
+ "program",
+ "claim",
+ "value",
+ "unit",
+ "status",
+ "source_url",
+ "publisher",
+ "verified_at",
+ "effective_date",
+ "requires_user_confirmation",
+ "applies_to",
+ "requirement_phase",
+ "mvp_scope",
+ "notes"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "generated_at": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "notice": {
+ "const": "HowToMakeMoneyOnSnapchat.com is an independent third party and is not affiliated with, endorsed by, or sponsored by Snap Inc. Snapchat is a trademark of Snap Inc.",
+ "description": "Non-affiliation notice included in every response.",
+ "type": "string"
+ },
+ "programs": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "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.",
+ "pattern": "^[a-z0-9_]{2,64}$",
+ "type": "string"
+ },
+ "program_status": {
+ "enum": [
+ "active",
+ "historical",
+ "unknown"
+ ],
+ "type": "string"
+ },
+ "rule_ids": {
+ "items": {
+ "maxLength": 120,
+ "pattern": "^[a-z0-9_]+(\\.[a-z0-9_]+)+$",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "program",
+ "program_status",
+ "rule_ids"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "query": {
+ "additionalProperties": true,
+ "description": "Echo of the effective filters.",
+ "type": "object"
+ },
+ "sources": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "publisher": {
+ "type": "string"
+ },
+ "supports_rule_ids": {
+ "items": {
+ "maxLength": 120,
+ "pattern": "^[a-z0-9_]+(\\.[a-z0-9_]+)+$",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "title": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "url": {
+ "format": "uri",
+ "type": "string"
+ },
+ "verified_at": {
+ "format": "date",
+ "type": "string"
+ }
+ },
+ "required": [
+ "url",
+ "publisher",
+ "verified_at",
+ "supports_rule_ids"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tool": {
+ "const": "get_monetization_requirements"
+ },
+ "warnings": {
+ "description": "Plain strings. Omitted when empty. Calculation tools add a string when followers is 0 and view_time_hours_28d or spotlight_view_time_hours_28d is above 0, and when view_time_hours_28d exceeds 28 days × 24 hours × followers × 0.5. Those warnings say the figure is unusually high for your follower count, please check for a typo, and that view time can come from non-followers. They are never an error. FACT GET aliases append ignored query parameter notices to this same array. Spotlight hours above total view hours are HTTP 400 VALUE_INCONSISTENT rather than a warning.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "tool",
+ "api_version",
+ "notice",
+ "generated_at",
+ "sources",
+ "data_freshness",
+ "programs",
+ "facts"
+ ],
+ "title": "get_monetization_requirements output",
+ "type": "object"
+}