Skip to main content
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]:

Why manual_attested platforms still matter

For manual_attested platforms, Phosra:
  1. Translates the policy rules into human-readable setup steps
  2. Guides the parent through applying them inside the platform’s native parental controls
  3. 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