Authenticatie en het eerste verzoek
De basis-URL van de API is https://api.weprofit.com/v1/dev. Maak een persoonlijk toegangstoken aan in de kaart ‘API-tokens’ op de pagina ‘Ontwikkelaars’. Stuur het mee in de Authorization-header als Bearer-token. Bewaar het token in je serveromgeving, niet in JavaScript van je webshop of in een openbare repository.
Het token volgt de webshoprechten van de eigenaar ervan. Medewerkers hebben developertoegang en het relevante recht voor analytics of events nodig. Ingetrokken of verlopen tokens worden geweigerd.
curl https://api.weprofit.com/v1/dev/stores \
-H "Authorization: Bearer $WEPROFIT_API_TOKEN"Kies een webshop uit het antwoord
Gebruik voor volgende verzoeken een ID die het stores-endpoint teruggeeft. De volgende waarden zijn illustratief en bevatten geen klantgegevens.
{
"items": [{
"id": "STORE_ID",
"name": "Example store",
"platform": "shopify",
"currency": "USD",
"timezone": "America/New_York",
"role": "owner"
}]
}Endpoints voor rapportages
Alle paden hieronder zijn relatief ten opzichte van de API-basis en vereisen bearer-authenticatie. Vervang :storeId door de ID van een actieve webshop waartoe je toegang hebt. De tabel behandelt het uitlezen van rapportages. De REST API ondersteunt ook het bijwerken van advertentie-uitgaven en het beheren van webhookabonnementen; het is dus geen API die alleen kan lezen.
| Methode en pad | Doel | Optionele queryparameters |
|---|---|---|
| GET /me | Gebruikersidentiteit en niet-geheime metadata van het token | Geen |
| GET /stores | Toegankelijke actieve webshops en hun ID’s | Geen |
| GET /stores/:storeId/summary | Overzicht van bezoekers, sessies, aankopen, omzet, dekking en winst | from, to |
| GET /stores/:storeId/orders | Bestellingen, attributie en verzendstatus per netwerk | from, to, limit, cursor en bestelfilters |
| GET /stores/:storeId/events | Genormaliseerde events, bron, kanaal, toestemmingsstatus en waarde | from, to, limit, cursor en eventfilters |
| GET /stores/:storeId/profit | Omzet, terugbetalingen, productkosten, transactiekosten, verzendkosten, uitgaven en nettowinst | from, to |
| GET /stores/:storeId/profit/timeseries | Dagelijkse reeksen van winst en kosten | from, to |
| GET /stores/:storeId/profit/ad-spend | Uitgaven per dag, netwerk en campagne | month, in de notatie YYYY-MM |
Datums, filters en paginering
Geef from en to op als inclusieve UTC-datums in de notatie YYYY-MM-DD. Laat je ze weg, dan bestaat de rapportageperiode standaard uit vandaag en de zes dagen ervoor. Stel beide datums expliciet in voor herhaalbare vergelijkingen. Het ad-spend-endpoint gebruikt in plaats daarvan month, met standaard de huidige UTC-maand.
Lijsten met bestellingen en events geven standaard 50 rijen en accepteren er maximaal 200. De nieuwste resultaten staan bovenaan. Geef de teruggegeven nextCursor ongewijzigd mee om een volgende pagina op te halen. Data kan tijdens het pagineren veranderen, dus je krijgt geen bevroren momentopname.
- Bestelfilters zijn onder meer order_id, status, financial_status, tracked, link_method, link_confidence, channel, currency, min_total, max_total en sent_to.
- Eventfilters zijn onder meer event_name, event_id, source, channel, country, url_contains, consent_state, currency, min_value en max_value.
- Beide lijsten ondersteunen visitor_id en session_id. Eventfilters ondersteunen ook checkout_token en cart_token.
curl "https://api.weprofit.com/v1/dev/stores/STORE_ID/profit?from=2026-09-01&to=2026-09-07" \
-H "Authorization: Bearer $WEPROFIT_API_TOKEN"Lees meerdere webshops uit in één verzoek
GET /summary, /orders, /events, /profit en /profit/timeseries accepteren een verplichte stores-query met maximaal 50 webshop-ID’s, gescheiden door komma’s. Geef dezelfde datum- en filteropties mee als bij het overeenkomstige verzoek voor één webshop.
Batchantwoorden bevatten per webshop een eigen resultaat: geslaagd of met een fout. Een geweigerde webshop maakt de andere niet ongeldig. Bij geslaagde resultaten voor summary, orders en events staat de payload onder data; bij geslaagde resultaten voor profit staan de winstvelden naast storeId en ok. Het bestel- of eventresultaat van elke webshop heeft een eigen nextCursor.
Interpreteer winstvelden correct
Winstrapportages gebruiken vastgelegde en geschatte kosten. Geannuleerde bestellingen tellen niet mee in de winstberekening en worden apart gerapporteerd. De marge is null als de netto-omzet nul is.
Timeseries geeft dagen terug met bestellingen of advertentie-uitgaven, geen kalender die met nullen is aangevuld. De netProfit daarin houdt rekening met terugbetalingen, ook al heeft een timeseries-item geen apart veld voor terugbetalingen. Gebruik het geaggregeerde profit-endpoint als je het expliciete totaal aan terugbetalingen nodig hebt.
Rate limits en veelvoorkomende fouten
De huidige limieten zijn 240 verzoeken per minuut en 20.000 verzoeken per dag per token. Verlaag de frequentie van je verzoeken en gebruik een beperkt aantal nieuwe pogingen als je tegen de limiet aanloopt. Probeer het met ongeldige toegangsgegevens of rechten niet opnieuw zonder eerst de oorzaak op te lossen.
| HTTP-status | Betekenis | Volgende stap |
|---|---|---|
| 400 validation_error | Ongeldige datums, filters of andere invoer in de query | Corrigeer de parameters van het verzoek. |
| 401 unauthorized | Ontbrekend, ingetrokken of verlopen token | Gebruik een actief token en de Bearer-header. |
| 402 plan_required | De webshop heeft niet het vereiste abonnement | Controleer de facturering van de webshop en een eventuele beperking omdat de limiet is overschreden. |
| 403 forbidden | Onvoldoende rechten | Vraag de eigenaar om de toegang van de gebruiker van het token te controleren. |
| 404 store_not_found | Webshop niet beschikbaar voor dit verzoek | Gebruik een toegankelijke, actieve ID uit GET /stores. |
| 429 rate_limited | Verzoeklimiet van het token bereikt | Wacht even en verlaag het aantal verzoeken. |