GET /api/v1/platforms returns a list of supported platforms. Each entry carries two new fields — enforcement_mode and rule_support — that tell you honestly what Phosra can do on that platform.
enforcement_mode
Never render “Enforced” for a manual_attested platform. Disney+, Hulu, Peacock, Snapchat, gaming consoles, and other stub platforms all carry manual_attested. For these, Phosra generates setup steps and records a signed OCSS receipt once the parent attests — but no programmatic API write occurs. The receipt is authentic; the action is human-completed.
rule_support
Every platform response includes rule_support: a map from each of the 123 closed OCSS v4 rule categories to one of four honest values:
Example — Disney+ (manual_attested)
No rule on Disney+ returns "dns" or "device". Only "guided" (where native parental controls exist) or "unsupported".
Example — NextDNS (dns)
Only the five web-filtering categories return "dns"; all others are "unsupported" because a DNS filter cannot enforce content ratings, screen time, or purchase rules.
UI contract
Render platform enforcement status based on enforcement_mode:
Render per-rule status within a platform based on rule_support[category]:
For manual_attested platforms, Phosra:
- Translates the policy rules into human-readable setup steps
- Guides the parent through applying them inside the platform’s native parental controls
- Records a signed OCSS enforcement receipt once the parent confirms they applied the steps
The manual_steps[] array in EnforcementResult is populated for these platforms. A non-empty manual_steps means the enforcement was guided — the parent is the actor, not the API. The OCSS receipt is authentic and satisfies many regulatory attestation requirements; it is not the same as a programmatic apply.
GET /api/v1/platforms — full list with enforcement_mode + rule_support
GET /api/v1/platforms/{platformId} — single platform
GET /api/v1/platforms/by-category?category={dns|streaming|gaming|device|browser} — filter by type
GET /api/v1/platforms/by-capability?capability={web_filtering|content_rating|...} — filter by capability