Skip to main content

OCSS 123-Rule Reference

Phosra implements OCSS; the Open Child Safety Specification is defined and stewarded independently at openchildsafety.com. This page is a generated snapshot of the OCSS rule registry (ocss-v4-draft-4), formatted for the Phosra API reference. The canonical source — the registry JSON, the specification text, and the conformance suite — lives at openchildsafety.com, not here. Every rule category listed below is an OCSS rule, not a Phosra invention. The slug vocabulary, capability assignments, and stability tiers are owned by the OCSS specification (§6.1, §6.2, §6.14).
Snapshot of OCSS spec_version=ocss-v4-draft-4; authoritative copy at openchildsafety.com. This page is regenerated from the registry JSON; the committed file is the source of truth for the Phosra API reference only.
All 123 OCSS rule categories are accepted and signed by the census today (one identical write path). What varies is per-rule capability — see the capability matrix. A 201 is a signed write receipt; it does not mean the rule is enforced downstream. The typed iOS/Android SDK enums currently expose 45 — full-123 SDK support is tracked separately.
Role orientation — OCSS rules are not Phosra inventions. As a Phosra developer you are building against an open standard. The rule slugs in the API are OCSS identifiers — the same identifiers any other conformant OCSS provider uses. When a client sends rule_category: "addictive_pattern_block", it is invoking an OCSS rule defined at openchildsafety.com, not a Phosra feature flag.
Conformance posture. OCSS is a pre-release standard (currently an individual IETF Internet-Draft, not yet ratified by any standards body). Phosra is building toward OCSS Certified — a status earned from the standard’s own conformance suite (§5.1 boundary sentence). Conformance evidence is something a regulator can weigh; it is not a compliance determination or a safe harbor.
Snapshot of OCSS spec_version=ocss-v4-draft-4; authoritative copy at openchildsafety.com. Rules in this tab are defined in §6.6 of the OCSS specification.
Rule source: OCSS spec_version=ocss-v4-draft-4 (§6.6) — canonical registry at openchildsafety.com.Anchored Requires sites serving content harmful to minors to verify 18+ via an accredited method — verify, decide, discard; no ID retention.In API schemaAdult-Site Age VerificationIssuer: emit an age-verification challenge when a site serving content harmful to minors is accessed (floor: document_verified). Enforcer: MUST verify the user is 18+ via an accredited method, decide, and discard the identity evidence with no retention before granting access; platform enforcement requires the age-assurance lane active and a signed instrument record.A valid rule_category value in the Phosra API’s RuleCategory schema (POST /api/v1/policies/{policyID}/rules). See Conformance Status for endpoint availability and Rule Reference for the full parameter documentation.Apply this rule
config is an opaque, category-specific object; per-category field schemas are not yet specified — see the OCSS rule definition for the normative Issuer/Enforcer requirements.Age assurance floor (§7.3): document_verified — minimum identity-binding method class required for attestations on this rule.
Rule source: OCSS spec_version=ocss-v4-draft-4 (§6.6) — canonical registry at openchildsafety.com.Anchored One parental-declared signal that fans out to a safe-by-default bundle across content, addictive-pattern, interaction, and social surfaces.In API schemaOCSS Child ModeIssuer (parental-controls vendor): when the parent enables Child Mode, write age_appropriate_profile_mode plus the downstream bundleA valid rule_category value in the Phosra API’s RuleCategory schema (POST /api/v1/policies/{policyID}/rules). See Conformance Status for endpoint availability and Rule Reference for the full parameter documentation.Apply this rule
config is an opaque, category-specific object; per-category field schemas are not yet specified — see the OCSS rule definition for the normative Issuer/Enforcer requirements.Age assurance floor (§7.3): parental_declared — minimum identity-binding method class required for attestations on this rule.
Rule source: OCSS spec_version=ocss-v4-draft-4 (§6.6) — canonical registry at openchildsafety.com.Anchored Enforces age verification requirements and restricts access to age-inappropriate content or features.In API schemaAge GateIssuer: emit a signed age-band attestation once parental declaration or identity verification is complete (floor: parental_declared). Enforcer: MUST deny access to age-restricted surfaces unless a valid attestation at or above the policy’s required age band is presented on every access.A valid rule_category value in the Phosra API’s RuleCategory schema (POST /api/v1/policies/{policyID}/rules). See Conformance Status for endpoint availability and Rule Reference for the full parameter documentation.Apply this rule
config is an opaque, category-specific object; per-category field schemas are not yet specified — see the OCSS rule definition for the normative Issuer/Enforcer requirements.Age assurance floor (§7.3): parental_declared — minimum identity-binding method class required for attestations on this rule.
Rule source: OCSS spec_version=ocss-v4-draft-4 (§6.6) — canonical registry at openchildsafety.com.Anchored Emits the canonical age signal to every connected enforcement surface so apps and OSes act on a single source of truth.In API schemaAge Signal BroadcastIssuer: emit the canonical signed age-band signal (floor: parental_declared) to every connected enforcement surface. Enforcer: MUST treat this broadcast as the single source of truth for the minor’s age band and MUST act on it consistently across apps and OS surfaces rather than re-deriving age locally.A valid rule_category value in the Phosra API’s RuleCategory schema (POST /api/v1/policies/{policyID}/rules). See Conformance Status for endpoint availability and Rule Reference for the full parameter documentation.Apply this rule
config is an opaque, category-specific object; per-category field schemas are not yet specified — see the OCSS rule definition for the normative Issuer/Enforcer requirements.Age assurance floor (§7.3): parental_declared — minimum identity-binding method class required for attestations on this rule.
Rule source: OCSS spec_version=ocss-v4-draft-4 (§6.6) — canonical registry at openchildsafety.com.Anchored Requires AI chatbot products to assert and verify the user’s age band before any conversational interaction.In API schemaAI Chatbot Age AssertionIssuer: emit a signed age-band assertion for the user (floor: parental_declared) before any conversational AI interaction begins. Enforcer: MUST require a valid age assertion at or above the configured band before the first chatbot turn and MUST deny conversational access until one is presented; platform enforcement requires the age-assurance lane active and a signed instrument record.A valid rule_category value in the Phosra API’s RuleCategory schema (POST /api/v1/policies/{policyID}/rules). See Conformance Status for endpoint availability and Rule Reference for the full parameter documentation.Apply this rule
config is an opaque, category-specific object; per-category field schemas are not yet specified — see the OCSS rule definition for the normative Issuer/Enforcer requirements.Age assurance floor (§7.3): parental_declared — minimum identity-binding method class required for attestations on this rule.
Rule source: OCSS spec_version=ocss-v4-draft-4 (§6.6) — canonical registry at openchildsafety.com.Anchored Consumes age attestations issued by Apple and Google app stores as authoritative age signals for downstream enforcement.In API schemaApp Store Age AttestationIssuer: relay the Apple or Google app-store age attestation (floor: parental_declared) as a signed age signal. Enforcer: MUST accept a valid store-issued attestation as authoritative for downstream age-band enforcement and MUST NOT require the minor to re-verify age for the same band.A valid rule_category value in the Phosra API’s RuleCategory schema (POST /api/v1/policies/{policyID}/rules). See Conformance Status for endpoint availability and Rule Reference for the full parameter documentation.Apply this rule
config is an opaque, category-specific object; per-category field schemas are not yet specified — see the OCSS rule definition for the normative Issuer/Enforcer requirements.Age assurance floor (§7.3): parental_declared — minimum identity-binding method class required for attestations on this rule.
Rule source: OCSS spec_version=ocss-v4-draft-4 (§6.6) — canonical registry at openchildsafety.com.Anchored Consumes the OS-level age signal (Apple, Google, Samsung, Microsoft) at the moment of enforcement.In API schemaOS Age Signal IngestIssuer: relay the OS-level age signal (Apple, Google, Samsung, Microsoft; floor: parental_declared) at the moment of enforcement. Enforcer: MUST consume the OS age signal as an authoritative age-band input and act on it without requiring separate re-verification.A valid rule_category value in the Phosra API’s RuleCategory schema (POST /api/v1/policies/{policyID}/rules). See Conformance Status for endpoint availability and Rule Reference for the full parameter documentation.Apply this rule
config is an opaque, category-specific object; per-category field schemas are not yet specified — see the OCSS rule definition for the normative Issuer/Enforcer requirements.Age assurance floor (§7.3): parental_declared — minimum identity-binding method class required for attestations on this rule.
Rule source: OCSS spec_version=ocss-v4-draft-4 (§6.6) — canonical registry at openchildsafety.com.Anchored Enforces minimum age requirements for social media platform access based on jurisdiction.In API schemaSocial Media Min AgeIssuer: emit a parental age declaration or a verified-age attestation before account access on a covered social platform (floor: parental_declared). Enforcer: MUST block account creation or login on covered platforms until a valid age attestation meeting the jurisdiction’s minimum (typically 13–16) is received.A valid rule_category value in the Phosra API’s RuleCategory schema (POST /api/v1/policies/{policyID}/rules). See Conformance Status for endpoint availability and Rule Reference for the full parameter documentation.Apply this rule
config is an opaque, category-specific object; per-category field schemas are not yet specified — see the OCSS rule definition for the normative Issuer/Enforcer requirements.Age assurance floor (§7.3): parental_declared — minimum identity-binding method class required for attestations on this rule.
Rule source: OCSS spec_version=ocss-v4-draft-4 (§6.6) — canonical registry at openchildsafety.com.Anchored Enforces a statutory minimum age of 16 for account access on covered platforms.In API schemaTeen Minimum Age 16 GateIssuer: emit a signed age attestation for account access on a covered platform (floor: parental_declared). Enforcer: MUST block account access until a valid attestation confirms the user meets the statutory minimum age of 16.A valid rule_category value in the Phosra API’s RuleCategory schema (POST /api/v1/policies/{policyID}/rules). See Conformance Status for endpoint availability and Rule Reference for the full parameter documentation.Apply this rule
config is an opaque, category-specific object; per-category field schemas are not yet specified — see the OCSS rule definition for the normative Issuer/Enforcer requirements.Age assurance floor (§7.3): parental_declared — minimum identity-binding method class required for attestations on this rule.
Rule source: OCSS spec_version=ocss-v4-draft-4 (§6.6) — canonical registry at openchildsafety.com.Provisional Escalates to government-ID verification when softer age signals fail to confirm a user is above the configured threshold.In API schemaHard ID Verification EscalationIssuer: emit an escalation signal when softer age signals fail to confirm the user is above the configured threshold. Enforcer: MUST require an accredited government-ID verification (floor: document_verified) before granting access and MUST discard the ID after the decision; this escalation path is spec-defined, not yet legislatively mandated.A valid rule_category value in the Phosra API’s RuleCategory schema (POST /api/v1/policies/{policyID}/rules). See Conformance Status for endpoint availability and Rule Reference for the full parameter documentation.Apply this rule
config is an opaque, category-specific object; per-category field schemas are not yet specified — see the OCSS rule definition for the normative Issuer/Enforcer requirements.Age assurance floor (§7.3): document_verified — minimum identity-binding method class required for attestations on this rule.
Rule source: OCSS spec_version=ocss-v4-draft-4 (§6.6) — canonical registry at openchildsafety.com.Provisional Gates content by an upstream civil-society age recommendation per title.In API schemaCivil-Society Age Recommendation GateIssuer: emit an upstream civil-society age recommendation for the title (floor: parental_declared). Enforcer: MUST deny rendering on the minor’s session when the recommended age exceeds the minor’s age band; this gate is spec-defined and not yet legislatively mandated, and depends on the rating lane being active.A valid rule_category value in the Phosra API’s RuleCategory schema (POST /api/v1/policies/{policyID}/rules). See Conformance Status for endpoint availability and Rule Reference for the full parameter documentation.Apply this rule
config is an opaque, category-specific object; per-category field schemas are not yet specified — see the OCSS rule definition for the normative Issuer/Enforcer requirements.Age assurance floor (§7.3): parental_declared — minimum identity-binding method class required for attestations on this rule.

Capability matrix

Write-sign is live for all 123 (identical census transaction). The other columns are independent capability axes — a rule can be Gated AND typed. Downstream enforcement is the partner’s boundary for all 123 uniformly; the census proves a signed write, not enforcement.
OCSS rule vocabulary is royalty-free per §5.5 of the specification (“Royalty-free with an unpublished audit bill is a fee schedule by another name” is the governing sentence). The canonical registry and spec text are at openchildsafety.com. If the standard and this mirror ever conflict, the standard (at openchildsafety.com) wins. Phosra’s steward-of-record designation, accreditation status, and dated succession binding are published at /.well-known/ocss/succession — a signed, verifiable role binding, not a static page. For the full list of callable rule categories with their API parameter documentation, see Rule Reference.