## Bug description

Since users can now be part of multiple projects, the `get_team_from_token` function used in capture and decide endpoints cannot work reliably with personal API keys. These endpoints should be e.g. nested under `/api/projects/:project_id` _or_ should accept `project_id` in request body.

#### *Thank you* for your bug report – we love squashing them!

posthog/api/capture.py
),
        )
    team = Team.objects.get_team_from_token(token, is_personal_api_key)
    if team is None:
        return cors_response(
            request,
            JsonResponse(
                {
                    "code": "validation",
                    "message": "Project or personal API key invalid. You can find your project API key in PostHog project settings.",
                },
                status=400,
            ),
        )
    if isinstance(data, dict):
        if data.get("batch"):  
            data = data["batch"]
            assert data is not None
        elif "engage" in request.path_info:  
            data["event"] = "$identify"  
    if isinstance(data, list):
        events = data
    else:
        events = [data]
    for event in events:
        try:
            distinct_id = _get_distinct_id(event)
        except KeyError:
            return cors_response(
                request,