OpenDataMoroccanLaw/morocco-cassation-court-decisions
Morocco Cassation Court Decisions 29,000+ full-text decisions from the Moroccan Court of Cassation (محكمة النقض)Source: juriscassation.cspj.ma — Official portal of the Supreme Council of the Judiciary (CSPJ)License: CC BY 4.0 Why this dataset exists In 2026, accessing the jurisprudence of the Court of Cassation in Morocco requires being physically located in Morocco and armed with patience. The official website does not allow searching by date range, imposes a… See the full description on the dataset page: https://huggingface.co/datasets/OpenDataMoroccanLaw/morocco-cassation-court-decisions.
Morocco Cassation Court Decisions
29,000+ full-text decisions from the Moroccan Court of Cassation (محكمة النقض) Source: juriscassation.cspj.ma — Official portal of the Supreme Council of the Judiciary (CSPJ) License: CC BY 4.0
Why this dataset exists
In 2026, accessing the jurisprudence of the Court of Cassation in Morocco requires being physically located in Morocco and armed with patience. The official website does not allow searching by date range, imposes a CAPTCHA on every search, and provides no way to identify recent additions. It also requires at least two search criteria simultaneously. Finally, keyword search only works on the decision summary — not the full text. Moroccan and international doctoral researchers working abroad cannot conduct research on Moroccan case law. Worse, they cannot contribute to the doctrinal effort of their country — because the decisions they need are either inaccessible or so outdated as to be useless. Morocco deserves to have its legislation and jurisprudence accessible to the greatest number of people — whether they are litigants, legal practitioners, or foreign investors seeking legal certainty. For all these reasons, which reduce both citizens and researchers to begging, I decided to open access. These decisions are in the public domain under Moroccan law — Law No. 2-00 (Dahir n° 1-00-20 of 15 February 2000), Article 8(a) explicitly excludes official judicial texts from copyright protection.
This is, to our knowledge, the first open dataset of full-text Moroccan judicial decisions. Equivalent datasets exist for France (1.1M decisions via Judilibre), Egypt, and Saudi Arabia — but not Morocco.
Legal basis
Moroccan Law No. 2-00 on copyright and related rights (Dahir No. 1-00-20 of 15 February 2000), Article 8(a):
The protection provided by this law does not extend to official texts of a legislative, administrative or judicial nature, nor to their official translations.
Decisions of the Court of Cassation are official judicial texts and therefore in the public domain under Moroccan law. Published under CC BY 4.0.
Note on CSPJ summaries: Each decision file as distributed by the Supreme Council of the Judiciary (CSPJ — Conseil Supérieur du Pouvoir Judiciaire) is preceded by a staff-written summary that may constitute the intellectual property of the CSPJ. This dataset excludes those summaries: only the decision body itself — starting from the royal preamble باسم جلالة الملك ("In the name of His Majesty the King") — is included. See the has_preamble field.
Dataset structure
One record per decision. Full text in Arabic.
from datasets import load_dataset
ds = load_dataset("OpenDataMoroccanLaw/morocco-cassation-court-decisions")Fields
Chamber values
Bench field
396 decisions (~1.4%) were heard by an expanded bench:
غرفتين— Joint bench of two chambers (385 decisions)جميع الغرف— Full plenary bench (11 decisions)null— Standard single-chamber bench
This information is not available on the CSPJ website and was extracted from the decision text itself.
Corpus statistics (v1 — July 2026)
Coverage: 1965–2025. Civil chamber (Chambre 1) is partially represented — updates planned.
Text processing
Truncation
CSPJ publishes each decision with a staff-written summary prepended before the royal preamble (باسم جلالة الملك وطبقا للقانون). These summaries may be protected. Only the decision body — starting from باسم جلالة الملك — is included. Decisions where this separator was not found (has_preamble: false, ~0.3%) are published in full.
OCR cleaning
Decisions were OCR'd from PDF. Cleaning applied:
- Isolated page numbers removed (lines containing only digits)
- Journal headers removed (exact-match whitelist — never partial regex to avoid false positives)
- Unicode BIDI control characters removed (affected Criminal Chamber 2017–2025 files)
- Consecutive blank lines collapsed to one
Excluded
~254 decisions (~0.9%) were excluded due to failed OCR (Administrative Chamber 2018 batch). Re-OCR planned.
How to use
from datasets import load_dataset
# Full corpus
ds = load_dataset("OpenDataMoroccanLaw/morocco-cassation-court-decisions")
# Filter by chamber
commercial = ds.filter(lambda x: x["chamber"] == "الغرفة التجارية")
# Full plenary bench only
plenary = ds.filter(lambda x: x["bench"] == "جميع الغرف")
# With preamble only (cleaner text)
clean = ds.filter(lambda x: x["has_preamble"])Citation
@dataset{opendata_moroccan_law_2026,
title = {Morocco Cassation Court Decisions},
author = {{OpenDataMoroccanLaw}},
year = {2026},
publisher = {HuggingFace},
url = {https://huggingface.co/datasets/OpenDataMoroccanLaw/morocco-cassation-court-decisions},
license = {CC BY 4.0},
note = {Full-text decisions of the Moroccan Court of Cassation, sourced from juriscassation.cspj.ma}
}Updates
This dataset is updated periodically as new decisions become available. See commit history for changelog.
[Français] Décisions de la Cour de cassation du Maroc
29 000+ décisions en texte intégral de la Cour de cassation marocaine (محكمة النقض) Source : juriscassation.cspj.ma — Portail officiel du Conseil Supérieur du Pouvoir Judiciaire (CSPJ) Licence : CC BY 4.0
Pourquoi ce dataset existe
En 2026, accéder à la jurisprudence de la Cour de cassation au Maroc nécessite d'être géographiquement au Maroc et de s'armer de patience. Le portail officiel est inaccessible depuis l'étranger sans IP marocaine. Ses décisions ne sont pas indexées par les moteurs de recherche — un justiciable qui cherche un numéro d'arrêt ou un principe juridique sur Google ne les trouvera tout simplement pas. Lorsque la recherche est disponible sur le portail, elle ne porte que sur le champ résumé, et non sur le texte intégral de la décision, rendant toute recherche par argument juridique ou point de droit précis largement inopérante. Pour consulter un document public, le citoyen doit au préalable passer un CAPTCHA — un mécanisme conçu pour repousser les attaquants, appliqué ici à la lecture d'un patrimoine juridique commun.
Les chercheurs doctorants marocains et étrangers travaillant depuis l'étranger ne peuvent mener aucune recherche sérieuse sur la jurisprudence marocaine. Pire, ils ne peuvent contribuer à l'effort doctrinal de leur pays — parce que les décisions dont ils ont besoin sont soit inaccessibles, soit invisibles.
Le Maroc mérite que sa jurisprudence soit accessible au plus grand nombre — qu'il s'agisse de justiciables, de praticiens du droit ou d'investisseurs étrangers en quête de sécurité juridique.
Pour toutes ces raisons, j'ai décidé d'ouvrir l'accès. Ces décisions sont dans le domaine public en droit marocain — la loi n° 2-00 (Dahir n° 1-00-20 du 15 février 2000), article 8(a), exclut expressément les textes officiels de nature judiciaire de la protection par le droit d'auteur.
Il s'agit, à notre connaissance, du premier dataset en texte intégral de décisions judiciaires marocaines. Des datasets équivalents existent pour la France (1,1 M de décisions via Judilibre), l'Égypte et l'Arabie Saoudite — mais pas pour le Maroc.
Base légale
Loi n° 2-00 relative aux droits d'auteur et droits voisins (Dahir n° 1-00-20 du 15 février 2000), article 8(a) :
La protection prévue par la présente loi ne s'étend pas aux textes officiels de nature législative, administrative ou judiciaire, ni à leurs traductions officielles.
Les décisions de la Cour de cassation sont des textes judiciaires officiels et relèvent donc du domaine public en droit marocain. Publiées sous CC BY 4.0.
Note sur les résumés CSPJ : chaque fichier de décision distribué par le Conseil Supérieur du Pouvoir Judiciaire est précédé d'un résumé rédigé par ses services, susceptible de constituer sa propriété intellectuelle. Ce dataset exclut ces résumés : seul le corps de la décision — à partir du préambule royal باسم جلالة الملك (« Au nom de Sa Majesté le Roi ») — est inclus. Voir le champ has_preamble.
Structure du dataset
Un enregistrement par décision. Texte intégral en arabe.
from datasets import load_dataset
ds = load_dataset("OpenDataMoroccanLaw/morocco-cassation-court-decisions")Champs
Valeurs de chamber
Champ bench
396 décisions (~1,4 %) ont été rendues en formation élargie — information absente du portail CSPJ, extraite du corps de la décision :
غرفتين— Formation de deux chambres réunies (385 décisions)جميع الغرف— Formation plénière (11 décisions)null— Formation ordinaire
Statistiques du corpus (v1 — juillet 2026)
Couverture : 1965–2025. La chambre civile (Chambre 1) est partiellement représentée — mises à jour prévues.
Traitement du texte
Troncature
Le CSPJ publie chaque décision précédée d'un résumé rédigé avant le préambule royal. Ces résumés sont potentiellement protégés. Seul le corps de la décision — à partir de باسم جلالة الملك — est inclus. Les décisions sans ce séparateur (has_preamble: false, ~0,3 %) sont publiées intégralement.
Nettoyage OCR
Les décisions ont été extraites de PDF par OCR. Nettoyage appliqué :
- Numéros de page isolés supprimés (lignes ne contenant que des chiffres)
- En-têtes de revue supprimés (liste blanche exacte — jamais de regex partiel)
- Caractères de contrôle Unicode BIDI supprimés (Chambre pénale 2017–2025)
- Lignes vides consécutives fusionnées
- ~254 décisions (~0,9 %) exclues pour OCR défaillant (Chambre administrative 2018). Ré-OCR prévu.
Utilisation
from datasets import load_dataset
# Corpus complet
ds = load_dataset("OpenDataMoroccanLaw/morocco-cassation-court-decisions")
# Filtrer par chambre
commerciale = ds.filter(lambda x: x["chamber"] == "الغرفة التجارية")
# Formation plénière uniquement
pleniere = ds.filter(lambda x: x["bench"] == "جميع الغرف")
# Avec préambule royal uniquement (texte plus propre)
propre = ds.filter(lambda x: x["has_preamble"])Citation
@dataset{opendata_moroccan_law_2026,
title = {Morocco Cassation Court Decisions},
author = {{OpenDataMoroccanLaw}},
year = {2026},
publisher = {HuggingFace},
url = {https://huggingface.co/datasets/OpenDataMoroccanLaw/morocco-cassation-court-decisions},
license = {CC BY 4.0},
note = {Décisions en texte intégral de la Cour de cassation marocaine, source juriscassation.cspj.ma}
}