MUL.AI - Academic AI at TUL

Academic AI

Academic AI is a project involving more than 20 Austrian universities, technically and organizationally led by ACOmarket. It provides access to AI chat models on an isolated Microsoft Azure instance — meaning inputs and uploaded documents never leave the “Azure Secure Landing Zone.”

How to Access

Go to mul.academic-ai.at, select “Montanuniversität Leoben,” and log in with your MUOnline credentials.

Before first use, an EU AI Act training course on Moodle is available. For staff this is mandatory; for students it is recommended but not required.
Token Limit

Usage is capped at €20 per person per month, resetting at the start of each month with no rollover. A token is the smallest unit of data processed by the AI — uploading and analyzing a document consumes more tokens than a typed text input.

Available Models
  • GPT-4o
  • GPT-5
  • GPT-5 mini
  • GPT-5 nano
  • Mistral Large 3
  • o3
  • Google Gemini (coming soon)
  • Claude (coming soon)
Privacy

Data is not shared with OpenAI or third parties. Your data is automatically deleted 90 days after your last login. Chat history can also be deleted manually at any time.

Tailored AI

Users can create custom chatbots connected to their own documents. Collaborators can be invited with User, Contributor, or Admin roles.

Max. documents150 files per chatbot
Supported formatsPDF, DOCX, PPTX, TXT, XLSX
Max. file size50 MB per file
Total upload size500 MB
Max. pages10,000 pages
Excel cellsup to 3,000 × 3,000 per file
API Access

The platform exposes an API for developers who want to integrate Academic AI into their own applications. It supports LLM chat completions, Tailored AI management, and Knowledge Base management for Retrieval-Augmented Generation (RAG). Authentication uses X-Client-ID and X-Client-Secret headers.

API access tokens can be requested by e-mail at academic-AI@unileoben.ac.at.

Example – Chat request (Python)

import requests

headers = {
    "X-Client-ID": "your-api-key",
    "X-Client-Secret": "your-api-secret",
    "Content-Type": "application/json",
}
payload = {
    "model": "gpt-4o",
    "messages": [{"role": "user", "content": "Your question here"}],
    "temperature": 0.7,
    "maxTokens": 1000,
}
response = requests.post(
    "https://api.example.com/api/v1/llm/chat",
    headers=headers,
    json=payload
)
print(response.json()["data"]["content"])

Example – Chat request (JavaScript)

const res = await fetch("https://api.example.com/api/v1/llm/chat", {
  method: "POST",
  headers: {
    "X-Client-ID": "your-api-key",
    "X-Client-Secret": "your-api-secret",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "gpt-4o",
    messages: [{ role: "user", content: "Your question here" }],
    temperature: 0.7,
    maxTokens: 1000,
  }),
});
const data = await res.json();
console.log(data.data.content);

Full API documentation is available upon request.