Übersicht

Die KI-Kartierung stellt eine REST-API zur Verfügung, über die Sie programmatisch auf alle veröffentlichten Steckbriefe zugreifen können. Die API ist öffentlich zugänglich und erfordert keine Authentifizierung.

Base URL

https://mapping.cms.hu-berlin.de/api

Rate Limiting

Um eine faire Nutzung zu gewährleisten, ist die API auf 100 Requests pro Minute limitiert.


Endpoints

1. Kategorien auflisten

Liste aller verfügbaren Kategorien.

GET /api/categories

Response

{
  "categories": [
    {
      "id": 1,
      "internal_name": "forschung",
      "display_name": "Forschungsprojekt",
      "steckbrief_count": 87
    },
    {
      "id": 2,
      "internal_name": "services",
      "display_name": "KI-Service",
      "steckbrief_count": 23
    }
  ]
}

2. Steckbriefe auflisten

Liste aller veröffentlichten Steckbriefe mit optionalen Filtern.

GET /api/steckbriefe?category={category}&limit={limit}&offset={offset}

Query Parameter

  • category (optional) - Filter nach Kategorie (z.B. "forschung")
  • limit (optional, default: 20) - Anzahl der Ergebnisse pro Seite (max. 100)
  • offset (optional, default: 0) - Offset für Pagination

Response

{
  "steckbriefe": [
    {
      "id": "7f3a4b2c-9d1e-8f6g...",
      "title": "AI-SKILLS Projekt",
      "category": "forschung",
      "category_display": "Forschungsprojekt",
      "url": "https://mapping.cms.hu-berlin.de/details/7f3a4b2c...",
      "published_at": "2024-01-20T10:00:00Z"
    }
  ],
  "pagination": {
    "total": 127,
    "limit": 20,
    "offset": 0,
    "has_more": true
  }
}

3. Einzelnen Steckbrief abrufen

Detaillierte Informationen zu einem spezifischen Steckbrief.

GET /api/steckbriefe/{id}

Response

{
  "id": "7f3a4b2c-9d1e-8f6g...",
  "title": "AI-SKILLS Projekt",
  "category": "forschung",
  "category_display": "Forschungsprojekt",
  "markdown_content": "# AI-SKILLS\n\n**Institution:**...",
  "html_content": "<h1>AI-SKILLS</h1>...",
  "source_url": "https://ai-skills.tu-berlin.de",
  "published_at": "2024-01-20T10:00:00Z",
  "generated_at": "2024-01-19T15:30:00Z"
}

4. Steckbrief nach Source-ID

Steckbrief anhand der ursprünglichen Source-ID abrufen.

GET /api/steckbriefe/by-source/{source_id}

Response

Identisch mit Endpoint 3.


5. Such-Index

Vollständiger Such-Index für Client-side Search.

GET /api/search-index

Response

[
  {
    "id": "7f3a4b2c-9d1e-8f6g...",
    "title": "AI-SKILLS Projekt",
    "description": "Entwicklung von KI-Kompetenzen...",
    "institution": "Technische Universität Berlin",
    "category": "forschung",
    "category_display": "Forschungsprojekt",
    "url": "/details/7f3a4b2c-9d1e-8f6g....html"
  }
]

6. Statistiken

Allgemeine Statistiken über die Plattform.

GET /api/statistics

Response

{
  "total_steckbriefe": 127,
  "by_category": {
    "forschung": 87,
    "services": 23,
    "lehre": 17
  },
  "last_updated": "2024-01-20T14:30:00Z"
}

Beispiele

cURL

curl "https://mapping.cms.hu-berlin.de/api/steckbriefe?category=forschung&limit=10"

Python

import requests

response = requests.get(
    "https://mapping.cms.hu-berlin.de/api/steckbriefe",
    params={"category": "forschung", "limit": 10}
)
data = response.json()

for steckbrief in data["steckbriefe"]:
    print(steckbrief["title"])

JavaScript

async function fetchSteckbriefe() {
    const response = await fetch(
        "https://mapping.cms.hu-berlin.de/api/steckbriefe?category=forschung&limit=10"
    );
    const data = await response.json();

    data.steckbriefe.forEach(s => {
        console.log(s.title);
    });
}

fetchSteckbriefe();

Fehlerbehandlung

Die API verwendet Standard-HTTP-Statuscodes:

  • 200 OK - Erfolgreiche Anfrage
  • 400 Bad Request - Ungültige Parameter
  • 404 Not Found - Ressource nicht gefunden
  • 429 Too Many Requests - Rate Limit überschritten
  • 500 Internal Server Error - Server-Fehler

Fehler-Response Format

{
  "error": {
    "code": "NOT_FOUND",
    "message": "Steckbrief nicht gefunden",
    "details": {}
  }
}

Support

Bei Fragen oder Problemen mit der API können Sie uns kontaktieren:
E-Mail: api@ki-kartierung.de

Die API-Dokumentation wird regelmäßig aktualisiert. Änderungen werden rechtzeitig angekündigt.