Wolkra API-tokens zijn projectgebonden sleutels die beginnen met wk_. Stuur er een mee in de header Authorization: Bearer om de REST API op https://api.wolkra.com/v1 aan te roepen, met lees- of lees/schrijftoegang, een optionele IP-allowlist en een optionele vervaldatum.
Een token aanmaken
- Schakel in de console over naar het project waar het token toegang toe moet hebben.
- Open API tokens en kies Create token.
- Geef het een naam die zegt waar het gebruikt wordt, zoals
ci-deployofmonitoring-readonly. - Kies het toegangsniveau:
- Lezen: alleen resources opvragen en bekijken.
- Lezen/schrijven: ook resources aanmaken, wijzigen en verwijderen.
- Voeg eventueel een IP-allowlist toe: alleen verzoeken vanaf deze adressen of ranges worden geaccepteerd.
- Stel eventueel een vervaldatum in.
- Maak het token aan en kopieer het meteen. Bewaar het als een wachtwoord, bijvoorbeeld in een secretmanager of in de geheime variabelen van je CI.
Je eerste verzoek
Vraag de servers in het project op:
curl -H "Authorization: Bearer wk_…" https://api.wolkra.com/v1/servers
Bewaar het token in scripts in een omgevingsvariabele in plaats van in het commando zelf:
export WOLKRA_TOKEN='wk_…'
curl -s -H "Authorization: Bearer $WOLKRA_TOKEN" https://api.wolkra.com/v1/servers | jq .
jq (installeren met sudo apt install -y jq) maakt de JSON-respons leesbaar.
Resources
De API dekt dezelfde resources als de console:
| Pad | Resource |
|---|---|
/servers |
cloudservers |
/ssh_keys |
opgeslagen SSH-sleutels |
/volumes |
blokopslagvolumes |
/networks |
privénetwerken |
/firewalls |
firewalls |
/load_balancers |
load balancers |
/floating_ips |
floating IP's |
/actions |
acties zoals het aan- of uitzetten, met hun status |
Alle paden zijn relatief aan https://api.wolkra.com/v1. Zo vraag je bijvoorbeeld de volumes op:
curl -s -H "Authorization: Bearer $WOLKRA_TOKEN" https://api.wolkra.com/v1/volumes
Acties
Wijzigingen die tijd kosten, zoals een server starten of een volume koppelen, lopen als acties. Controleer de voortgang via /actions voordat je een script laat doorgaan, in plaats van aan te nemen dat de wijziging al klaar is.
Fouten
De API antwoordt met standaard HTTP-statuscodes. Gebruikelijke betekenissen:
| Status | Betekenis |
|---|---|
401 |
Token ontbreekt, is onjuist of verlopen |
403 |
Niet toegestaan, bijvoorbeeld een schrijfactie met een alleen-lezentoken of een verzoek van buiten de allowlist |
404 |
De resource bestaat niet in dit project |
429 |
Te veel verzoeken; wacht en probeer opnieuw |
5xx |
Tijdelijk probleem; probeer het na een pauze opnieuw |
Toon de statuscode tijdens het debuggen:
curl -s -o /dev/null -w '%{http_code}\n' \
-H "Authorization: Bearer $WOLKRA_TOKEN" https://api.wolkra.com/v1/servers
Goede gewoonten
- Eén token per toepassing. Een token voor CI, een ander voor monitoring, nog een voor je laptop. Zo trek je er één in zonder de rest te breken.
- Minimale rechten. Gebruik leestokens voor dashboards en monitoring.
- Beperk op adres. Voeg een IP-allowlist toe voor tokens die vanaf vaste servers of CI-runners worden gebruikt.
- Laat tokens verlopen die bedoeld zijn voor een project of een persoon die later vertrekt.
- Commit nooit tokens naar git. Lekt er een uit, verwijder het dan meteen in de console en maak een nieuw token aan.
- Controleer van tijd tot tijd de lijst met tokens en het activiteitenlog van de organisatie.
Een token intrekken
Open API tokens, zoek het token op en verwijder het. Verzoeken met dat token mislukken vanaf dat moment.
Automatisering
Scripts roepen de API rechtstreeks aan via HTTPS. curl, requests in Python, net/http in Go of elke andere HTTP-client werkt. Combineer de API met cloud-init user data om servers bij de eerste start volledig te configureren.
Meer op de productpagina: API. Voor het beveiligen van het account zelf, zie accountbeveiliging.
Veelgestelde vragen
Waar vind ik de Wolkra API?
Op https://api.wolkra.com/v1. Het is een REST API met JSON en authenticatie via een Bearer-token.
Waar heeft een token toegang toe?
Tot één project. Elk token hoort bij het project waarin het is aangemaakt en heeft lees- of lees/schrijftoegang tot de resources daarvan.
Kan ik een token beperken tot de adressen van mijn servers?
Ja. Voeg bij het aanmaken van het token een IP-allowlist toe; verzoeken vanaf elk ander adres worden dan geweigerd.
Met welke tools kan ik de API aanroepen?
Met elke HTTP-client: curl, Python requests, Go net/http, JavaScript fetch of de HTTP-stappen van je CI-systeem.