Zo krijg je een permanente Shopify Admin API key (lang‑levende access token)
In deze guide laat ik je zien hoe je snel een lang‑levende (offline) Shopify Admin API access token krijgt voor je store. Dit wordt vaak een “permanente Shopify API key” genoemd, maar technisch gezien is het een access token (meestal beginnend met shpat_).
Wat je krijgt
- Een lang‑levende Admin API access token (offline token)
- Exact de scopes die je hebt goedgekeurd (least privilege)
Belangrijk: “Permanent” betekent dat er geen verloopdatum is. De token kan wel worden ingetrokken (app verwijderen, credentials roteren of scopes wijzigen). Behandel dit als een wachtwoord.
Benodigdheden
- Een Shopify Partners account (om een app te maken)
- Een store om de app op te installeren (dev store is ideaal)
- Postman (of een andere HTTP client)
- Een webhook.site URL (als snelle redirect URI om de
codete vangen)
Stap-voor-stap (handmatige OAuth)
1) App maken + scopes kiezen
Maak in je Shopify Partners dashboard een app aan en kies alleen de scopes die je echt nodig hebt (bijvoorbeeld read_products, write_products).
2) Redirect URI instellen (webhook.site)
Open webhook.site, kopieer je unieke URL en zet die bij de Redirect URLs van je app.
De redirect URI moet exact matchen met de authorize URL die je straks bouwt.
3) Release en installeer de app
Release de app zodat je hem kunt installeren. Installeer hem daarna op je store. Kopieer daarna uit de app instellingen:
- Client ID
- Client secret
4) Authorize URL maken
Gebruik je store domein (het deel vóór .myshopify.com) en bouw deze URL:
https://{shop}.myshopify.com/admin/oauth/authorize?client_id={client_id}&scope={scopes}&redirect_uri={redirect_uri}&state={random_string}{shop}: bijvoorbeeldjouw-store{scopes}: komma-gescheiden, bijvoorbeeldread_products,write_products{redirect_uri}: je webhook.site URL (URL-encode indien nodig)state: willekeurige waarde (aanrader; echte apps moeten dit valideren)
Tip: Voor een lang‑levende offline token: vraag geen per‑user token aan. In praktijk: voeg geen grant_options[]=per-user toe.
5) Toegang goedkeuren en code kopiëren
Open de authorize URL in je browser en keur de scopes goed. Shopify redirect naar webhook.site. Kopieer in de query string de waarde van code.
6) Code omwisselen voor access token (Postman)
Maak een POST request in Postman:
https://{shop}.myshopify.com/admin/oauth/access_tokenBody → x-www-form-urlencoded:
client_id: {client_id}
client_secret: {client_secret}
code: {code_van_webhook_site}Verstuur het request. In de response staan access_token en scope. Bewaar de access_token veilig.
Token testen
Gebruik je token in REST of GraphQL (vervang {api_version} door de versie die je gebruikt):
REST
GET https://{shop}.myshopify.com/admin/api/{api_version}/products.json
X-Shopify-Access-Token: {access_token}GraphQL
POST https://{shop}.myshopify.com/admin/api/{api_version}/graphql.json
Content-Type: application/json
X-Shopify-Access-Token: {access_token}
{"query":"{ shop { name } }"}Problemen oplossen
- redirect_uri mismatch: zorg dat de redirect URI identiek is (en URL-encoded indien nodig).
- invalid_scope: scopes moeten valide zijn en komma-gescheiden; na scope-wijziging opnieuw autoriseren.
- invalid code: een code kun je maar 1x omwisselen; start opnieuw vanaf de authorize URL.
- 401/403 bij API calls: token ingetrokken, app gedeïnstalleerd of scopes missen.
Security checklist
- Commit nooit je token of client secret naar git.
- Gebruik zo min mogelijk scopes.
- Als je scopes wijzigt: opnieuw autoriseren en een nieuwe token maken.
- Voor productie: valideer de state parameter en gebruik een redirect URI die je zelf beheert (webhook.site is voor snelle tests).
Gerelateerd

Wil je hulp met implementatie?
Als je Shopify API’s wil koppelen aan je tools of workflows, kan ik je helpen met setup en automatisering.
