🇲🇦 Morocco
· Botola Pro
· Round 28
💰 Betting Odds
Home
1.8
Draw
3.1
Away
4.33
🔥 Home Form
- first_to_score5/7
- less_than_45_cards5/7
🔥 Away Form
- without_clean_sheet5
- less_than_25_goals7/9
- both_teams_scoring4/5
- first_to_concede5/5
- less_than_45_cards6/7
🥇 Head-to-Head
- no_losses6
- less_than_25_goals5/5
- both_teams_scoring5/7
- more_than_45_cards8/10
⚽ Home Goal Distribution
{'scored': {'total': 32, 'penalty': 2, 'shots': 258, 'corners_won': 104, 'yellow_cards': 61, 'red_cards': 2, 'fouls': 333, 'offsides': 53, 'avg_possession': 38.9, 'pass_accuracy': 73.07, 'matches_played': 32}, 'conceded': {'total': 38, 'clean_sheets': 8, 'shots': 314}}
⚽ Away Goal Distribution
{'scored': {'total': 37, 'penalty': 6, 'shots': 300, 'corners_won': 141, 'yellow_cards': 73, 'red_cards': 9, 'fouls': 388, 'offsides': 51, 'avg_possession': 47, 'pass_accuracy': 77.72, 'matches_played': 30}, 'conceded': {'total': 33, 'clean_sheets': 11, 'shots': 257}}
⚽ Scorers
[{'name': 'Charki El Bahri', 'minute': 82, 'team': 'away', 'type': 'goal'}, {'name': 'Hamza Kalai', 'minute': 78, 'team': 'home', 'type': 'penalty'}, {'name': 'Mohamed Amine Katiba', 'minute': 55, 'team': 'home', 'type': 'goal'}, {'name': 'Abdoulaye Diarra', 'minute': 42, 'team': 'away', 'type': 'goal'}, {'name': 'Yassine Rami', 'minute': 20, 'team': 'away', 'type': 'ownGoal'}]
💰 Betting Markets
{'full_time': {'choices': {'1': {'odds': 1.8, 'won': False}, 'X': {'odds': 3.1, 'won': False}, '2': {'odds': 4.33, 'won': True}}}, 'double_chance': {'choices': {'1X': {'odds': 1.18, 'won': False}, 'X2': {'odds': 1.83, 'won': True}, '12': {'odds': 1.33, 'won': True}}}, 'first_half': {'choices': {'1': {'odds': 2.5, 'won': False}, 'X': {'odds': 2.0, 'won': False}, '2': {'odds': 5.5, 'won': True}}}, 'draw_no_bet': {'choices': {'1': {'odds': 1.3, 'won': False}, '2': {'odds': 3.4, 'won': True}}}, 'both_teams_to_score': {'choices': {'yes': {'odds': 2.2, 'won': True}, 'no': {'odds': 1.62, 'won': False}}}, 'corners_2_way': {'line': 2.0, 'over': {'odds': 1.8, 'won': True}, 'under': {'odds': 1.91, 'won': False}}, 'first_team_to_score': {'choices': {"hassania d'agadir": {'odds': 1.57, 'won': None}, 'no_goal': {'odds': 6.5, 'won': False}, 'away': {'odds': 3.1, 'won': True}}}}
📄 Raw Data
{'match_id': '122275', 'match_info': {'country': 'Morocco', 'league': 'Botola Pro', 'round': 'Round 28', 'date': '2025-05-05', 'time': '19:00', 'status': 'Finished', 'home_team': 'Hassania Dagadir', 'away_team': 'Olympic Safi', 'final_score': '2 - 3', 'half_time_score': '0 - 2', 'scorers': [{'name': 'Charki El Bahri', 'minute': 82, 'team': 'away', 'type': 'goal'}, {'name': 'Hamza Kalai', 'minute': 78, 'team': 'home', 'type': 'penalty'}, {'name': 'Mohamed Amine Katiba', 'minute': 55, 'team': 'home', 'type': 'goal'}, {'name': 'Abdoulaye Diarra', 'minute': 42, 'team': 'away', 'type': 'goal'}, {'name': 'Yassine Rami', 'minute': 20, 'team': 'away', 'type': 'ownGoal'}]}, 'betting_markets': {'full_time': {'choices': {'1': {'odds': 1.8, 'won': False}, 'X': {'odds': 3.1, 'won': False}, '2': {'odds': 4.33, 'won': True}}}, 'double_chance': {'choices': {'1X': {'odds': 1.18, 'won': False}, 'X2': {'odds': 1.83, 'won': True}, '12': {'odds': 1.33, 'won': True}}}, 'first_half': {'choices': {'1': {'odds': 2.5, 'won': False}, 'X': {'odds': 2.0, 'won': False}, '2': {'odds': 5.5, 'won': True}}}, 'draw_no_bet': {'choices': {'1': {'odds': 1.3, 'won': False}, '2': {'odds': 3.4, 'won': True}}}, 'both_teams_to_score': {'choices': {'yes': {'odds': 2.2, 'won': True}, 'no': {'odds': 1.62, 'won': False}}}, 'corners_2_way': {'line': 2.0, 'over': {'odds': 1.8, 'won': True}, 'under': {'odds': 1.91, 'won': False}}, 'first_team_to_score': {'choices': {"hassania d'agadir": {'odds': 1.57, 'won': None}, 'no_goal': {'odds': 6.5, 'won': False}, 'away': {'odds': 3.1, 'won': True}}}}, 'streaks': {'home_team': {'first_to_score': '5/7', 'less_than_45_cards': '5/7'}, 'away_team': {'without_clean_sheet': '5', 'less_than_25_goals': '7/9', 'both_teams_scoring': '4/5', 'first_to_concede': '5/5', 'less_than_45_cards': '6/7'}, 'h2h': {'no_losses': '6', 'less_than_25_goals': '5/5', 'both_teams_scoring': '5/7', 'more_than_45_cards': '8/10'}}, 'goal_distribution': {'home_team': {'scored': {'total': 32, 'penalty': 2, 'shots': 258, 'corners_won': 104, 'yellow_cards': 61, 'red_cards': 2, 'fouls': 333, 'offsides': 53, 'avg_possession': 38.9, 'pass_accuracy': 73.07, 'matches_played': 32}, 'conceded': {'total': 38, 'clean_sheets': 8, 'shots': 314}}, 'away_team': {'scored': {'total': 37, 'penalty': 6, 'shots': 300, 'corners_won': 141, 'yellow_cards': 73, 'red_cards': 9, 'fouls': 388, 'offsides': 51, 'avg_possession': 47, 'pass_accuracy': 77.72, 'matches_played': 30}, 'conceded': {'total': 33, 'clean_sheets': 11, 'shots': 257}}}, 'h2h_history': [{'date': '2026-05-04', 'score': '2-1', 'home': 'Hassania Dagadir', 'away': 'Olympic Safi', 'competition': 'Botola Pro'}, {'date': '2025-10-01', 'score': '1-0', 'home': 'Olympic Safi', 'away': 'Hassania Dagadir', 'competition': 'Botola Pro'}, {'date': '2025-05-04', 'score': '2-3', 'home': 'Hassania Dagadir', 'away': 'Olympic Safi', 'competition': 'Botola Pro'}, {'date': '2024-12-07', 'score': '0-0', 'home': 'Olympic Safi', 'away': 'Hassania Dagadir', 'competition': 'Botola Pro'}, {'date': '2024-02-07', 'score': '1-1', 'home': 'Hassania Dagadir', 'away': 'Olympic Safi', 'competition': 'Botola Pro'}]}