이 MCP로 할 수 있는 일
Provides Snapchat creator-monetization rules, eligibility checks, gap calculations, growth projections, and rule-change history.
도구
입력 스키마
{'$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}
출력 스키마
{'$id': 'https://howtomakemoneyonsnapchat.com/schemas/v1/calculate_gap.output.schema.json', 'type': 'object', 'allOf': [{'type': 'object', 'required': ['tool', 'api_version', 'notice', 'generated_at', 'sources', 'data_freshness'], 'properties': {'tool': {'type': 'string'}, 'notice': {'type': 'string', '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.'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'publisher', 'verified_at', 'supports_rule_ids'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'title': {'type': ['string', 'null']}, 'publisher': {'type': 'string'}, 'verified_at': {'type': 'string', 'format': 'date'}, 'supports_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}}}, 'additionalProperties': False}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, '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.'}, 'api_version': {'const': 'v1'}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'data_freshness': {'type': 'object', 'required': ['rules_db_version', 'generated_at', 'oldest_verified_at', 'newest_verified_at', 'stale_rule_ids', 'policy'], 'properties': {'policy': {'type': 'string', 'description': "Human-readable freshness policy, e.g. 'Sources are re-checked daily; rules not re-verified within 7 days are listed as stale.'"}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'stale_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'description': 'Rules in this response whose verified_at is older than the staleness window stated in `policy`.'}, 'rules_db_version': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}\\.[0-9]+$', 'description': 'Monotonic version of the published rules set. Pattern YYYY-MM-DD.n'}, 'newest_verified_at': {'type': ['string', 'null'], 'format': 'date'}, 'oldest_verified_at': {'type': ['string', 'null'], 'format': 'date'}}, 'additionalProperties': False}}, 'description': 'Fields present in every successful tool output.'}], 'title': 'calculate_gap output', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['tool', 'api_version', 'notice', 'generated_at', 'sources', 'data_freshness', 'program', 'already_enrolled', 'gaps', 'ongoing_gaps', 'binding_constraint', 'unknowns', 'facts', 'recommendations'], 'properties': {'gaps': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'rule_id', 'rule_version', 'metric', 'unit', 'threshold', 'current', 'met', 'shortfall_absolute', 'percent_complete', 'percent_complete_uncapped', 'formula'], 'properties': {'met': {'type': 'boolean'}, 'unit': {'type': 'string'}, 'label': {'const': 'CALCULATION'}, 'metric': {'enum': ['followers', 'view_time_hours_28d', 'spotlight_view_time_hours_28d', 'posts_per_month', 'active_posting_days_28d'], 'type': 'string'}, 'current': {'type': 'number'}, 'formula': {'type': 'string'}, 'rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'threshold': {'type': 'number'}, 'window_days': {'type': ['integer', 'null']}, 'rule_version': {'type': 'integer'}, 'percent_complete': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'min(current / threshold, 1) * 100, rounded to 2 dp'}, 'surplus_absolute': {'type': 'number', 'minimum': 0, 'description': 'max(current - threshold, 0)'}, 'shortfall_absolute': {'type': 'number', 'minimum': 0, 'description': 'max(threshold - current, 0)'}, 'percent_complete_uncapped': {'type': 'number', 'minimum': 0}}, 'additionalProperties': False}, 'description': 'Entry requirements only.'}, 'tool': {'const': 'calculate_gap'}, 'facts': {'type': 'array', 'items': {'type': 'object', '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'], 'properties': {'unit': {'type': 'string'}, 'claim': {'type': 'string'}, 'label': {'const': 'FACT'}, 'notes': {'type': 'string'}, 'value': {'anyOf': [{'type': ['number', 'string', 'boolean', 'null']}, {'type': 'array', 'items': {'type': 'string'}}]}, 'metric': {'type': ['string', 'null']}, 'status': {'enum': ['current', 'historical', 'unverified'], 'type': 'string'}, '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.'}, 'rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'version': {'type': 'integer', 'minimum': 1}, 'operator': {'enum': ['gte', 'gt', 'lte', 'lt', 'eq', 'in', 'is_true', None], 'type': ['string', 'null']}, 'date_note': {'type': ['string', 'null'], 'description': 'How changed_after and changed_before were established. Null when there is no window note. Not a substitute for source_url.'}, 'mvp_scope': {'enum': ['in_scope', 'out_of_scope'], 'type': 'string'}, 'publisher': {'type': 'string'}, 'rule_type': {'enum': ['eligibility_threshold', 'eligibility_condition', 'ongoing_condition', 'payout_term', 'tax_term', 'content_policy', 'program_fact', 'program_status', 'supplementary_note', None], 'type': ['string', 'null'], 'description': 'Role of the rule, copied from the rules database. Omitted by older clients. Used to group answer pages.'}, 'applies_to': {'enum': ['entry', 'enrolled_creators', 'all', 'not_applicable'], 'type': 'string'}, 'source_url': {'type': 'string', 'format': 'uri'}, 'supersedes': {'type': ['string', 'null']}, 'verified_at': {'type': 'string', 'format': 'date'}, 'window_days': {'type': ['integer', 'null']}, 'changed_after': {'type': ['string', 'null'], 'format': 'date', 'description': 'Inclusive start of an observed change window when the source does not state a single effective_date. Null when unknown. Additive.'}, 'iso_countries': {'type': 'array', 'items': {'type': 'object', 'required': ['snap_name', 'alpha2', 'alpha3', 'numeric'], 'properties': {'alpha2': {'type': 'string'}, 'alpha3': {'type': 'string'}, 'numeric': {'type': 'string'}, 'snap_name': {'type': 'string'}}, 'additionalProperties': False}, '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.'}, 'changed_before': {'type': ['string', 'null'], 'format': 'date', 'description': 'Inclusive end of an observed change window when the source does not state a single effective_date. Null when unknown. Additive.'}, 'effective_date': {'type': ['string', 'null'], 'format': 'date'}, 'related_rule_ids': {'type': 'array', 'items': {'type': 'string'}}, 'requirement_phase': {'enum': ['entry', 'ongoing', 'entry_and_ongoing', 'not_applicable'], 'type': 'string'}, '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.'}, 'requires_user_confirmation': {'type': 'boolean'}}, 'description': 'FACT: a rule record as stored in the versioned rules database (approved records only).', 'additionalProperties': False}}, 'notice': {'type': 'string', '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.'}, '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.'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'publisher', 'verified_at', 'supports_rule_ids'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'title': {'type': ['string', 'null']}, 'publisher': {'type': 'string'}, 'verified_at': {'type': 'string', 'format': 'date'}, 'supports_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}}}, 'additionalProperties': False}}, 'unknowns': {'type': 'array', 'items': {'type': 'object', 'required': ['rule_id', 'reason', 'how_to_resolve'], 'properties': {'reason': {'enum': ['missing_input', 'rule_unverified', 'requires_user_confirmation', 'not_computable_from_metrics', 'rule_value_not_numeric'], 'type': 'string'}, 'rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'how_to_resolve': {'type': 'string'}, 'missing_metric': {'anyOf': [{'enum': ['followers', 'view_time_hours_28d', 'spotlight_view_time_hours_28d', 'meets_age_requirement', 'country', 'is_snap_star', 'posts_per_month', 'active_posting_days_28d'], 'type': 'string', 'description': 'Closed vocabulary of creator metrics the engines understand.'}, {'type': 'null'}]}}, 'description': 'A requirement we could not evaluate, with the reason and what would resolve it.', 'additionalProperties': False}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, '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.'}, 'api_version': {'const': 'v1'}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'ongoing_gaps': {'type': ['object', 'null'], 'required': ['note', 'gaps'], 'properties': {'gaps': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'rule_id', 'rule_version', 'metric', 'unit', 'threshold', 'current', 'met', 'shortfall_absolute', 'percent_complete', 'percent_complete_uncapped', 'formula'], 'properties': {'met': {'type': 'boolean'}, 'unit': {'type': 'string'}, 'label': {'const': 'CALCULATION'}, 'metric': {'enum': ['followers', 'view_time_hours_28d', 'spotlight_view_time_hours_28d', 'posts_per_month', 'active_posting_days_28d'], 'type': 'string'}, 'current': {'type': 'number'}, 'formula': {'type': 'string'}, 'rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'threshold': {'type': 'number'}, 'window_days': {'type': ['integer', 'null']}, 'rule_version': {'type': 'integer'}, 'percent_complete': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'min(current / threshold, 1) * 100, rounded to 2 dp'}, 'surplus_absolute': {'type': 'number', 'minimum': 0, 'description': 'max(current - threshold, 0)'}, 'shortfall_absolute': {'type': 'number', 'minimum': 0, 'description': 'max(threshold - current, 0)'}, 'percent_complete_uncapped': {'type': 'number', 'minimum': 0}}, 'additionalProperties': False}}, 'note': {'const': 'Ongoing requirements apply only to creators already enrolled in the Monetization Program. Snap says the 100-hour Spotlight view-time requirement is needed to qualify for maximum Creator Rewards; Snap does not say that rewards stop below it.'}}, 'description': 'null unless already_enrolled=true.', 'additionalProperties': False}, 'data_freshness': {'type': 'object', 'required': ['rules_db_version', 'generated_at', 'oldest_verified_at', 'newest_verified_at', 'stale_rule_ids', 'policy'], 'properties': {'policy': {'type': 'string', 'description': "Human-readable freshness policy, e.g. 'Sources are re-checked daily; rules not re-verified within 7 days are listed as stale.'"}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'stale_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'description': 'Rules in this response whose verified_at is older than the staleness window stated in `policy`.'}, 'rules_db_version': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}\\.[0-9]+$', 'description': 'Monotonic version of the published rules set. Pattern YYYY-MM-DD.n'}, 'newest_verified_at': {'type': ['string', 'null'], 'format': 'date'}, 'oldest_verified_at': {'type': ['string', 'null'], 'format': 'date'}}, 'additionalProperties': False}, 'recommendations': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'objective', 'reason', 'linked_rule_id', 'measurable_target', 'assumptions', 'risks'], 'properties': {'label': {'const': 'RECOMMENDATION'}, 'order': {'type': 'integer', 'minimum': 1, 'description': '1 = address first (the binding constraint). An ordering, not a score.'}, 'risks': {'type': 'array', 'items': {'type': 'string'}}, 'reason': {'type': 'string', 'maxLength': 300}, 'objective': {'type': 'string', 'maxLength': 200}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1}, 'realism_note': {'type': ['string', 'null'], 'description': "Plain statement when the math is unrealistic, e.g. 'Required pace is 20x your observed pace.'"}, 'linked_rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'measurable_target': {'type': 'object', 'required': ['metric', 'value', 'unit'], 'properties': {'unit': {'type': 'string'}, 'value': {'type': 'number'}, 'metric': {'enum': ['followers', 'view_time_hours_28d', 'spotlight_view_time_hours_28d', 'meets_age_requirement', 'country', 'is_snap_star', 'posts_per_month', 'active_posting_days_28d'], 'type': 'string', 'description': 'Closed vocabulary of creator metrics the engines understand.'}, 'by_date': {'type': ['string', 'null'], 'format': 'date'}}, 'additionalProperties': False}}, 'description': 'RECOMMENDATION: our suggestion, never a Snap rule. Short and structured; the calling agent writes prose.', 'additionalProperties': False}}, 'already_enrolled': {'type': 'boolean'}, 'binding_constraint': {'type': ['object', 'null'], 'required': ['rule_id', 'metric', 'percent_complete', 'rule'], 'properties': {'rule': {'const': 'unmet requirement with the lowest percent_complete; ties broken by rule_id'}, 'metric': {'enum': ['followers', 'view_time_hours_28d', 'spotlight_view_time_hours_28d', 'posts_per_month', 'active_posting_days_28d'], 'type': 'string'}, 'rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'percent_complete': {'type': 'number'}}, 'additionalProperties': False}}, 'additionalProperties': False}
입력 스키마
{'$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}
출력 스키마
{'$id': 'https://howtomakemoneyonsnapchat.com/schemas/v1/calculate_growth_pace.output.schema.json', 'type': 'object', 'allOf': [{'type': 'object', 'required': ['tool', 'api_version', 'notice', 'generated_at', 'sources', 'data_freshness'], 'properties': {'tool': {'type': 'string'}, 'notice': {'type': 'string', '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.'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'publisher', 'verified_at', 'supports_rule_ids'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'title': {'type': ['string', 'null']}, 'publisher': {'type': 'string'}, 'verified_at': {'type': 'string', 'format': 'date'}, 'supports_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}}}, 'additionalProperties': False}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, '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.'}, 'api_version': {'const': 'v1'}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'data_freshness': {'type': 'object', 'required': ['rules_db_version', 'generated_at', 'oldest_verified_at', 'newest_verified_at', 'stale_rule_ids', 'policy'], 'properties': {'policy': {'type': 'string', 'description': "Human-readable freshness policy, e.g. 'Sources are re-checked daily; rules not re-verified within 7 days are listed as stale.'"}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'stale_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'description': 'Rules in this response whose verified_at is older than the staleness window stated in `policy`.'}, 'rules_db_version': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}\\.[0-9]+$', 'description': 'Monotonic version of the published rules set. Pattern YYYY-MM-DD.n'}, 'newest_verified_at': {'type': ['string', 'null'], 'format': 'date'}, 'oldest_verified_at': {'type': ['string', 'null'], 'format': 'date'}}, 'additionalProperties': False}}, 'description': 'Fields present in every successful tool output.'}], 'title': 'calculate_growth_pace output', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['tool', 'api_version', 'notice', 'generated_at', 'sources', 'data_freshness', 'program', 'already_enrolled', 'target_days', 'target_date', 'paces', 'ongoing_paces', 'projection_disclaimer', 'unknowns', 'facts', 'recommendations'], 'properties': {'tool': {'const': 'calculate_growth_pace'}, 'facts': {'type': 'array', 'items': {'type': 'object', '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'], 'properties': {'unit': {'type': 'string'}, 'claim': {'type': 'string'}, 'label': {'const': 'FACT'}, 'notes': {'type': 'string'}, 'value': {'anyOf': [{'type': ['number', 'string', 'boolean', 'null']}, {'type': 'array', 'items': {'type': 'string'}}]}, 'metric': {'type': ['string', 'null']}, 'status': {'enum': ['current', 'historical', 'unverified'], 'type': 'string'}, '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.'}, 'rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'version': {'type': 'integer', 'minimum': 1}, 'operator': {'enum': ['gte', 'gt', 'lte', 'lt', 'eq', 'in', 'is_true', None], 'type': ['string', 'null']}, 'date_note': {'type': ['string', 'null'], 'description': 'How changed_after and changed_before were established. Null when there is no window note. Not a substitute for source_url.'}, 'mvp_scope': {'enum': ['in_scope', 'out_of_scope'], 'type': 'string'}, 'publisher': {'type': 'string'}, 'rule_type': {'enum': ['eligibility_threshold', 'eligibility_condition', 'ongoing_condition', 'payout_term', 'tax_term', 'content_policy', 'program_fact', 'program_status', 'supplementary_note', None], 'type': ['string', 'null'], 'description': 'Role of the rule, copied from the rules database. Omitted by older clients. Used to group answer pages.'}, 'applies_to': {'enum': ['entry', 'enrolled_creators', 'all', 'not_applicable'], 'type': 'string'}, 'source_url': {'type': 'string', 'format': 'uri'}, 'supersedes': {'type': ['string', 'null']}, 'verified_at': {'type': 'string', 'format': 'date'}, 'window_days': {'type': ['integer', 'null']}, 'changed_after': {'type': ['string', 'null'], 'format': 'date', 'description': 'Inclusive start of an observed change window when the source does not state a single effective_date. Null when unknown. Additive.'}, 'iso_countries': {'type': 'array', 'items': {'type': 'object', 'required': ['snap_name', 'alpha2', 'alpha3', 'numeric'], 'properties': {'alpha2': {'type': 'string'}, 'alpha3': {'type': 'string'}, 'numeric': {'type': 'string'}, 'snap_name': {'type': 'string'}}, 'additionalProperties': False}, '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.'}, 'changed_before': {'type': ['string', 'null'], 'format': 'date', 'description': 'Inclusive end of an observed change window when the source does not state a single effective_date. Null when unknown. Additive.'}, 'effective_date': {'type': ['string', 'null'], 'format': 'date'}, 'related_rule_ids': {'type': 'array', 'items': {'type': 'string'}}, 'requirement_phase': {'enum': ['entry', 'ongoing', 'entry_and_ongoing', 'not_applicable'], 'type': 'string'}, '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.'}, 'requires_user_confirmation': {'type': 'boolean'}}, 'description': 'FACT: a rule record as stored in the versioned rules database (approved records only).', 'additionalProperties': False}}, 'paces': {'type': 'array', 'items': {'type': 'object', 'required': ['rule_id', 'metric', 'metric_kind', 'current', 'threshold', 'gap', 'scenarios'], 'properties': {'gap': {'type': 'number', 'minimum': 0}, 'metric': {'enum': ['followers', 'view_time_hours_28d', 'spotlight_view_time_hours_28d', 'posts_per_month', 'active_posting_days_28d'], 'type': 'string'}, 'current': {'type': 'number'}, 'rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'scenarios': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'name', 'computable', 'required_daily', 'required_weekly', 'unit', 'formula', 'assumptions'], 'properties': {'name': {'enum': ['linear', 'compound', 'rolling_window_replacement'], 'type': 'string', 'description': 'linear: shortfall divided by the caller-chosen days, (T - C) / N. Used for cumulative metrics and for rolling-window metrics. compound: constant daily % growth (cumulative metrics; not computable when current = 0). rolling_window_replacement remains in the enum and is not produced.'}, 'unit': {'type': 'string'}, 'label': {'const': 'CALCULATION'}, 'formula': {'type': 'string'}, 'computable': {'type': 'boolean'}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1}, 'required_daily': {'type': ['number', 'null']}, 'required_weekly': {'type': ['number', 'null']}, 'not_computable_reason': {'type': ['string', 'null']}, 'required_daily_growth_rate_pct': {'type': ['number', 'null'], 'description': 'compound scenario only'}}, 'additionalProperties': False}, 'minItems': 1}, 'threshold': {'type': 'number'}, 'already_met': {'type': 'boolean'}, 'metric_kind': {'enum': ['cumulative', 'rolling_window'], 'type': 'string'}, 'window_days': {'type': ['integer', 'null']}, 'observed_daily_change': {'type': ['number', 'null']}, 'required_to_observed_ratio': {'type': ['number', 'null'], 'description': 'linear required_daily / observed_daily_change; null if observed not supplied or <= 0.'}}, 'additionalProperties': False}, 'description': 'Entry requirements only.'}, 'notice': {'type': 'string', '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.'}, '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.'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'publisher', 'verified_at', 'supports_rule_ids'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'title': {'type': ['string', 'null']}, 'publisher': {'type': 'string'}, 'verified_at': {'type': 'string', 'format': 'date'}, 'supports_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}}}, 'additionalProperties': False}}, 'unknowns': {'type': 'array', 'items': {'type': 'object', 'required': ['rule_id', 'reason', 'how_to_resolve'], 'properties': {'reason': {'enum': ['missing_input', 'rule_unverified', 'requires_user_confirmation', 'not_computable_from_metrics', 'rule_value_not_numeric'], 'type': 'string'}, 'rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'how_to_resolve': {'type': 'string'}, 'missing_metric': {'anyOf': [{'enum': ['followers', 'view_time_hours_28d', 'spotlight_view_time_hours_28d', 'meets_age_requirement', 'country', 'is_snap_star', 'posts_per_month', 'active_posting_days_28d'], 'type': 'string', 'description': 'Closed vocabulary of creator metrics the engines understand.'}, {'type': 'null'}]}}, 'description': 'A requirement we could not evaluate, with the reason and what would resolve it.', 'additionalProperties': False}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, '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.'}, 'api_version': {'const': 'v1'}, 'target_date': {'type': 'string', 'format': 'date'}, 'target_days': {'type': 'integer'}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'ongoing_paces': {'type': ['object', 'null'], 'required': ['note', 'paces'], 'properties': {'note': {'const': 'Ongoing requirements apply only to creators already enrolled in the Monetization Program. Snap says the 100-hour Spotlight view-time requirement is needed to qualify for maximum Creator Rewards; Snap does not say that rewards stop below it.'}, 'paces': {'type': 'array', 'items': {'type': 'object', 'required': ['rule_id', 'metric', 'metric_kind', 'current', 'threshold', 'gap', 'scenarios'], 'properties': {'gap': {'type': 'number', 'minimum': 0}, 'metric': {'enum': ['followers', 'view_time_hours_28d', 'spotlight_view_time_hours_28d', 'posts_per_month', 'active_posting_days_28d'], 'type': 'string'}, 'current': {'type': 'number'}, 'rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'scenarios': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'name', 'computable', 'required_daily', 'required_weekly', 'unit', 'formula', 'assumptions'], 'properties': {'name': {'enum': ['linear', 'compound', 'rolling_window_replacement'], 'type': 'string', 'description': 'linear: shortfall divided by the caller-chosen days, (T - C) / N. Used for cumulative metrics and for rolling-window metrics. compound: constant daily % growth (cumulative metrics; not computable when current = 0). rolling_window_replacement remains in the enum and is not produced.'}, 'unit': {'type': 'string'}, 'label': {'const': 'CALCULATION'}, 'formula': {'type': 'string'}, 'computable': {'type': 'boolean'}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1}, 'required_daily': {'type': ['number', 'null']}, 'required_weekly': {'type': ['number', 'null']}, 'not_computable_reason': {'type': ['string', 'null']}, 'required_daily_growth_rate_pct': {'type': ['number', 'null'], 'description': 'compound scenario only'}}, 'additionalProperties': False}, 'minItems': 1}, 'threshold': {'type': 'number'}, 'already_met': {'type': 'boolean'}, 'metric_kind': {'enum': ['cumulative', 'rolling_window'], 'type': 'string'}, 'window_days': {'type': ['integer', 'null']}, 'observed_daily_change': {'type': ['number', 'null']}, 'required_to_observed_ratio': {'type': ['number', 'null'], 'description': 'linear required_daily / observed_daily_change; null if observed not supplied or <= 0.'}}, 'additionalProperties': False}}}, 'description': 'null unless already_enrolled=true.', 'additionalProperties': False}, 'data_freshness': {'type': 'object', 'required': ['rules_db_version', 'generated_at', 'oldest_verified_at', 'newest_verified_at', 'stale_rule_ids', 'policy'], 'properties': {'policy': {'type': 'string', 'description': "Human-readable freshness policy, e.g. 'Sources are re-checked daily; rules not re-verified within 7 days are listed as stale.'"}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'stale_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'description': 'Rules in this response whose verified_at is older than the staleness window stated in `policy`.'}, 'rules_db_version': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}\\.[0-9]+$', 'description': 'Monotonic version of the published rules set. Pattern YYYY-MM-DD.n'}, 'newest_verified_at': {'type': ['string', 'null'], 'format': 'date'}, 'oldest_verified_at': {'type': ['string', 'null'], 'format': 'date'}}, 'additionalProperties': False}, 'recommendations': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'objective', 'reason', 'linked_rule_id', 'measurable_target', 'assumptions', 'risks'], 'properties': {'label': {'const': 'RECOMMENDATION'}, 'order': {'type': 'integer', 'minimum': 1, 'description': '1 = address first (the binding constraint). An ordering, not a score.'}, 'risks': {'type': 'array', 'items': {'type': 'string'}}, 'reason': {'type': 'string', 'maxLength': 300}, 'objective': {'type': 'string', 'maxLength': 200}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1}, 'realism_note': {'type': ['string', 'null'], 'description': "Plain statement when the math is unrealistic, e.g. 'Required pace is 20x your observed pace.'"}, 'linked_rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'measurable_target': {'type': 'object', 'required': ['metric', 'value', 'unit'], 'properties': {'unit': {'type': 'string'}, 'value': {'type': 'number'}, 'metric': {'enum': ['followers', 'view_time_hours_28d', 'spotlight_view_time_hours_28d', 'meets_age_requirement', 'country', 'is_snap_star', 'posts_per_month', 'active_posting_days_28d'], 'type': 'string', 'description': 'Closed vocabulary of creator metrics the engines understand.'}, 'by_date': {'type': ['string', 'null'], 'format': 'date'}}, 'additionalProperties': False}}, 'description': 'RECOMMENDATION: our suggestion, never a Snap rule. Short and structured; the calling agent writes prose.', 'additionalProperties': False}}, 'already_enrolled': {'type': 'boolean'}, 'projection_disclaimer': {'const': 'Projections show the pace required under stated assumptions. They are not predictions of what will happen.'}}, 'additionalProperties': False}
입력 스키마
{'$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/check_eligibility.output.schema.json', 'type': 'object', 'allOf': [{'type': 'object', 'required': ['tool', 'api_version', 'notice', 'generated_at', 'sources', 'data_freshness'], 'properties': {'tool': {'type': 'string'}, 'notice': {'type': 'string', '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.'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'publisher', 'verified_at', 'supports_rule_ids'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'title': {'type': ['string', 'null']}, 'publisher': {'type': 'string'}, 'verified_at': {'type': 'string', 'format': 'date'}, 'supports_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}}}, 'additionalProperties': False}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, '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.'}, 'api_version': {'const': 'v1'}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'data_freshness': {'type': 'object', 'required': ['rules_db_version', 'generated_at', 'oldest_verified_at', 'newest_verified_at', 'stale_rule_ids', 'policy'], 'properties': {'policy': {'type': 'string', 'description': "Human-readable freshness policy, e.g. 'Sources are re-checked daily; rules not re-verified within 7 days are listed as stale.'"}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'stale_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'description': 'Rules in this response whose verified_at is older than the staleness window stated in `policy`.'}, 'rules_db_version': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}\\.[0-9]+$', 'description': 'Monotonic version of the published rules set. Pattern YYYY-MM-DD.n'}, 'newest_verified_at': {'type': ['string', 'null'], 'format': 'date'}, 'oldest_verified_at': {'type': ['string', 'null'], 'format': 'date'}}, 'additionalProperties': False}}, 'description': 'Fields present in every successful tool output.'}], 'title': 'check_eligibility output', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['tool', 'api_version', 'notice', 'generated_at', 'sources', 'data_freshness', 'program', 'already_enrolled', 'summary', 'requirements', 'ongoing_requirements', 'unknowns', 'facts'], 'properties': {'tool': {'const': 'check_eligibility'}, 'facts': {'type': 'array', 'items': {'type': 'object', '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'], 'properties': {'unit': {'type': 'string'}, 'claim': {'type': 'string'}, 'label': {'const': 'FACT'}, 'notes': {'type': 'string'}, 'value': {'anyOf': [{'type': ['number', 'string', 'boolean', 'null']}, {'type': 'array', 'items': {'type': 'string'}}]}, 'metric': {'type': ['string', 'null']}, 'status': {'enum': ['current', 'historical', 'unverified'], 'type': 'string'}, '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.'}, 'rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'version': {'type': 'integer', 'minimum': 1}, 'operator': {'enum': ['gte', 'gt', 'lte', 'lt', 'eq', 'in', 'is_true', None], 'type': ['string', 'null']}, 'date_note': {'type': ['string', 'null'], 'description': 'How changed_after and changed_before were established. Null when there is no window note. Not a substitute for source_url.'}, 'mvp_scope': {'enum': ['in_scope', 'out_of_scope'], 'type': 'string'}, 'publisher': {'type': 'string'}, 'rule_type': {'enum': ['eligibility_threshold', 'eligibility_condition', 'ongoing_condition', 'payout_term', 'tax_term', 'content_policy', 'program_fact', 'program_status', 'supplementary_note', None], 'type': ['string', 'null'], 'description': 'Role of the rule, copied from the rules database. Omitted by older clients. Used to group answer pages.'}, 'applies_to': {'enum': ['entry', 'enrolled_creators', 'all', 'not_applicable'], 'type': 'string'}, 'source_url': {'type': 'string', 'format': 'uri'}, 'supersedes': {'type': ['string', 'null']}, 'verified_at': {'type': 'string', 'format': 'date'}, 'window_days': {'type': ['integer', 'null']}, 'changed_after': {'type': ['string', 'null'], 'format': 'date', 'description': 'Inclusive start of an observed change window when the source does not state a single effective_date. Null when unknown. Additive.'}, 'iso_countries': {'type': 'array', 'items': {'type': 'object', 'required': ['snap_name', 'alpha2', 'alpha3', 'numeric'], 'properties': {'alpha2': {'type': 'string'}, 'alpha3': {'type': 'string'}, 'numeric': {'type': 'string'}, 'snap_name': {'type': 'string'}}, 'additionalProperties': False}, '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.'}, 'changed_before': {'type': ['string', 'null'], 'format': 'date', 'description': 'Inclusive end of an observed change window when the source does not state a single effective_date. Null when unknown. Additive.'}, 'effective_date': {'type': ['string', 'null'], 'format': 'date'}, 'related_rule_ids': {'type': 'array', 'items': {'type': 'string'}}, 'requirement_phase': {'enum': ['entry', 'ongoing', 'entry_and_ongoing', 'not_applicable'], 'type': 'string'}, '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.'}, 'requires_user_confirmation': {'type': 'boolean'}}, 'description': 'FACT: a rule record as stored in the versioned rules database (approved records only).', 'additionalProperties': False}}, 'notice': {'type': 'string', '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.'}, '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.'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'publisher', 'verified_at', 'supports_rule_ids'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'title': {'type': ['string', 'null']}, 'publisher': {'type': 'string'}, 'verified_at': {'type': 'string', 'format': 'date'}, 'supports_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}}}, 'additionalProperties': False}}, 'summary': {'type': 'object', 'allOf': [{'if': {'properties': {'published_criteria_status': {'const': 'meets_published_criteria'}}}, 'then': {'properties': {'disclaimer': {'const': "Meets the published criteria; invitation to the Monetization Program is at Snap's discretion."}}}}, {'if': {'properties': {'published_criteria_status': {'const': 'does_not_meet_published_criteria'}}}, 'then': {'properties': {'disclaimer': {'const': "Does not meet the published criteria based on the inputs provided; invitation to the Monetization Program is at Snap's discretion."}}}}, {'if': {'properties': {'published_criteria_status': {'const': 'unknown'}}}, 'then': {'properties': {'disclaimer': {'const': "Cannot determine whether the published criteria are met from the inputs provided (some requirements are unknown or need the creator's confirmation); invitation to the Monetization Program is at Snap's discretion."}}}}], 'required': ['published_criteria_status', 'disclaimer', 'pass_count', 'fail_count', 'unknown_count', 'requires_confirmation_count'], 'properties': {'disclaimer': {'enum': ["Meets the published criteria; invitation to the Monetization Program is at Snap's discretion.", "Does not meet the published criteria based on the inputs provided; invitation to the Monetization Program is at Snap's discretion.", "Cannot determine whether the published criteria are met from the inputs provided (some requirements are unknown or need the creator's confirmation); invitation to the Monetization Program is at Snap's discretion."], 'type': 'string'}, 'fail_count': {'type': 'integer', 'minimum': 0}, 'pass_count': {'type': 'integer', 'minimum': 0}, 'unknown_count': {'type': 'integer', 'minimum': 0}, 'published_criteria_status': {'enum': ['meets_published_criteria', 'does_not_meet_published_criteria', 'unknown'], 'type': 'string'}, 'requires_confirmation_count': {'type': 'integer', 'minimum': 0}}, 'description': "Entry requirements only. published_criteria_status rule: does_not_meet_published_criteria if any requirement is fail or user_denied; otherwise unknown if any is unknown or requires_user_confirmation; otherwise meets_published_criteria. There is deliberately no 'eligible' verdict.", 'additionalProperties': False}, 'unknowns': {'type': 'array', 'items': {'type': 'object', 'required': ['rule_id', 'reason', 'how_to_resolve'], 'properties': {'reason': {'enum': ['missing_input', 'rule_unverified', 'requires_user_confirmation', 'not_computable_from_metrics', 'rule_value_not_numeric'], 'type': 'string'}, 'rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'how_to_resolve': {'type': 'string'}, 'missing_metric': {'anyOf': [{'enum': ['followers', 'view_time_hours_28d', 'spotlight_view_time_hours_28d', 'meets_age_requirement', 'country', 'is_snap_star', 'posts_per_month', 'active_posting_days_28d'], 'type': 'string', 'description': 'Closed vocabulary of creator metrics the engines understand.'}, {'type': 'null'}]}}, 'description': 'A requirement we could not evaluate, with the reason and what would resolve it.', 'additionalProperties': False}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, '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.'}, 'api_version': {'const': 'v1'}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'requirements': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'rule_id', 'rule_version', 'claim', 'rule_status', 'outcome', 'threshold', 'input_value'], 'properties': {'claim': {'type': 'string'}, 'label': {'const': 'CALCULATION'}, 'metric': {'anyOf': [{'enum': ['followers', 'view_time_hours_28d', 'spotlight_view_time_hours_28d', 'meets_age_requirement', 'country', 'is_snap_star', 'posts_per_month', 'active_posting_days_28d'], 'type': 'string', 'description': 'Closed vocabulary of creator metrics the engines understand.'}, {'type': 'null'}]}, 'outcome': {'enum': ['pass', 'fail', 'unknown', 'requires_user_confirmation', 'user_confirmed', 'user_denied'], 'type': 'string'}, 'rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'operator': {'enum': ['gte', 'gt', 'lte', 'lt', 'eq', 'in', 'is_true', None], 'type': ['string', 'null']}, 'threshold': {'type': 'object', 'required': ['value', 'unit'], 'properties': {'unit': {'type': 'string'}, 'value': {'anyOf': [{'type': ['number', 'string', 'boolean', 'null']}, {'type': 'array', 'items': {'type': 'string'}}]}}, 'additionalProperties': False}, 'explanation': {'type': 'string', 'maxLength': 300}, 'input_value': {'type': ['number', 'string', 'boolean', 'null']}, 'rule_status': {'enum': ['current', 'unverified'], 'type': 'string'}, 'rule_version': {'type': 'integer'}}, 'additionalProperties': False}}, 'data_freshness': {'type': 'object', 'required': ['rules_db_version', 'generated_at', 'oldest_verified_at', 'newest_verified_at', 'stale_rule_ids', 'policy'], 'properties': {'policy': {'type': 'string', 'description': "Human-readable freshness policy, e.g. 'Sources are re-checked daily; rules not re-verified within 7 days are listed as stale.'"}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'stale_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'description': 'Rules in this response whose verified_at is older than the staleness window stated in `policy`.'}, 'rules_db_version': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}\\.[0-9]+$', 'description': 'Monotonic version of the published rules set. Pattern YYYY-MM-DD.n'}, 'newest_verified_at': {'type': ['string', 'null'], 'format': 'date'}, 'oldest_verified_at': {'type': ['string', 'null'], 'format': 'date'}}, 'additionalProperties': False}, 'already_enrolled': {'type': 'boolean'}, 'ongoing_requirements': {'type': ['object', 'null'], 'required': ['note', 'requirements'], 'properties': {'note': {'const': 'Ongoing requirements apply only to creators already enrolled in the Monetization Program. Snap says the 100-hour Spotlight view-time requirement is needed to qualify for maximum Creator Rewards; Snap does not say that rewards stop below it.'}, 'requirements': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'rule_id', 'rule_version', 'claim', 'rule_status', 'outcome', 'threshold', 'input_value'], 'properties': {'claim': {'type': 'string'}, 'label': {'const': 'CALCULATION'}, 'metric': {'anyOf': [{'enum': ['followers', 'view_time_hours_28d', 'spotlight_view_time_hours_28d', 'meets_age_requirement', 'country', 'is_snap_star', 'posts_per_month', 'active_posting_days_28d'], 'type': 'string', 'description': 'Closed vocabulary of creator metrics the engines understand.'}, {'type': 'null'}]}, 'outcome': {'enum': ['pass', 'fail', 'unknown', 'requires_user_confirmation', 'user_confirmed', 'user_denied'], 'type': 'string'}, 'rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'operator': {'enum': ['gte', 'gt', 'lte', 'lt', 'eq', 'in', 'is_true', None], 'type': ['string', 'null']}, 'threshold': {'type': 'object', 'required': ['value', 'unit'], 'properties': {'unit': {'type': 'string'}, 'value': {'anyOf': [{'type': ['number', 'string', 'boolean', 'null']}, {'type': 'array', 'items': {'type': 'string'}}]}}, 'additionalProperties': False}, 'explanation': {'type': 'string', 'maxLength': 300}, 'input_value': {'type': ['number', 'string', 'boolean', 'null']}, 'rule_status': {'enum': ['current', 'unverified'], 'type': 'string'}, 'rule_version': {'type': 'integer'}}, 'additionalProperties': False}}}, 'description': 'null unless already_enrolled=true.', 'additionalProperties': False}}, '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}
출력 스키마
{'$id': 'https://howtomakemoneyonsnapchat.com/schemas/v1/get_monetization_requirements.output.schema.json', 'type': 'object', 'allOf': [{'type': 'object', 'required': ['tool', 'api_version', 'notice', 'generated_at', 'sources', 'data_freshness'], 'properties': {'tool': {'type': 'string'}, 'notice': {'type': 'string', '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.'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'publisher', 'verified_at', 'supports_rule_ids'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'title': {'type': ['string', 'null']}, 'publisher': {'type': 'string'}, 'verified_at': {'type': 'string', 'format': 'date'}, 'supports_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}}}, 'additionalProperties': False}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, '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.'}, 'api_version': {'const': 'v1'}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'data_freshness': {'type': 'object', 'required': ['rules_db_version', 'generated_at', 'oldest_verified_at', 'newest_verified_at', 'stale_rule_ids', 'policy'], 'properties': {'policy': {'type': 'string', 'description': "Human-readable freshness policy, e.g. 'Sources are re-checked daily; rules not re-verified within 7 days are listed as stale.'"}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'stale_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'description': 'Rules in this response whose verified_at is older than the staleness window stated in `policy`.'}, 'rules_db_version': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}\\.[0-9]+$', 'description': 'Monotonic version of the published rules set. Pattern YYYY-MM-DD.n'}, 'newest_verified_at': {'type': ['string', 'null'], 'format': 'date'}, 'oldest_verified_at': {'type': ['string', 'null'], 'format': 'date'}}, 'additionalProperties': False}}, 'description': 'Fields present in every successful tool output.'}], 'title': 'get_monetization_requirements output', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['tool', 'api_version', 'notice', 'generated_at', 'sources', 'data_freshness', 'programs', 'facts'], 'properties': {'tool': {'const': 'get_monetization_requirements'}, 'facts': {'type': 'array', 'items': {'type': 'object', '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'], 'properties': {'unit': {'type': 'string'}, 'claim': {'type': 'string'}, 'label': {'const': 'FACT'}, 'notes': {'type': 'string'}, 'value': {'anyOf': [{'type': ['number', 'string', 'boolean', 'null']}, {'type': 'array', 'items': {'type': 'string'}}]}, 'metric': {'type': ['string', 'null']}, 'status': {'enum': ['current', 'historical', 'unverified'], 'type': 'string'}, '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.'}, 'rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'version': {'type': 'integer', 'minimum': 1}, 'operator': {'enum': ['gte', 'gt', 'lte', 'lt', 'eq', 'in', 'is_true', None], 'type': ['string', 'null']}, 'date_note': {'type': ['string', 'null'], 'description': 'How changed_after and changed_before were established. Null when there is no window note. Not a substitute for source_url.'}, 'mvp_scope': {'enum': ['in_scope', 'out_of_scope'], 'type': 'string'}, 'publisher': {'type': 'string'}, 'rule_type': {'enum': ['eligibility_threshold', 'eligibility_condition', 'ongoing_condition', 'payout_term', 'tax_term', 'content_policy', 'program_fact', 'program_status', 'supplementary_note', None], 'type': ['string', 'null'], 'description': 'Role of the rule, copied from the rules database. Omitted by older clients. Used to group answer pages.'}, 'applies_to': {'enum': ['entry', 'enrolled_creators', 'all', 'not_applicable'], 'type': 'string'}, 'source_url': {'type': 'string', 'format': 'uri'}, 'supersedes': {'type': ['string', 'null']}, 'verified_at': {'type': 'string', 'format': 'date'}, 'window_days': {'type': ['integer', 'null']}, 'changed_after': {'type': ['string', 'null'], 'format': 'date', 'description': 'Inclusive start of an observed change window when the source does not state a single effective_date. Null when unknown. Additive.'}, 'iso_countries': {'type': 'array', 'items': {'type': 'object', 'required': ['snap_name', 'alpha2', 'alpha3', 'numeric'], 'properties': {'alpha2': {'type': 'string'}, 'alpha3': {'type': 'string'}, 'numeric': {'type': 'string'}, 'snap_name': {'type': 'string'}}, 'additionalProperties': False}, '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.'}, 'changed_before': {'type': ['string', 'null'], 'format': 'date', 'description': 'Inclusive end of an observed change window when the source does not state a single effective_date. Null when unknown. Additive.'}, 'effective_date': {'type': ['string', 'null'], 'format': 'date'}, 'related_rule_ids': {'type': 'array', 'items': {'type': 'string'}}, 'requirement_phase': {'enum': ['entry', 'ongoing', 'entry_and_ongoing', 'not_applicable'], 'type': 'string'}, '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.'}, 'requires_user_confirmation': {'type': 'boolean'}}, 'description': 'FACT: a rule record as stored in the versioned rules database (approved records only).', 'additionalProperties': False}}, 'query': {'type': 'object', 'description': 'Echo of the effective filters.', 'additionalProperties': True}, 'notice': {'type': 'string', '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.'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'publisher', 'verified_at', 'supports_rule_ids'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'title': {'type': ['string', 'null']}, 'publisher': {'type': 'string'}, 'verified_at': {'type': 'string', 'format': 'date'}, 'supports_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}}}, 'additionalProperties': False}}, 'programs': {'type': 'array', 'items': {'type': 'object', 'required': ['program', 'program_status', 'rule_ids'], 'properties': {'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.'}, 'rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}}, 'program_status': {'enum': ['active', 'historical', 'unknown'], 'type': 'string'}}, 'additionalProperties': False}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, '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.'}, 'api_version': {'const': 'v1'}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'catalog_scope': {'type': 'object', 'required': ['mvp_in_force', 'in_force_including_out_of_scope', 'mvp_including_historical', 'approved_total', 'out_of_scope_programs', 'summary'], 'properties': {'summary': {'type': 'string'}, 'mvp_in_force': {'type': 'integer', 'minimum': 0}, 'approved_total': {'type': 'integer', 'minimum': 0}, 'out_of_scope_programs': {'type': 'array', 'items': {'type': 'string'}}, 'mvp_including_historical': {'type': 'integer', 'minimum': 0}, 'in_force_including_out_of_scope': {'type': 'integer', 'minimum': 0}}, '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.', 'additionalProperties': False}, 'direct_answer': {'type': 'string', 'description': 'Answer-first lead built from entry-requirement facts included in this response. Omitted when those facts are absent.'}, 'data_freshness': {'type': 'object', 'required': ['rules_db_version', 'generated_at', 'oldest_verified_at', 'newest_verified_at', 'stale_rule_ids', 'policy'], 'properties': {'policy': {'type': 'string', 'description': "Human-readable freshness policy, e.g. 'Sources are re-checked daily; rules not re-verified within 7 days are listed as stale.'"}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'stale_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'description': 'Rules in this response whose verified_at is older than the staleness window stated in `policy`.'}, 'rules_db_version': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}\\.[0-9]+$', 'description': 'Monotonic version of the published rules set. Pattern YYYY-MM-DD.n'}, 'newest_verified_at': {'type': ['string', 'null'], 'format': 'date'}, 'oldest_verified_at': {'type': ['string', 'null'], 'format': 'date'}}, 'additionalProperties': False}, 'direct_answer_note': {'type': 'string', 'description': 'Optional sentence after the lead for unverified entry facts left out of it. Omitted when there are none.'}, 'country_eligibility': {'type': ['array', 'null'], 'items': {'type': 'object', 'required': ['program', 'country', 'listed', 'rule_id'], 'properties': {'listed': {'type': ['boolean', 'null']}, 'country': {'type': 'string'}, '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.'}, 'rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}}, 'additionalProperties': False}}}, 'additionalProperties': False}
입력 스키마
{'$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 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}
출력 스키마
{'$id': 'https://howtomakemoneyonsnapchat.com/schemas/v1/get_rule_changes.output.schema.json', 'type': 'object', 'allOf': [{'type': 'object', 'required': ['tool', 'api_version', 'notice', 'generated_at', 'sources', 'data_freshness'], 'properties': {'tool': {'type': 'string'}, 'notice': {'type': 'string', '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.'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'publisher', 'verified_at', 'supports_rule_ids'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'title': {'type': ['string', 'null']}, 'publisher': {'type': 'string'}, 'verified_at': {'type': 'string', 'format': 'date'}, 'supports_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}}}, 'additionalProperties': False}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, '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.'}, 'api_version': {'const': 'v1'}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'data_freshness': {'type': 'object', 'required': ['rules_db_version', 'generated_at', 'oldest_verified_at', 'newest_verified_at', 'stale_rule_ids', 'policy'], 'properties': {'policy': {'type': 'string', 'description': "Human-readable freshness policy, e.g. 'Sources are re-checked daily; rules not re-verified within 7 days are listed as stale.'"}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'stale_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'description': 'Rules in this response whose verified_at is older than the staleness window stated in `policy`.'}, 'rules_db_version': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}\\.[0-9]+$', 'description': 'Monotonic version of the published rules set. Pattern YYYY-MM-DD.n'}, 'newest_verified_at': {'type': ['string', 'null'], 'format': 'date'}, 'oldest_verified_at': {'type': ['string', 'null'], 'format': 'date'}}, 'additionalProperties': False}}, 'description': 'Fields present in every successful tool output.'}], 'title': 'get_rule_changes output', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['tool', 'api_version', 'notice', 'generated_at', 'sources', 'data_freshness', 'since', 'until', 'query', 'changes', 'next_cursor'], 'properties': {'tool': {'const': 'get_rule_changes'}, 'query': {'type': 'object', 'required': ['since', 'until', 'program', 'limit', 'include_baseline', 'cursor'], 'properties': {'limit': {'type': 'integer'}, 'since': {'type': 'string', 'format': 'date'}, 'until': {'type': 'string', 'format': 'date'}, 'cursor': {'type': ['string', 'null']}, 'program': {'type': ['string', 'null']}, 'include_baseline': {'type': 'boolean'}}, 'description': 'Filters applied to this response, including defaults. Top-level since and until stay for older clients.', 'additionalProperties': False}, 'since': {'type': 'string', 'format': 'date'}, 'until': {'type': 'string', 'format': 'date'}, 'notice': {'type': 'string', '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.'}, 'changes': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'rule_id', 'program', 'change_type', 'previous', 'current', 'source_url', 'detected_at', 'effective_date'], 'properties': {'label': {'const': 'FACT'}, 'notes': {'type': 'string'}, 'current': {'type': ['object', 'null'], 'required': ['version', 'value', 'unit', 'status', 'verified_at'], 'properties': {'unit': {'type': 'string'}, 'claim': {'type': 'string'}, 'value': {'anyOf': [{'type': ['number', 'string', 'boolean', 'null']}, {'type': 'array', 'items': {'type': 'string'}}]}, 'status': {'enum': ['current', 'historical', 'unverified'], 'type': 'string'}, 'version': {'type': 'integer'}, 'verified_at': {'type': 'string', 'format': 'date'}}, 'additionalProperties': False}, '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.'}, 'rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'previous': {'type': ['object', 'null'], 'required': ['version', 'value', 'unit', 'status', 'verified_at'], 'properties': {'unit': {'type': 'string'}, 'claim': {'type': 'string'}, 'value': {'anyOf': [{'type': ['number', 'string', 'boolean', 'null']}, {'type': 'array', 'items': {'type': 'string'}}]}, 'status': {'enum': ['current', 'historical', 'unverified'], 'type': 'string'}, 'version': {'type': 'integer'}, 'verified_at': {'type': 'string', 'format': 'date'}}, 'additionalProperties': False}, 'date_note': {'type': ['string', 'null'], 'description': 'How changed_after and changed_before were established. Null when there is no window note. Not a substitute for source_url.'}, 'source_url': {'type': 'string', 'format': 'uri'}, 'change_type': {'enum': ['added', 'value_changed', 'status_changed', 'retired', 'source_changed', 'baseline'], 'type': 'string', 'description': 'How this record differs from the approved record it supersedes, or the type on an explicit change block. Baseline records are returned only in baseline.'}, 'detected_at': {'type': 'string', 'format': 'date'}, 'date_display': {'type': 'string', 'description': "Rendered public date line: Snap's date, an archive window with evidence URLs, or unknown, plus the day first recorded by us."}, 'changed_after': {'type': ['string', 'null'], 'format': 'date', 'description': 'Inclusive start of an observed change window when the source does not state a single effective_date. Null when unknown. Additive.'}, 'evidence_urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'description': 'Wayback captures or Snap URLs that support the date. Empty when there are none.'}, 'changed_before': {'type': ['string', 'null'], 'format': 'date', 'description': 'Inclusive end of an observed change window when the source does not state a single effective_date. Null when unknown. Additive.'}, 'effective_date': {'type': ['string', 'null'], 'format': 'date'}, 'date_confidence': {'enum': ['stated_by_snap', 'bounded_by_archives', 'unknown', None], 'type': ['string', 'null'], 'description': 'stated_by_snap, bounded_by_archives, or unknown. Null on records that predate the field.'}, 'effective_month': {'type': ['string', 'null'], 'pattern': '^[0-9]{4}-[0-9]{2}$', 'description': 'Month-only announcement when Snap did not publish a day, YYYY-MM. Null when the change has a day or no month.'}, '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.'}, 'snap_announced_date': {'type': ['string', 'null'], 'format': 'date', 'description': 'Day Snap announced the rule. Null when Snap did not state an announcement day.'}, 'snap_effective_date': {'type': ['string', 'null'], 'format': 'date', 'description': 'Day Snap stated the rule took effect. Null when Snap did not state one.'}, 'first_recorded_by_us': {'type': ['string', 'null'], 'format': 'date', 'description': "Day this project first recorded the change. Null when the record has no such date. Not Snap's date."}}, 'additionalProperties': False}}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'publisher', 'verified_at', 'supports_rule_ids'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'title': {'type': ['string', 'null']}, 'publisher': {'type': 'string'}, 'verified_at': {'type': 'string', 'format': 'date'}, 'supports_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}}}, 'additionalProperties': False}}, 'baseline': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'rule_id', 'program', 'change_type', 'previous', 'current', 'source_url', 'detected_at', 'effective_date'], 'properties': {'label': {'const': 'FACT'}, 'notes': {'type': 'string'}, 'current': {'type': ['object', 'null'], 'required': ['version', 'value', 'unit', 'status', 'verified_at'], 'properties': {'unit': {'type': 'string'}, 'claim': {'type': 'string'}, 'value': {'anyOf': [{'type': ['number', 'string', 'boolean', 'null']}, {'type': 'array', 'items': {'type': 'string'}}]}, 'status': {'enum': ['current', 'historical', 'unverified'], 'type': 'string'}, 'version': {'type': 'integer'}, 'verified_at': {'type': 'string', 'format': 'date'}}, 'additionalProperties': False}, '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.'}, 'rule_id': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'previous': {'type': ['object', 'null'], 'required': ['version', 'value', 'unit', 'status', 'verified_at'], 'properties': {'unit': {'type': 'string'}, 'claim': {'type': 'string'}, 'value': {'anyOf': [{'type': ['number', 'string', 'boolean', 'null']}, {'type': 'array', 'items': {'type': 'string'}}]}, 'status': {'enum': ['current', 'historical', 'unverified'], 'type': 'string'}, 'version': {'type': 'integer'}, 'verified_at': {'type': 'string', 'format': 'date'}}, 'additionalProperties': False}, 'date_note': {'type': ['string', 'null']}, 'source_url': {'type': 'string', 'format': 'uri'}, 'change_type': {'const': 'baseline'}, 'detected_at': {'type': 'string', 'format': 'date'}, 'date_display': {'type': 'string', 'description': "Rendered public date line: Snap's date, an archive window with evidence URLs, or unknown, plus the day first recorded by us."}, 'changed_after': {'type': ['string', 'null'], 'format': 'date'}, 'evidence_urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'description': 'Wayback captures or Snap URLs that support the date. Empty when there are none.'}, 'changed_before': {'type': ['string', 'null'], 'format': 'date'}, 'effective_date': {'type': ['string', 'null'], 'format': 'date'}, 'date_confidence': {'enum': ['stated_by_snap', 'bounded_by_archives', 'unknown', None], 'type': ['string', 'null'], 'description': 'stated_by_snap, bounded_by_archives, or unknown. Null on records that predate the field.'}, 'effective_month': {'type': ['string', 'null'], 'pattern': '^[0-9]{4}-[0-9]{2}$'}, '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.'}, 'snap_announced_date': {'type': ['string', 'null'], 'format': 'date', 'description': 'Day Snap announced the rule. Null when Snap did not state an announcement day.'}, 'snap_effective_date': {'type': ['string', 'null'], 'format': 'date', 'description': 'Day Snap stated the rule took effect. Null when Snap did not state one.'}, 'first_recorded_by_us': {'type': ['string', 'null'], 'format': 'date', 'description': "Day this project first recorded the change. Null when the record has no such date. Not Snap's date."}}, 'additionalProperties': False}, 'description': 'Initial-load records. Present only when include_baseline is true. Never included in changes or in change counts.'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, '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.'}, 'api_version': {'const': 'v1'}, 'next_cursor': {'type': ['string', 'null']}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'catalog_scope': {'type': 'object', 'required': ['mvp_in_force', 'in_force_including_out_of_scope', 'mvp_including_historical', 'approved_total', 'out_of_scope_programs', 'summary'], 'properties': {'summary': {'type': 'string'}, 'mvp_in_force': {'type': 'integer', 'minimum': 0}, 'approved_total': {'type': 'integer', 'minimum': 0}, 'out_of_scope_programs': {'type': 'array', 'items': {'type': 'string'}}, 'mvp_including_historical': {'type': 'integer', 'minimum': 0}, 'in_force_including_out_of_scope': {'type': 'integer', 'minimum': 0}}, '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.', 'additionalProperties': False}, 'data_freshness': {'type': 'object', 'required': ['rules_db_version', 'generated_at', 'oldest_verified_at', 'newest_verified_at', 'stale_rule_ids', 'policy'], 'properties': {'policy': {'type': 'string', 'description': "Human-readable freshness policy, e.g. 'Sources are re-checked daily; rules not re-verified within 7 days are listed as stale.'"}, 'generated_at': {'type': 'string', 'format': 'date-time'}, 'stale_rule_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9_]+(\\.[a-z0-9_]+)+$', 'maxLength': 120}, 'description': 'Rules in this response whose verified_at is older than the staleness window stated in `policy`.'}, 'rules_db_version': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}\\.[0-9]+$', 'description': 'Monotonic version of the published rules set. Pattern YYYY-MM-DD.n'}, 'newest_verified_at': {'type': ['string', 'null'], 'format': 'date'}, 'oldest_verified_at': {'type': ['string', 'null'], 'format': 'date'}}, 'additionalProperties': False}}, 'additionalProperties': False}
최근 도구 변경
유사한 MCP 서버
captapi
Retrieves social media profiles, posts, engagement metrics, comments, marketplace listings, events, and Meta advertising data acr…
SendIt
Plans, generates, approves, schedules, publishes, and analyzes social media content across LinkedIn, Instagram, Threads, TikTok, …
aidelly
Supports agency social media operations including content creation, approvals, scheduling, publishing, repurposing, analytics, ec…
LinkedIn MCP Server (Salesbot)
Supports LinkedIn lead discovery, contact enrichment, CRM pipelines, campaign sequencing, message approval and human-reviewed out…
excalibur-mcp
Creates, schedules, manages, and measures formatted posts for X, with OAuth, snippets, writing voice, and post performance tracki…
uplika
Publishes and manages posts, replies, messages, media, and automations across connected social platforms.
Prowlo — Reddit & X for AI agents
Indexes and searches Reddit and X-related social data, discovers communities, monitors keywords, finds engagement opportunities, …
ChiefLab
Runs approval-gated product launch workflows with channel-specific marketing drafts, social publishing, email actions, measuremen…