<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">

  
  <title>API — MU Digital</title>

  
  <meta name="description" content="Public JSON API for {{ site.title }} — articles, quotes, events, glossary, and more.">

  
  <meta property="og:type" content="website">
  <meta property="og:title" content="API">
  <meta property="og:description" content="Public JSON API for {{ site.title }} — articles, quotes, events, glossary, and more.">
  <meta property="og:site_name" content="MU Digital">
  
  

  
  <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:title" content="API">
  <meta name="twitter:description" content="Public JSON API for {{ site.title }} — articles, quotes, events, glossary, and more.">
  

  
  <link rel="canonical" href="https://mustudent.pages.dev/api/">

  
  <link rel="alternate" type="application/rss+xml" title="MU Digital" href="https://mustudent.pages.dev/feed.xml">
  

  
  <link rel="icon" type="image/svg+xml" href="/assets/favicon.svg">
  <link rel="manifest" href="/manifest.json">
  <meta name="theme-color" content="#1a1a1a">

  
  <link rel="dns-prefetch" href="https://fonts.bunny.net">
  <link rel="preconnect" href="https://fonts.bunny.net" crossorigin>

  
  <link rel="stylesheet" href="https://fonts.bunny.net/css?family=dm-sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&amp;family=lora:ital,wght@0,400;0,600;0,700;1,400;1,600&amp;family=playfair-display:ital,wght@0,700;0,900;1,700&amp;family=source-serif-4:ital,wght@0,300;0,400;0,600;1,300;1,400&amp;display=swap" crossorigin>

  
  <link rel="stylesheet" href="/assets/css/main.css?v=1790287527559">

  
  <script src="/assets/js/theme.js?v=1790287527559"></script>

  
  
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [
      { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://mustudent.pages.dev/" },
      { "@type": "ListItem", "position": 2, "name": "API", "item": "https://mustudent.pages.dev/api/" }
    ]
  }
  </script>
  

  
  <script>window.__PREFIX='mudigital';</script>

  
  <script>
    (function(){const k='mudigital-theme',r=document.documentElement;function g(){try{return localStorage.getItem(k)}catch{return null}}function a(t){r.setAttribute('data-theme',t)}a(g()||(window.matchMedia('(prefers-color-scheme: dark)').matches?'dark':'light'))})();
  </script>

  
  

  
</head>

<body>
  <a href="#main-content" class="skip-link">Skip to main content</a>
  <div class="site-wrapper">

    
    

    
    <header class="bg-white border-b border-gray-200 shadow-sm sticky top-0 z-50" dir="rtl">
  <!-- الشريط العلوي للتاريخ والتعريف -->
  <div class="bg-gray-900 text-gray-300 text-xs py-2 px-4">
    <div class="max-w-7xl mx-auto flex justify-between items-center">
      <span>صحيفة رقمية طلابية مستقلة</span>
      <span id="current-date">جامعة المنوفية</span>
    </div>
  </div>

  <!-- الشعار الرئيسي -->
  <div class="max-w-7xl mx-auto px-4 py-6 flex flex-col md:flex-row justify-between items-center gap-4">
    <div class="text-center md:text-right">
      <a href="/" class="text-3xl md:text-5xl font-black text-gray-900 tracking-tight hover:opacity-90 transition">
        MU Digital
      </a>
      <p class="text-xs text-gray-500 font-medium mt-1">صوت الطالب.. برؤية صحفية واعية</p>
    </div>

    <!-- أزرار المشاركة والتقديم -->
    <div class="flex items-center gap-3">
      <a href="/submit/" class="bg-blue-900 hover:bg-blue-800 text-white text-xs font-bold px-4 py-2 rounded-md transition shadow-sm">
        تقديم مقترح
      </a>
      <a href="/contribute/" class="border border-gray-300 text-gray-700 hover:bg-gray-50 text-xs font-bold px-4 py-2 rounded-md transition">
        شارك معنا
      </a>
    </div>
  </div>

  <!-- شريط التنقل بين الأقسام -->
  <nav class="border-t border-gray-100 bg-gray-50">
    <div class="max-w-7xl mx-auto px-4 overflow-x-auto">
      <ul class="flex items-center gap-6 text-sm font-bold text-gray-700 py-3 whitespace-nowrap">
        <li><a href="/" class="hover:text-blue-900 transition">الرئيسية</a></li>
        <li><a href="/news/" class="hover:text-blue-900 transition">أخبار</a></li>
        <li><a href="/opinion/" class="hover:text-blue-900 transition">رأي</a></li>
        <li><a href="/analysis/" class="hover:text-blue-900 transition">تحليلات</a></li>
        <li><a href="/culture/" class="hover:text-blue-900 transition">ثقافة وفنون</a></li>
        <li><a href="/community/" class="hover:text-blue-900 transition">مجتمع</a></li>
      </ul>
    </div>
  </nav>
</header>


    
    <main id="main-content" class="site-main">
      
<div class="container" style="padding-top: var(--space-10); padding-bottom: var(--space-20);">
  <div class="container--prose">

    <header style="margin-bottom: var(--space-8); padding-bottom: var(--space-6); border-bottom: 3px solid var(--color-ink);">
      <h1 style="font-family: var(--font-masthead); font-size: clamp(1.8rem, 5vw, 3.815rem); margin-bottom: var(--space-4);">Public API</h1>
      <p style="font-size: var(--text-lg); color: var(--color-ink-muted); font-style: italic; max-width: 55ch;">
        Every piece of content on this site is also available as JSON. Use it for integrations, mirrors, research, or to build something new.
      </p>
    </header>

    <div class="article-body">

      <h2>Endpoints</h2>

      <p>All endpoints are static JSON files regenerated on every build. No authentication required. CORS is enabled for client-side use.</p>

      <table style="width:100%;font-size:var(--text-sm);border-collapse:collapse;margin:var(--space-6) 0;">
        <thead>
          <tr style="border-bottom:2px solid var(--color-ink);text-align:left;">
            <th style="padding:var(--space-2);">Endpoint</th>
            <th style="padding:var(--space-2);">Returns</th>
          </tr>
        </thead>
        <tbody>
          <tr style="border-bottom:1px solid var(--color-rule);"><td style="padding:var(--space-2);"><a href="/api/articles.json"><code>/api/articles.json</code></a></td><td style="padding:var(--space-2);">All published articles with metadata</td></tr>
          <tr style="border-bottom:1px solid var(--color-rule);"><td style="padding:var(--space-2);"><a href="/api/sections.json"><code>/api/sections.json</code></a></td><td style="padding:var(--space-2);">Editorial sections with descriptions and article counts</td></tr>
          <tr style="border-bottom:1px solid var(--color-rule);"><td style="padding:var(--space-2);"><a href="/api/authors.json"><code>/api/authors.json</code></a></td><td style="padding:var(--space-2);">All authors with their bylines and article counts</td></tr>
          <tr style="border-bottom:1px solid var(--color-rule);"><td style="padding:var(--space-2);"><a href="/api/quotes.json"><code>/api/quotes.json</code></a></td><td style="padding:var(--space-2);">All quotes with author, source, era, and tags</td></tr>
          <tr style="border-bottom:1px solid var(--color-rule);"><td style="padding:var(--space-2);"><a href="/api/timeline.json"><code>/api/timeline.json</code></a></td><td style="padding:var(--space-2);">Historical timeline entries</td></tr>
          <tr style="border-bottom:1px solid var(--color-rule);"><td style="padding:var(--space-2);"><a href="/api/glossary.json"><code>/api/glossary.json</code></a></td><td style="padding:var(--space-2);">All glossary terms with definitions</td></tr>
          <tr style="border-bottom:1px solid var(--color-rule);"><td style="padding:var(--space-2);"><a href="/api/bookshelf.json"><code>/api/bookshelf.json</code></a></td><td style="padding:var(--space-2);">Recommended reading entries</td></tr>
          <tr style="border-bottom:1px solid var(--color-rule);"><td style="padding:var(--space-2);"><a href="/api/events.json"><code>/api/events.json</code></a></td><td style="padding:var(--space-2);">Upcoming and past events</td></tr>
          <tr style="border-bottom:1px solid var(--color-rule);"><td style="padding:var(--space-2);"><a href="/api/videos.json"><code>/api/videos.json</code></a></td><td style="padding:var(--space-2);">Video library entries</td></tr>
          <tr style="border-bottom:1px solid var(--color-rule);"><td style="padding:var(--space-2);"><a href="/api/songs.json"><code>/api/songs.json</code></a></td><td style="padding:var(--space-2);">Freethought Music song collection</td></tr>
          <tr style="border-bottom:1px solid var(--color-rule);"><td style="padding:var(--space-2);"><a href="/api/trials.json"><code>/api/trials.json</code></a></td><td style="padding:var(--space-2);">Trials of Thought entries</td></tr>
          <tr style="border-bottom:1px solid var(--color-rule);"><td style="padding:var(--space-2);"><a href="/api/thought-experiments.json"><code>/api/thought-experiments.json</code></a></td><td style="padding:var(--space-2);">Thought experiments</td></tr>
          <tr><td style="padding:var(--space-2);"><a href="/api/manifest.json"><code>/api/manifest.json</code></a></td><td style="padding:var(--space-2);">Index of all endpoints with metadata</td></tr>
        </tbody>
      </table>

      <h2>Example: Fetching recent articles</h2>

      <pre style="background:var(--color-bg-alt);padding:var(--space-4);border:1px solid var(--color-rule);overflow-x:auto;font-size:var(--text-sm);"><code>fetch('https://mustudent.pages.dev/api/articles.json')
  .then(r =&gt; r.json())
  .then(data =&gt; {
    console.log(`${data.count} articles`);
    data.articles.slice(0, 5).forEach(a =&gt; {
      console.log(`${a.title} — ${a.section}`);
    });
  });</code></pre>

      <h2>Data format</h2>

      <p>Each endpoint returns a JSON object with:</p>
      <ul>
        <li><code>generated</code> — ISO 8601 timestamp of the build</li>
        <li><code>count</code> — total items in the response</li>
        <li><code>[collection_name]</code> — array of items (e.g. <code>articles</code>, <code>quotes</code>, <code>events</code>)</li>
      </ul>

      <h2>Usage terms</h2>

      <p>The API is free to use for any purpose, commercial or non-commercial, with the following conditions:</p>
      <ul>
        <li>Content remains the property of its authors (editorial articles) or the public domain (library texts)</li>
        <li>Attribution is appreciated but not required</li>
        <li>Please be considerate with request volume — these are static files on a CDN, but high-frequency polling should use the RSS feed instead</li>
        <li>Let us know what you build — we'd love to see it</li>
      </ul>

      <h2>Feeds and sitemaps</h2>

      <ul>
        <li><a href="/feed.xml"><code>/feed.xml</code></a> — RSS feed of recent articles</li>
        <li><a href="/sitemap.xml"><code>/sitemap.xml</code></a> — XML sitemap of all pages</li>
        <li><a href="/news-sitemap.xml"><code>/news-sitemap.xml</code></a> — Google News sitemap</li>
      </ul>

    </div>
  </div>
</div>

    </main>

    
    <footer class="bg-gray-900 text-gray-300 py-12 mt-16 border-t border-gray-800" dir="rtl">
  <div class="container mx-auto px-4">
    
    <div class="grid grid-cols-1 md:grid-cols-4 gap-8 mb-8">
      
      <!-- تعريف بالصحيفة -->
      <div class="md:col-span-2">
        <h2 class="text-xl font-bold text-white mb-3">MU Digital</h2>
        <p class="text-sm text-gray-400 leading-relaxed max-w-md">
          صحيفة إلكترونية طلابية مستقلة تُعنى بنشر الأخبار، التحليلات الفكرية، والمقالات الصحفية المُحكّمة.
        </p>
      </div>

      <!-- روابط سريعة -->
      <div>
        <h3 class="text-sm font-semibold text-white tracking-wider uppercase mb-3">أقسام الصحيفة</h3>
        <ul class="space-y-2 text-sm">
          <li><a href="/" class="hover:text-white transition">الرئيسية</a></li>
          <li><a href="/news/" class="hover:text-white transition">أخبار</a></li>
          <li><a href="/opinion/" class="hover:text-white transition">رأي</a></li>
          <li><a href="/analysis/" class="hover:text-white transition">تحليلات</a></li>
          <li><a href="/culture/" class="hover:text-white transition">ثقافة وفنون</a></li>
        </ul>
      </div>

      <!-- روابط المشاركة والتواصل -->
      <div>
        <h3 class="text-sm font-semibold text-white tracking-wider uppercase mb-3">المشاركة والنشر</h3>
        <ul class="space-y-2 text-sm">
          <li><a href="/contribute/" class="hover:text-white transition">شارك معنا</a></li>
          <li><a href="/submit/" class="hover:text-white transition">تقديم مقترح صحفي</a></li>
        </ul>
      </div>

    </div>

    <!-- حقوق النشر -->
    <div class="pt-8 border-t border-gray-800 text-xs text-gray-500 text-center md:text-right flex flex-col md:flex-row justify-between items-center gap-4">
      <p>© جميع الحقوق محفوظة لصحيفة MU Digital.</p>
      <p>تُدار المحتويات والسياسات التحريرية بواسطة هيئة التحرير الطلابي.</p>
    </div>

  </div>
</footer>

  </div>

  
  <script src="/assets/js/drawer.js?v=1790287527559" defer></script>
  <script src="/assets/js/smart-header.js?v=1790287527559" defer></script>
  <script src="/assets/js/search.js?v=1790287527559" defer></script>
  <script src="/assets/js/subscribe.js?v=1790287527559" defer></script>
  <script src="/assets/js/global-settings.js?v=1790287527559" defer></script>
  <script src="/assets/js/spa-nav.js?v=1790287527559" defer></script>
  <script src="https://www.youtube.com/iframe_api" defer></script>
  <script src="/assets/js/music-player.js?v=1790287527559" defer></script>
  

  
  <script>
  window.__glossaryTerms=[];
  </script>
  <script src="/assets/js/popper.min.js?v=1790287527559" defer></script>
  <script src="/assets/js/tippy.min.js?v=1790287527559" defer></script>
  <script src="/assets/js/glossary-tips.js?v=1790287527559" defer></script>

  
  

  
  <script src="/assets/js/reader-panel-migrate.js?v=1790287527559" defer></script>

  
  <script src="/assets/js/footnotes.js?v=1790287527559" defer></script>
  <script src="/assets/js/cite-inline.js?v=1790287527559" defer></script>

  
  <script src="/assets/js/keyboard-shortcuts.js?v=1790287527559" defer></script>

  
  <script src="/assets/js/reading-progress.js?v=1790287527559" defer></script>

  
  
  <script src="https://web3forms.com/client/script.js" async defer></script>
  <script>
  document.addEventListener('DOMContentLoaded',function(){
    document.querySelectorAll('.w3f').forEach(function(f){
      f.addEventListener('submit',function(){
        var btn=f.querySelector('.w3f__submit');
        if(btn){btn.disabled=true;btn.textContent='Submitting\u2026';}
      });
    });
  });
  </script>
  

  
  <script>
  (function(){
    var eb=document.getElementById('data-export-btn');
    var ib=document.getElementById('data-import-btn');
    if(eb)eb.addEventListener('click',function(){
      var d={};for(var i=0;i<localStorage.length;i++){var k=localStorage.key(i);if(k)d[k]=localStorage.getItem(k);}
      var b=new Blob([JSON.stringify(d,null,2)],{type:'application/json'});
      var u=URL.createObjectURL(b);var a=document.createElement('a');
      a.href=u;a.download='tft-backup.json';a.click();URL.revokeObjectURL(u);
    });
    if(ib)ib.addEventListener('click',function(){
      var i=document.createElement('input');i.type='file';i.accept='.json';
      i.onchange=function(){var r=new FileReader();r.onload=function(){
        try{var d=JSON.parse(r.result);Object.keys(d).forEach(function(k){localStorage.setItem(k,d[k]);});
        alert('Imported '+Object.keys(d).length+' items.');}catch(e){alert('Invalid file.');}
      };r.readAsText(i.files[0]);};i.click();
    });
  })();
  </script>

  
  <script src="/assets/js/instant.page.js?v=1790287527559" type="module" defer></script>

  
  <script>
    if ('serviceWorker' in navigator) {
      window.addEventListener('load', function () {
        navigator.serviceWorker.register('/sw.js');
      });
    }
  </script>

  
  

  
  
</body>
</html>
