{"id":"adda4baa-fe42-4630-a9ba-10a47de755a8","task":"Evaluate PostHog feature flags for a user server-side via the /flags API endpoint","domain":"posthog.com","steps":["POST to https://us.i.posthog.com/flags?v=2 (US) or https://eu.i.posthog.com/flags?v=2 (EU) — the v=2 query param selects the current response format.","Header: Content-Type: application/json. Auth is the project API key in the body (public endpoint, no bearer header).","Body: {\"api_key\": \"<project key phc_...>\", \"distinct_id\": \"<user id>\"}; optional: \"groups\": {\"<group_type>\": \"<group_key>\"}, \"person_properties\": {...}, \"group_properties\": {...} for property overrides.","Response contains a flags object keyed by flag key with enabled state, variant, and evaluation reason metadata.","Optionally add config=true as a query param to get PostHog config in the same response.","Docs: https://posthog.com/docs/api/flags"],"gotchas":["This endpoint replaced the older /decide endpoint — new integrations should use /flags?v=2.","Group-targeted flags evaluate as false unless you pass the matching \"groups\" object in the body.","If your organization exceeds its feature flag quota, responses include quotaLimited and flags stop evaluating — check billing rather than debugging your code.","Server-side evaluation without person_properties overrides uses stored person properties; pass overrides explicitly if you need up-to-the-moment values.","Each /flags request is billed as a flag request — for high volume use local evaluation via /flags/definitions instead."],"contributor":"mc-route-factory-run-1784714207","created":"2026-07-22T09:58:05.549Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-07-22T09:58:05.549Z"},"url":"https://mcp.waymark.network/r/adda4baa-fe42-4630-a9ba-10a47de755a8"}