MuchSkills API und API-Zugang
Mit der MuchSkills API lesen und schreiben Sie Ihre MuchSkills-Daten aus anderen Systemen heraus. Ein Owner oder Admin legt unter API Access einen OAuth-Client an, Ihre Anwendung tauscht dessen Client ID und Client Secret gegen ein Token und ruft damit die API auf. API-Zugriff ist in allen Tarifen enthalten.
- Wer
- Ein Owner oder Admin in MuchSkills legt den Client an, Ihr Entwickler nutzt ihn
- Anbindung
- Selbst einzurichten unter Settings › API Access
- Anmeldung
- OAuth 2.0 (Client Credentials), Tokens sind etwa eine Stunde gültig
- Pakete
- API-Zugriff ist in allen Tarifen enthalten
How to
So funktioniert es
Die MuchSkills API nutzt OAuth 2.0 mit dem Client Credentials Grant. Jeder API-Client hat eigene Client ID, eigenes Client Secret und eigene Scopes. So können Sie jeder Integration einen eigenen Client geben und einen davon widerrufen, ohne die anderen zu berühren. Die Basisadresse lautet https://app.muchskills.com.
Bevor Sie beginnen
- In MuchSkills: die Rolle Owner oder Admin, um Clients anlegen zu können.
- Ein Entwickler oder ein Tool, das HTTPS-Anfragen senden kann, zum Beispiel eigener Code, eine Integrationsplattform oder Power Query.
- Der passende Scope. Read für Berichte und Exporte. Write nur, wenn die Integration Daten ändert.
- Ein sicherer Ort für das Secret. Ein Passwortmanager oder Ihr Secrets-Vault. MuchSkills zeigt das Secret nur ein einziges Mal an.
- Die API-Referenz. Sie liegt unter app.muchskills.com/api/docs und lässt sich aufrufen, sobald Sie bei MuchSkills angemeldet sind. Entwickler ohne Login können beim Support Zugang anfragen.
Schritte
In MuchSkills
- API Access öffnen. Rufen Sie Team/Org › Settings › API Access auf. Sie können auch auf der Seite Integrations auf Go to API Access klicken.
- Client anlegen. Klicken Sie auf New Client. Tragen Sie im Fenster Create API client unter Name eine Bezeichnung ein, an der Sie den Client wiedererkennen, zum Beispiel Berichts-Pipeline. Aktivieren Sie unter Scopes die Option Read und Write nur, wenn Sie es wirklich brauchen. Klicken Sie dann auf Create Client.
Team/Org › Settings › API Access › New Client.
- Zugangsdaten kopieren. Das Fenster Copy your credentials zeigt Client ID und Client Secret. Kopieren Sie beide an einen sicheren Ort, bevor Sie auf Done klicken. Das Client Secret wird nur ein einziges Mal angezeigt.
Create API client: 1 Name, 2 Read oder Write, 3 Create Client.
In Ihrer Anwendung
- Token anfordern. Senden Sie Client ID und Client Secret an den Token-Endpunkt. Der Body muss formularcodiert sein:
curl -X POST https://app.muchskills.com/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=IHRE_CLIENT_ID" \
-d "client_secret=IHR_CLIENT_SECRET"
Die Antwort enthält access_token, token_type (Bearer), expires_in in Sekunden und den gewährten scope.
- API aufrufen. Senden Sie das Token im Header
Authorization. Dieser Aufruf liefert die ersten 300 Profile:
curl -X POST "https://app.muchskills.com/api/v2/profile/search?skip=0&limit=300" \
-H "Authorization: Bearer IHR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d "{}"
Wenn Sie nur ausgewählte Personen abrufen möchten, schicken Sie {"filters": {"emails": ["anna@yourcompany.com"]}} als Body mit.
- Durch die Ergebnisse blättern. Jede Antwort enthält ein
pagination-Objekt mit dem Werttotal. Erhöhen Sieskipjeweils um Ihrlimitund wiederholen Sie den Aufruf, bis Sie alle Einträge haben.limitdarf höchstens 300 betragen.
Prüfen, ob es funktioniert hat
- Die Token-Anfrage liefert
200und einaccess_tokenzurück. - Der Suchaufruf liefert
200zurück, die Profile stehen indataund der Werttotalinpagination. - Auf der Seite API Access steht in der Spalte Last used des Clients ein Zeitpunkt statt Never.
Benefits
Ihr Nutzen
- Ihre Daten in Ihren Tools. Profile, Kompetenzen, Zertifikate, Ziele und Verfügbarkeit fließen in Berichte, Data Warehouses und andere Systeme.
- Daten ohne Abtippen einspielen. Übertragen Sie Zertifikate, Kompetenzstufen, Ziele und Abwesenheiten direkt aus den Systemen, in denen sie entstehen.
- Kontrolle je Integration. Jeder Client hat einen eigenen Scope und lässt sich einzeln widerrufen.
Important to know
Wichtig zu wissen
Verfügbare Aufrufe. Die API hat 22 Endpunkte. Alle folgenden Pfade beginnen mit https://app.muchskills.com.
| Methode und Pfad | Beschreibung |
|---|---|
| Anmelden | |
POST /oauth2/token | Tauscht Client ID und Client Secret gegen ein Access Token ein |
| Personen und Kompetenzen lesen | |
POST /api/v2/profile/search | Profile mit Kompetenzen, Zertifikaten und validierten Kompetenzen, seitenweise über skip und limit (maximal 300) |
POST /api/v1/profile/search | Die ältere Profilsuche. Verwenden Sie stattdessen die v2-Suche |
GET /api/v1/profile/{email} | Das Profil einer einzelnen Person |
GET /api/v1/analysis | Analyselisten samt Kompetenzen, Badges und Zertifikaten |
| Verfügbarkeit und Auslastung lesen | |
GET /api/v1/availability | Verfügbarkeit pro Woche oder Monat für einen Zeitraum, seitenweise mit bis zu 50 Personen pro Seite |
GET /api/v2/profile/pto | Abwesenheiten aller Personen, für die welche erfasst sind, seitenweise mit bis zu 300 Personen pro Seite |
GET /api/v1/teams/members/{email} | Die Teams einer Person, inklusive Auslastung |
| Ziele und Zertifikate lesen | |
GET /api/v1/goals | Alle Ziele in Ihrer Organisation, seitenweise und filterbar |
GET /api/v1/goals/{email} | Die Ziele einer einzelnen Person |
GET /api/v1/user-certifications | Zertifikatshistorie Ihrer Organisation, auch für ausgeschiedene Mitarbeitende |
GET /api/v2/auth/file-validation-header | Ein aktueller Header zum Öffnen privater Dateien, etwa von Zertifikatsnachweisen |
| Schreiben (Write-Scope erforderlich) | |
PATCH /api/v2/profile/{email} | Aktualisiert Profilfelder wie Titel, Abteilung, Führungskraft, Standort, Tags und Projekthistorie |
POST /api/v2/profile/skills/import | Importiert Kompetenzstufen für viele Personen, als Selbsteinschätzung oder als Validierung durch die Führungskraft |
GET /api/v2/profile/skills/import/{jobId} | Zeigt Fortschritt und Ergebnis eines Kompetenzimports |
POST /api/v1/user-certifications/{email} | Fügt ein Zertifikat hinzu oder erneuert es, mit Links oder Dateien als Nachweis |
PATCH /api/v1/user-certifications/{periodId} | Korrigiert einen Zertifikatszeitraum |
DELETE /api/v1/user-certifications/{periodId} | Entfernt einen Zertifikatszeitraum |
POST /api/v1/goals/{email} | Legt ein Ziel für eine Kompetenz oder ein Zertifikat an |
PATCH /api/v1/goals/{goalId} | Aktualisiert ein Ziel |
DELETE /api/v1/goals/{goalId} | Löscht ein Ziel. Bereits erreichte Ziele können nicht gelöscht werden |
PUT /api/v2/profile/{email}/pto | Ersetzt sämtliche Abwesenheiten einer Person |
Personen werden per E-Mail identifiziert. Verwenden Sie die Adresse, mit der sich die jeweilige Person bei MuchSkills anmeldet.
Die Suche läuft über POST. Auf einen GET antwortet POST /api/v2/profile/search mit 404. Die Paging-Werte skip und limit übergeben Sie in der URL, die Filter im JSON-Body.
Tokens gelten etwa eine Stunde. Ein Refresh Token gibt es nicht. Fordern Sie ein neues Token an, wenn das alte abläuft oder ein Aufruf mit 401 antwortet.
Schreiben erfordert den Write-Scope. Ein Client mit nur dem Read-Scope oder ein altes Organisations-Token erhält bei Schreibaufrufen 403.
Abwesenheiten werden komplett ersetzt. PUT /api/v2/profile/{email}/pto ersetzt alle Abwesenheiten der Person, eine leere Liste löscht sie. Verwaltet eine HR-Integration die Abwesenheiten Ihrer Organisation, antwortet der Aufruf mit 403: Ändern Sie Abwesenheiten dann im HR-System.
Kompetenzen werden auf einer Skala von 1 bis 9 bewertet. 1 bis 3 entspricht Beginner, 4 bis 6 Intermediate und 7 bis 9 Expert. Profile enthalten die Selbsteinschätzung der Person und, sofern eine Führungskraft sie validiert hat, die validierte Stufe.
Private Dateien erfordern einen Header. Zertifikats- und Ausbildungsdateien sind privat. Antworten enthalten ein auth-Objekt mit dem Header, den Sie beim Öffnen mitsenden. Er läuft ab; mit GET /api/v2/auth/file-validation-header erhalten Sie einen neuen.
Anfragelimits. Zu viele Anfragen in kurzer Zeit werden mit 429 Too Many Requests beantwortet. Warten Sie und versuchen Sie es mit wachsender Pause erneut, zum Beispiel nach 1, 2, dann 4 Sekunden. Die Ziel-Aufrufe erlauben eine Anfrage pro Sekunde und Token.
Legacy-Tokens werden eingestellt. Gibt es in MuchSkills für Ihre Site noch ein altes Organisations-Token, erscheint auf der Seite Integrations der Hinweis A legacy API token is still active for this site. Stellen Sie jede Integration auf einen API-Client um.
Widerrufen ist endgültig. Revoke auf der Seite API Access sperrt die Zugangsdaten eines Clients sofort und lässt sich nicht rückgängig machen.
Common errors
Fehlerbehebung
| Was Sie sehen | Ursache | Lösung |
|---|---|---|
400 mit "error": "invalid_client" vom Token-Endpunkt | Client ID oder Client Secret ist falsch, oder der Body wurde als JSON gesendet | Senden Sie den Body formularcodiert und prüfen Sie beide Werte. Ist das Secret verloren, widerrufen Sie den Client und legen einen neuen an |
401 Unauthorized | Das Token fehlt, ist falsch oder abgelaufen | Fordern Sie ein neues Token an und senden Sie es als Authorization: Bearer |
403 bei einem Schreibaufruf | Der Client hat nur den Read-Scope, oder Sie haben ein altes Organisations-Token verwendet | Legen Sie einen Client mit dem Scope Write an und nutzen Sie dessen Token |
403 bei PUT /api/v2/profile/{email}/pto mit dem Hinweis, dass Abwesenheiten von einer Integration verwaltet werden | Eine HR-Integration synchronisiert die Abwesenheiten Ihrer Organisation | Ändern Sie die Abwesenheit im HR-System |
404 von der Profilsuche | Die Anfrage wurde als GET gesendet | Senden Sie sie als POST mit JSON-Body, auch wenn dieser nur {} ist |
404 mit user not found | Die E-Mail-Adresse gehört zu keinem Mitglied Ihrer MuchSkills-Organisation | Verwenden Sie die Adresse, mit der sich die Person anmeldet |
400 mit Invalid query parameters | Ein Wert liegt außerhalb des zulässigen Bereichs, etwa ein limit über 300, oder ein Datum entspricht nicht ISO 8601 | Korrigieren Sie den Wert |
429 Too Many Requests | Zu viele Anfragen in kurzer Zeit | Warten Sie und versuchen Sie es mit wachsender Pause erneut |
| Die API-Referenz zeigt eine Anmeldeseite | Die Referenz ist nur für angemeldete MuchSkills-Nutzer zugänglich | Melden Sie sich an oder bitten Sie den Support, Ihrem Entwicklerteam Zugang zu geben |
Häufig gestellte Fragen
Welche Pläne enthalten die API?
Alle Pläne enthalten API-Zugriff.
Wer kann einen API-Client anlegen?
Ein Owner oder Admin in MuchSkills unter Team/Org › Settings › API Access. Diese Person kann Client ID und Client Secret anschließend an Ihren Entwickler oder Integrationspartner weitergeben.
Kann unser Entwickler die API-Referenz ohne MuchSkills-Konto lesen?
Die Referenz unter app.muchskills.com/api/docs ist als zusätzlicher Schutz nur für angemeldete MuchSkills-Nutzer zugänglich. Hat Ihr Entwickler kein MuchSkills-Login, wenden Sie sich an support@muchskills.com, dann richten wir einen Zugang ein.
Wie lange ist ein Token gültig?
Etwa eine Stunde. Ein Refresh-Token gibt es nicht. Wenn ein Token abläuft, fordern Sie mit derselben Client ID und demselben Client Secret einen neuen an.
Wir haben noch ein altes API-Token aus „Settings › Integrations“. Funktioniert es noch?
Die bisherigen Organisations-Tokens werden abgeschaltet und erlauben nur Lesezugriff. Legen Sie unter „API Access“ einen API-Client an und stellen Sie Ihre Integration darauf um, damit sie weiter funktioniert.
Sollen wir „Read“ oder „Write“ wählen?
Wählen Sie „Read“, es sei denn, Ihre Integration muss Daten in MuchSkills ändern. „Write“ brauchen Sie, um Profile zu aktualisieren, Kompetenzen zu importieren, Zertifikate hinzuzufügen, Ziele zu verwalten oder Abwesenheiten zu ersetzen. Für unterschiedliche Aufgaben können Sie separate Clients anlegen.
Ist die Zahl der Anfragen, die wir senden können, begrenzt?
Ja. Wenn Sie Anfragen zu schnell senden, antwortet die API mit 429 Too Many Requests. Warten Sie und versuchen Sie es mit jeweils längerer Pause erneut. Die Aufrufe für Ziele erlauben eine Anfrage pro Sekunde und Token.
Können wir Projektzuweisungen oder Kursaktivitäten über die API abrufen?
Derzeit nicht. Die API liefert die Teams jeder Person mit Auslastung, Verfügbarkeit und Abwesenheit, hat aber keinen Endpunkt für Projektzuweisungen oder Kursaktivitäten.
Was passiert, wenn ein Secret nach außen gelangt?
Klicken Sie unter „API Access“ beim betreffenden Client auf „Revoke“. Seine Zugangsdaten funktionieren sofort nicht mehr, und dieser Schritt lässt sich nicht rückgängig machen. Legen Sie danach einen neuen Client an.