MuchSkills API och API-åtkomst
Med MuchSkills API kan du läsa och skriva din MuchSkills-data från andra system. En Owner eller Admin skapar en OAuth-klient under API Access, din applikation byter sitt Client ID och sin Client Secret mot en token och anropar sedan API:et. API-åtkomst ingår i alla abonnemang.
- Vem
- En Owner eller Admin i MuchSkills skapar klienten och din utvecklare använder den
- Så ansluter du
- Självbetjäning via Settings › API Access
- Inloggning
- OAuth 2.0 client credentials, en token gäller i ungefär en timme
- Planer
- API-åtkomst ingår i alla abonnemang
How to
Så fungerar det
MuchSkills API använder OAuth 2.0 med flödet client credentials. Varje API-klient har eget Client ID, egen Client Secret och egna scopes. På så sätt kan varje integration få en egen klient, och du kan återkalla en av dem utan att de andra påverkas. Basadressen är https://app.muchskills.com.
Innan du börjar
- I MuchSkills: rollen Owner eller Admin för att kunna skapa klienter.
- En utvecklare eller ett verktyg som kan göra HTTPS-anrop, till exempel egen kod, en integrationsplattform eller Power Query.
- Välj scope. Read för rapportering och exporter. Write bara om integrationen ändrar data.
- En säker plats för hemligheten. En lösenordshanterare eller ert valv för hemligheter. MuchSkills visar hemligheten bara en gång.
- API-referensen. Den finns på app.muchskills.com/api/docs och öppnas när du har loggat in i MuchSkills. Utvecklare utan inloggning kan be supporten om åtkomst.
Steg
Inne i MuchSkills
- Öppna API Access. Gå till Team/Org › Settings › API Access. Du kan också klicka på Go to API Access på sidan Integrations.
- Skapa en klient. Klicka på New Client. I Create API client anger du ett Name som är lätt att känna igen, till exempel Rapportpipeline. Under Scopes kryssar du i Read, och Write bara om det behövs. Klicka sedan på Create Client.
Team/Org › Settings › API Access › New Client
- Kopiera inloggningsuppgifterna. Fönstret Copy your credentials visar Client ID och Client Secret. Kopiera båda till en säker plats innan du klickar på Done. Client Secret visas bara en gång.
Create API client: 1 Name, 2 Read eller Write, 3 Create Client.
I din applikation
- Hämta en token. Skicka Client ID och Client Secret till tokenslutpunkten. Anropets body måste vara formulärkodad:
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=DITT_CLIENT_ID" \
-d "client_secret=DIN_CLIENT_SECRET"
Svaret innehåller access_token, token_type (Bearer), expires_in angivet i sekunder och det scope som har beviljats.
- Anropa API:et. Skicka token i headern
Authorization. Det här anropet returnerar de första 300 profilerna:
curl -X POST "https://app.muchskills.com/api/v2/profile/search?skip=0&limit=300" \
-H "Authorization: Bearer DIN_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d "{}"
Om du bara vill läsa utvalda personer skickar du {"filters": {"emails": ["anna@yourcompany.com"]}} som body.
- Bläddra igenom resultaten. Varje svar har ett
pagination-objekt medtotal. Ökaskipmed dittlimitoch upprepa tills du har fått alla.limitkan vara högst 300.
Kontrollera att det fungerar
- Tokenanropet returnerar
200och enaccess_token. - Sökanropet returnerar
200med profilerna idataochtotalipagination. - På sidan API Access står det en tidpunkt i klientens kolumn Last used i stället för Never.
Benefits
Det här får du
- Dina data i dina verktyg. Profiler, kompetenser, certifikat, mål och tillgänglighet flödar in i rapporter, datalager och andra system.
- Data in utan att någon knappar in dem. Skicka certifikat, kompetensnivåer, mål och frånvaro från systemen där de skapas.
- Kontroll per integration. Varje klient har sitt eget scope och kan återkallas separat.
Important to know
Bra att veta
Vad du kan anropa. API:et har 22 endpoints. Alla sökvägar nedan börjar med https://app.muchskills.com.
| Metod och sökväg | Vad den gör |
|---|---|
| Inloggning | |
POST /oauth2/token | Byter Client ID och Client Secret mot en åtkomsttoken |
| Läsa personer och kompetenser | |
POST /api/v2/profile/search | Profiler med kompetenser, certifikat och validerade kompetenser, sidindelade med skip och limit upp till 300 |
POST /api/v1/profile/search | Den äldre profilsökningen. Använd v2-sökningen i stället |
GET /api/v1/profile/{email} | En persons profil |
GET /api/v1/analysis | Analyslistor med tillhörande kompetenser, badges och certifikat |
| Läsa tillgänglighet och beläggning | |
GET /api/v1/availability | Tillgänglighet per vecka eller månad för ett datumintervall, sidindelad, upp till 50 personer per sida |
GET /api/v2/profile/pto | Frånvaro för alla som har någon, sidindelad, upp till 300 personer per sida |
GET /api/v1/teams/members/{email} | En persons team, med beläggning |
| Läsa mål och certifikat | |
GET /api/v1/goals | Alla mål i din organisation, sidindelade och filtrerbara |
GET /api/v1/goals/{email} | En persons mål |
GET /api/v1/user-certifications | Certifikathistorik för din organisation, inklusive personer som har slutat |
GET /api/v2/auth/file-validation-header | En ny header för att öppna privata filer, till exempel certifikatbevis |
| Skriva (kräver Write-scope) | |
PATCH /api/v2/profile/{email} | Uppdaterar profilfält, till exempel titel, avdelning, chef, plats, taggar och projekthistorik |
POST /api/v2/profile/skills/import | Importerar kompetensnivåer för många personer, som egen bedömning eller som chefsvalidering |
GET /api/v2/profile/skills/import/{jobId} | Visar förlopp och resultat för en kompetensimport |
POST /api/v1/user-certifications/{email} | Lägger till eller förnyar ett certifikat, med länkar eller filer som bevis |
PATCH /api/v1/user-certifications/{periodId} | Korrigerar en certifikatperiod |
DELETE /api/v1/user-certifications/{periodId} | Tar bort en certifikatperiod |
POST /api/v1/goals/{email} | Skapar ett mål för en kompetens eller ett certifikat |
PATCH /api/v1/goals/{goalId} | Uppdaterar ett mål |
DELETE /api/v1/goals/{goalId} | Tar bort ett mål. Uppnådda mål kan inte tas bort |
PUT /api/v2/profile/{email}/pto | Ersätter all frånvaro för en person |
Personer identifieras via e-postadress. Använd adressen som var och en loggar in i MuchSkills med.
Sökningen är en POST. POST /api/v2/profile/search svarar 404 på en GET. Sidindelningsvärdena anges i adressen som skip och limit, och filtren läggs i JSON-bodyn.
En token gäller i ungefär en timme. Det finns ingen refresh token. Begär en ny token när den gamla har gått ut eller när ett anrop svarar 401.
Skrivning kräver Write-scope. En klient med bara Read-scope, eller en äldre organisationstoken, får 403 på skrivanrop.
Frånvaroskrivningar ersätter allt. PUT /api/v2/profile/{email}/pto ersätter all frånvaro för personen, och en tom lista rensar den. Om en HR-integration hanterar frånvaron för din organisation svarar anropet 403. Ändra då frånvaron i HR-systemet i stället.
Kompetensnivåer anges på en skala från 1 till 9. 1 till 3 motsvarar Beginner, 4 till 6 Intermediate och 7 till 9 Expert. Profilerna visar personens självskattade nivå och, om en chef har validerat den, även den validerade nivån.
Privata filer kräver en header. Certifikat- och utbildningsfiler är privata. Svaren innehåller ett auth-objekt med den header du ska skicka när du öppnar dem. Headern går ut, och med GET /api/v2/auth/file-validation-header får du en ny.
Begränsningar för anrop. För många anrop på kort tid ger 429 Too Many Requests. Vänta och försök igen med allt längre paus, till exempel 1, 2 och sedan 4 sekunder. Målanropen tillåter ett anrop per sekund och token.
Äldre tokens fasas ut. Om MuchSkills fortfarande har en gammal organisationstoken för din webbplats visas meddelandet A legacy API token is still active for this site. på sidan Integrations. Flytta över varje integration till en API-klient.
Återkallning är slutgiltig. Med Revoke på sidan API Access slutar klientens inloggningsuppgifter att fungera direkt. Det går inte att ångra.
Common errors
Felsökning
| Det här ser du | Orsak | Gör så här |
|---|---|---|
400 med "error": "invalid_client" från token-endpointen | Client ID eller Client Secret är fel, eller så skickades bodyn som JSON | Skicka bodyn formulärkodad och kontrollera båda värdena. Om hemligheten har kommit bort återkallar du klienten och skapar en ny |
401 Unauthorized | Token saknas, är fel eller har gått ut | Begär en ny token och skicka den som Authorization: Bearer |
403 på ett skrivanrop | Klienten har bara Read-scope, eller så använde du en äldre organisationstoken | Skapa en klient med scopet Write och använd dess token |
403 på PUT /api/v2/profile/{email}/pto med beskedet att frånvaron hanteras av en integration | En HR-integration synkar frånvaron för din organisation | Ändra frånvaron i HR-systemet |
404 från profilsökningen | Anropet skickades som GET | Skicka det som POST med en JSON-body, även om den bara är {} |
404 med user not found | E-postadressen tillhör ingen medlem i din MuchSkills-organisation | Använd den e-postadress som personen loggar in med |
400 med Invalid query parameters | Ett värde ligger utanför tillåtet intervall, till exempel ett limit över 300, eller ett datum följer inte ISO 8601 | Korrigera värdet |
429 Too Many Requests | För många anrop på kort tid | Vänta och försök igen med allt längre paus |
| API-referensen visar en inloggningssida | Referensen är bara öppen för inloggade MuchSkills-användare | Logga in, eller be supporten ge din utvecklare åtkomst |
Vanliga frågor
Vilka planer ingår API:et i?
API-åtkomst ingår i alla planer.
Vem kan skapa en API-klient?
En Owner eller Admin i MuchSkills, under ”Team/Org › Settings › API Access”. Därefter kan hen lämna över Client ID och Client Secret till din utvecklare eller integrationspartner.
Kan vår utvecklare läsa API-referensen utan ett MuchSkills-konto?
Referensen på app.muchskills.com/api/docs är öppen för inloggade MuchSkills-användare, som ett extra skydd. Om din utvecklare inte har någon MuchSkills-inloggning kan du kontakta support@muchskills.com, så ger vi hen åtkomst.
Hur länge gäller en token?
Ungefär en timme. Det finns ingen refresh token. När en token har gått ut begär du en ny med samma Client ID och Client Secret.
Vi har en gammal API-token från ”Settings › Integrations”. Fungerar den fortfarande?
De äldre organisationstokens fasas ut, och de kan bara läsa. Skapa en API-klient under ”API Access” och byt din integration till den så att den fortsätter att fungera.
Ska vi välja ”Read” eller ”Write”?
Välj ”Read” om inte din integration behöver ändra data i MuchSkills. ”Write” behövs för att uppdatera profiler, importera kompetenser, lägga till certifikat, hantera mål eller ersätta frånvaro. Du kan skapa separata klienter för olika uppgifter.
Finns det en gräns för hur många anrop vi kan skicka?
Ja. Om du skickar anrop för snabbt svarar API:et med 429 Too Many Requests. Vänta och försök igen med en allt längre paus. Anropen för mål tillåter ett anrop per sekund och token.
Kan vi läsa projektallokeringar eller kursaktivitet via API:et?
Inte i dag. API:et läser varje persons team med beläggning, tillgänglighet och frånvaro, men har ingen endpoint för projektallokeringar eller kursaktivitet.
Vad händer om ett Client Secret läcker ut?
Klicka på ”Revoke” vid klienten i ”API Access”. Dess inloggningsuppgifter slutar fungera direkt, och åtgärden går inte att ångra. Skapa sedan en ny klient.