## 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/test/test_capture.py
response = self.client.get(
            "/engage/?data=%s"
            % quote(
                self._dict_to_json(
                    {
                        "$set": {"$os": "Mac OS X",},
                        "$token": "token123",
                        "$distinct_id": 3,
                        "$device_id": "16fd4afae9b2d8-0fce8fe900d42b-39637c0e-7e9000-16fd4afae9c395",
                        "$user_id": 3,
                    }
                )
            ),
            content_type="application/json",
            HTTP_ORIGIN="https://localhost",
        )
        arguments = self._to_arguments(patch_process_event_with_plugins)
        self.assertEqual(arguments["data"]["event"], "$identify")
        arguments.pop("now")  # c
        arguments.pop("sent_at")  # c
        arguments.pop("data")  # c
        self.assertDictEqual(
            arguments,
            {"distinct_id": "3", "ip": "127.0.0.1", "site_url": "http://testserver", "team_id": self.team.pk,},
        )
    @patch("posthog.models.team.TEAM_CACHE", {})
    @patch("posthog.api.capture.celery_app.send_task")
    def test_python_library(self, patch_process_event_with_plugins):