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.

Aktualisiert

Verbindung in EigenregieAdmins und HRIT

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

So funktioniert es

Ihre AnwendungVerfügt über Client ID und Client Secret aus API Access
POST /oauth2/token, Token gilt etwa eine Stunde
Access TokenWird bei jedem Aufruf als Bearer Token mitgesendet
HTTPS
MuchSkills APILiest Ihre Daten und schreibt sie mit dem Write-Scope auch

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

  1. 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.
  2. 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.

  1. 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

  1. 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.

  1. 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.

  1. Durch die Ergebnisse blättern. Jede Antwort enthält ein pagination-Objekt mit dem Wert total. Erhöhen Sie skip jeweils um Ihr limit und wiederholen Sie den Aufruf, bis Sie alle Einträge haben. limit darf höchstens 300 betragen.

Prüfen, ob es funktioniert hat

  • Die Token-Anfrage liefert 200 und ein access_token zurück.
  • Der Suchaufruf liefert 200 zurück, die Profile stehen in data und der Wert total in pagination.
  • Auf der Seite API Access steht in der Spalte Last used des Clients ein Zeitpunkt statt Never.

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.

Wichtig zu wissen

Verfügbare Aufrufe. Die API hat 22 Endpunkte. Alle folgenden Pfade beginnen mit https://app.muchskills.com.

Methode und PfadBeschreibung
Anmelden
POST /oauth2/tokenTauscht Client ID und Client Secret gegen ein Access Token ein
Personen und Kompetenzen lesen
POST /api/v2/profile/searchProfile mit Kompetenzen, Zertifikaten und validierten Kompetenzen, seitenweise über skip und limit (maximal 300)
POST /api/v1/profile/searchDie ältere Profilsuche. Verwenden Sie stattdessen die v2-Suche
GET /api/v1/profile/{email}Das Profil einer einzelnen Person
GET /api/v1/analysisAnalyselisten samt Kompetenzen, Badges und Zertifikaten
Verfügbarkeit und Auslastung lesen
GET /api/v1/availabilityVerfügbarkeit pro Woche oder Monat für einen Zeitraum, seitenweise mit bis zu 50 Personen pro Seite
GET /api/v2/profile/ptoAbwesenheiten 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/goalsAlle Ziele in Ihrer Organisation, seitenweise und filterbar
GET /api/v1/goals/{email}Die Ziele einer einzelnen Person
GET /api/v1/user-certificationsZertifikatshistorie Ihrer Organisation, auch für ausgeschiedene Mitarbeitende
GET /api/v2/auth/file-validation-headerEin 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/importImportiert 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}/ptoErsetzt 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.

Fehlerbehebung

Was Sie sehenUrsacheLösung
400 mit "error": "invalid_client" vom Token-EndpunktClient ID oder Client Secret ist falsch, oder der Body wurde als JSON gesendetSenden Sie den Body formularcodiert und prüfen Sie beide Werte. Ist das Secret verloren, widerrufen Sie den Client und legen einen neuen an
401 UnauthorizedDas Token fehlt, ist falsch oder abgelaufenFordern Sie ein neues Token an und senden Sie es als Authorization: Bearer
403 bei einem SchreibaufrufDer Client hat nur den Read-Scope, oder Sie haben ein altes Organisations-Token verwendetLegen 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 werdenEine HR-Integration synchronisiert die Abwesenheiten Ihrer OrganisationÄndern Sie die Abwesenheit im HR-System
404 von der ProfilsucheDie Anfrage wurde als GET gesendetSenden Sie sie als POST mit JSON-Body, auch wenn dieser nur {} ist
404 mit user not foundDie E-Mail-Adresse gehört zu keinem Mitglied Ihrer MuchSkills-OrganisationVerwenden Sie die Adresse, mit der sich die Person anmeldet
400 mit Invalid query parametersEin Wert liegt außerhalb des zulässigen Bereichs, etwa ein limit über 300, oder ein Datum entspricht nicht ISO 8601Korrigieren Sie den Wert
429 Too Many RequestsZu viele Anfragen in kurzer ZeitWarten Sie und versuchen Sie es mit wachsender Pause erneut
Die API-Referenz zeigt eine AnmeldeseiteDie Referenz ist nur für angemeldete MuchSkills-Nutzer zugänglichMelden Sie sich an oder bitten Sie den Support, Ihrem Entwicklerteam Zugang zu geben
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.

Wir prüfen den Kalender von Daniel...

Stellen Sie uns Ihre Fragen

Ein echter Mensch antwortet, meist noch am selben Arbeitstag.

Live-Webinar · 30 Oct, 10:00 CET

How to analyse the Skill Gaps in your organisation

MuchSkills allows organisations to conduct an in-depth skills gap analysis in a matter of minutes and uncover the skill gaps that hurt organisational performance In this webinar, you will learn how t…