{"authentication":{"method":"Token","header":"Authorization: Token <researcher_token>","description":"All endpoints except this one require a researcher API token."},"endpoints":{"POST /api/donations/":{"description":"Create a new donation.","parameters":[{"name":"source_type","type":"ChoiceField","required":true,"help_text":"Data source: 'google_portability' or 'tiktok_portability'."},{"name":"data_start_date","type":"DateField","required":false,"help_text":"Only include data from this date onward (YYYY-MM-DD). Optional."},{"name":"data_end_date","type":"DateField","required":false,"help_text":"Only include data up to this date (YYYY-MM-DD). Optional."},{"name":"requested_data_types","type":"ListField","required":false,"help_text":"Data types to collect, e.g. ['youtube_history', 'search']. Empty means all available. Google options: youtube_history, discover, google_lens, google_play_games, google_play_store, image_search, search, video_search."}]},"GET /api/donations/":{"description":"List all donations for the authenticated researcher.","response":"Array of donation objects."},"GET /api/donations/{id}/":{"description":"Get donation details.","response_fields":[{"name":"id","type":"IntegerField","required":false,"help_text":""},{"name":"token","type":"SerializerMethodField","required":false,"help_text":""},{"name":"source_type","type":"CharField","required":false,"help_text":""},{"name":"status","type":"ChoiceField","required":false,"help_text":""},{"name":"created_at","type":"DateTimeField","required":false,"help_text":""},{"name":"data_start_date","type":"DateField","required":false,"help_text":""},{"name":"data_end_date","type":"DateField","required":false,"help_text":""},{"name":"requested_data_types","type":"JSONField","required":false,"help_text":""},{"name":"donation_url","type":"SerializerMethodField","required":false,"help_text":""}]},"DELETE /api/donations/{id}/":{"description":"Revoke and delete a donation."},"GET /api/donations/{id}/data/":{"description":"Query processed donation data. Without data_type parameter, returns available data types.","parameters":[{"name":"data_type","type":"CharField","required":false,"help_text":""},{"name":"start_date","type":"DateField","required":false,"help_text":""},{"name":"end_date","type":"DateField","required":false,"help_text":""},{"name":"limit","type":"IntegerField","required":false,"help_text":""},{"name":"offset","type":"IntegerField","required":false,"help_text":""}]}}}