API-sleutels
API-sleutels genereren, afbakenen en intrekken — de toegang van externe systemen tot de GraphQL van uw apps.
De externe systemen — een ERP dat klanten synchroniseert, een website die
bestellingen aanmaakt, een facturatie-integratie — roepen de GraphQL van de apps
aan met een API-sleutel: een geheim dat in de header x-api-key van elk
verzoek meegaat. De sleutels worden op het niveau van het platform beheerd en
zijn gedeeld tussen apps: elke sleutel heeft een scope — u kiest de apps
en, per app, alle endpoints of slechts enkele. Een facturatie-integratie kan
bijvoorbeeld accounts lezen in de app Klantenbeheer en documenten schrijven in
een andere app, met één enkele sleutel.
Nota
De sleutels horen bij wie het platform beheert: de pagina API-sleutels is alleen beschikbaar voor beheerdersaccounts.
De pagina API-sleutels
Open het menu API-sleutels in de globale navigatie. De lijst toont alle sleutels van het platform:
| Kolom | Wat het is |
|---|---|
| Naam | De naam die u de sleutel gegeven hebt — die identificeert de integratie. |
| Prefix | De eerste tekens van de sleutel (bijv. amk_A1b2C3…) — daarmee herkent u welke welke is zonder ooit de hele sleutel te tonen. |
| Scope | De apps waartoe hij toegang geeft en, per app, "alle endpoints" of de lijst van de toegekende. |
| Status | actief of ingetrokken. |
| Laatst gebruikt | Wanneer de sleutel voor het laatst gebruikt is — nooit, als dat nog niet gebeurd is. |

Dica
De kolom Laatst gebruikt is uw opruimgereedschap: een sleutel die maandenlang ongebruikt is, is kandidaat om ingetrokken te worden.
Een API-sleutel aanmaken
- Klik op Nieuwe API-sleutel.
- Geef een Naam van de sleutel — bijv.
facturatie-integratie. - Vink bij Scope — toegestane apps en endpoints de apps aan die u wilt opnemen. Standaard geeft elke aangevinkte app "Alle endpoints van deze app."
- Om de toegang in een app aan te scherpen, vinkt u Beperken tot specifieke endpoints aan en kiest u de API's stuk voor stuk. Bij een Tabel-API dekt de toekenning alle actieve bewerkingen — de lijst toont "geeft toegang tot: getContas, addContas, …" zodat u precies weet wat u toekent.
- Klik op API-sleutel genereren.

De sleutel kopiëren en bewaren
Na het genereren toont het venster de Sleutel in leesbare tekst — één enkele keer. Kopieer hem met Kopiëren en bewaar hem op een veilige plek (een geheimenbeheerder, de kluis van uw team). Zodra u het venster sluit, ziet u hem niet meer terug — het platform bewaart de sleutel niet in leesbare vorm; raakt u hem kwijt, dan kunt u hem alleen intrekken en een nieuwe genereren.

Atenção
Behandel de sleutel als een wachtwoord: zet hem niet in broncode, niet in URL's en niet op gebruikersschermen. Vermoedt u een lek, trek hem dan meteen in — een nieuwe sleutel genereren kost seconden.
De sleutel gebruiken
De sleutel gaat mee in de header x-api-key van elk verzoek aan het
GraphQL-endpoint van de app:
curl -X POST 'https://uw-host/api/graphql/gestao-clientes' \
-H 'content-type: application/json' \
-H 'x-api-key: amk_………' \
-d '{"query":"query { getContas(take: 5) { id nome } }"}'
Het tabblad Docs van elke API genereert dit voorbeeld (en de JavaScript-variant) al met de juiste bewerking — alleen uw sleutel ontbreekt nog.
Wat een sleutel wel en niet ziet:
- Alleen gepubliceerde API's — concepten nooit, ook niet met de scope van een hele app.
- Alleen wat de scope toekent: een app buiten de scope aanroepen geeft
403 — API key not authorised for this project; een endpoint buiten de scope aanroepen,403 — API key not authorised for this endpoint. - Altijd de hoofdversie van de app (of de gepubliceerde versie van het gebruikte adres) — nooit de werkversie van een developer.
Limieten en fouten
Elke sleutel heeft een plafond aan verzoeken per minuut. De foutantwoorden die een integratie moet kunnen afhandelen:
| Antwoord | Betekenis | Wat te doen |
|---|---|---|
401 |
Sleutel ontbreekt, is ongeldig, verlopen of ingetrokken. | Controleer de header en de status van de sleutel in de lijst. |
403 |
Sleutel is geldig maar heeft geen toegang tot de app of het endpoint. | Pas de scope aan — genereer een nieuwe sleutel met de juiste scope. |
429 |
Het plafond aan verzoeken per minuut is bereikt. | Wacht de tijd af die in de header retry-after staat en probeer opnieuw. |
Een sleutel intrekken
- Klik in de lijst op het intrekpictogram van de regel.
- Bevestig met Sleutel intrekken.
Het intrekken is onmiddellijk: alle apps die deze sleutel gebruiken, verliezen
bij het volgende verzoek toegang. Een ingetrokken sleutel kan niet opnieuw worden
geactiveerd — hij blijft in de lijst staan, gemarkeerd als ingetrokken, als
registratie.
Waarom niet…?
- Ik ben de sleutel kwijt — kan ik hem nog eens zien? Nee. De leesbare sleutel wordt alleen op het moment van aanmaken getoond. Trek de oude in en genereer een nieuwe.
- Ik moet toegang geven tot nog een endpoint — bewerk ik de sleutel? De scope bepaalt u bij het aanmaken. Genereer een nieuwe sleutel met de volledige scope, wissel hem in de integratie om en trek de oude in.
- Waarom krijgt de integratie
403op een nieuw endpoint? De sleutel is beperkt tot specifieke endpoints en het nieuwe staat niet in de lijst — hetzelfde geneesmiddel: een nieuwe sleutel met de juiste scope. - Geeft de sleutel toegang tot de schermen van de app? Nee. Een sleutel praat alleen met het GraphQL-endpoint. De gebruikersaccounts van de app zijn iets anders, en worden in de instellingen van de app zelf beheerd.