Översikt över Admin API

Arbetsytans Admin API

Workspace Admin API låter server-till-server-integrationer administrera en EVCharge-arbetsyta. Dokumentationen är för arbetsyteadministratörer och externa API-integratörer. Den använder återkallbara åtkomsttoken bundna till arbetsytan och detaljerade behörighetsområden; kunders inloggningstoken och webbläsarsessioner accepteras inte.

Den här katalogen är den auktoritativa utvecklarreferensen för API:et /v2/admin som implementeras av app-api. Den dokumenterar inte kund-/mobilrutter eller adminportalens egna HTTP-rutter.

Bas-URL och resursgräns

Alla rutter är relativa till den driftsatta app-api-serverns ursprung:

https://api.evcharge.mobi/v2/admin/...

Arbetsyte-ID accepteras inte i URL, frågesträng eller anropskropp. Varje åtkomsttoken är bunden till exakt en arbetsyta och API:et härleder cpoId från den autentiserade tokenidentiteten. Om en underordnad plats, laddare, användare, tariff, profil, tilldelning eller transaktion inte tillhör arbetsytan returnerar API:et samma 404 RESOURCE_NOT_FOUND-svar utan att avslöja resursens existens.

Hämta en åtkomsttoken

En administratör för arbetsytan skapar token under API-åtkomst i arbetsytans inställningar. Tokenhantering är avsiktligt inte tillgänglig för arbetsytans token.

  • API-åtkomst ingår i alla planer, även Free. Administratören måste ha behörighet att redigera arbetsytan.
  • Arbetsytans värd måste aktivera Admin API via adminApiEnabled; annars får en giltig token ett 404-svar från app-api som inte avslöjar resursens existens.
  • Administratören får bara tilldela behörighetsområden som tillåts av de egna aktuella behörigheterna och arbetsytans rättigheter.
  • Nya token kan vara utan utgångstid, vilket är standard i arbetsytans inställningar, eller ha en livslängd på 1 till 365 hela dagar vald av administratören; servern beräknar begränsade absoluta utgångstider. Token utan utgångstid gäller tills de återkallas.
  • En arbetsyta får ha högst 50 aktiva token.
  • Autentiseringsuppgiften visas i klartext en enda gång. Spara den omedelbart i en hemlighetshanterare.
  • Namn, behörighetsområden och utgångstid är oföränderliga. För att byta token skapar du en ersättare, tar den i drift, verifierar den och återkallar den gamla.
  • Återkallelse sker omedelbart; återkallade rader förblir synliga som oföränderlig arbetsytehistorik med känsliga uppgifter dolda. Det finns ingen endpoint för inspektion av bearer-token eller permanent borttagning.

app-api har ingen endpoint som utfärdar, förnyar, listar eller återkallar dessa autentiseringsuppgifter. Att hämta token är därför ett förkrav som görs av en person i adminportalen, inte en annan endpoint i den här referensen.

Lägg aldrig token i versionshantering, URL:er, frågesträngar, cookies, loggar, analysdata eller felrapporter.

Autentisering

Skicka exakt en header enligt RFC 6750 med varje anrop:

Authorization: Bearer evc_ws_<selector>.<secret>

Den exakta ogenomskinliga autentiseringsuppgiften består av evc_ws_ följt av en kanonisk base64url-selektor på 16 tecken, . och en kanonisk base64url-hemlighet på 43 tecken. Skicka hela uppgiften oförändrad; base64-koda den inte igen.

API:et avvisar dubbla auktoriseringsheadrar, kommaseparerade värden, andra scheman, tomma bearer-värden, kund-JWT:er och inloggningsuppgifter som anges någon annanstans än i denna header.

Felaktigt formaterade, okända, utgångna, återkallade eller på annat sätt ogiltiga token får alla samma svar:

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer
Cache-Control: no-store
Content-Type: application/json

{
  "error": "Unauthorized",
  "code": "INVALID_WORKSPACE_TOKEN"
}

Tjänsten kontrollerar tokenstatus och arbetsytans aktuella rättigheter vid varje anrop. Om en rättighet tas bort kan berörda behörighetsområden därför inaktiveras innan token löper ut.

Arbetsytetoken är ogenomskinliga autentiseringsuppgifter, inte JWT:er. De har ingen förnyelsetoken och det finns ingen förnyelseendpoint. En tidsbegränsad token slutar autentisera vid sitt absoluta expiresAt; en token utan utgångstid gäller tills den återkallas. Rotation innebär att skapa en ersättningsuppgift i portalen, driftsätta den i klienten och återkalla den gamla.

Anropskonventioner

  • Använd Content-Type: application/json för anrop med JSON-kropp.
  • Inledande och avslutande blanksteg tas bort från valfria X-Request-Id-värden, som bara accepteras om de innehåller 1–128 tecken från A-Z, a-z, 0-9, ., _, : eller -; annars skapar servern ett UUID. Varje svar returnerar det valda värdet som X-Request-Id.
  • Valfria X-Error-Format: envelope omvandlar varje JSON-felsvar till den strukturerade omslutning som dokumenteras i Kontrakt för svar och fel. Alla andra värden behåller standardkroppen för kompatibilitet.
  • ID:n i sökvägsparametrar är positiva heltal. Åtkomsttoken-ID:n som portalen returnerar är decimalsträngar eftersom de är osignerade 64-bitars databasvärden.
  • Datum- och tidsvärden är RFC 3339-strängar med uttrycklig tidszonsförskjutning, till exempel 2026-08-13T12:30:00Z.
  • Lyckade borttagningar returnerar normalt 204 No Content.
  • Skapande åtgärder returnerar normalt 201 Created.
  • OCPP-arbete som bara har köats kan returnera 202 Accepted; tolka det inte som en bekräftelse från laddaren om inte svaret uttryckligen säger det.
  • Autentiserade svar använder Cache-Control: no-store. Endpoints för QR och rapportexport returnerar binära kroppar med uttryckliga innehållsheadrar.
  • Tillåtna webbläsarursprung kan läsa X-Request-Id, Idempotency-Replayed, Retry-After och Content-Disposition via CORS. Det gör att webbläsarklienter kan koppla ihop anrop, upptäcka idempotenta upprepningar, följa väntetider för nya försök och behålla serverns valda filnamn vid nedladdning.

Idempotens

Alla adminanrop med POST, PUT, PATCH och DELETE måste innehålla en Idempotency-Key-header. Nycklar innehåller 1–255 synliga tecken och avgränsas till token, metod och sökväg.

Idempotency-Key: provisioning-2026-08-13-site-42

Om en slutförd nyckel återanvänds med identisk URL och kropp spelas det sparade svaret upp igen och följande läggs till:

Idempotency-Replayed: true

Om en nyckel återanvänds med ett annat anrop returneras 409 IDEMPOTENCY_CONFLICT. Ett anrop som fortfarande behandlas returnerar 409 IDEMPOTENT_REQUEST_PROCESSING med Retry-After: 5.

Slutförda svar och slutliga utfall sparas för upprepning eller avstämning i sju dagar efter den senaste uppdateringen. Därefter kan samma nyckel behandlas som ett nytt kommando. Klienter måste därför använda globalt unika nycklar och får inte avsiktligt återanvända dem.

Om en behandlingsreservation löper ut, anslutningen stängs efter att körningen har börjat eller åtgärden returnerar ett serverfel kan API:et inte säkert avgöra om en extern effekt har inträffat. Under lagringsperioden på sju dagar förblir nyckelns utfall slutgiltigt obestämt och returnerar 409 IDEMPOTENCY_OUTCOME_UNKNOWN; den återtas inte och körs inte automatiskt igen. Kontrollera åtgärdens effekter före manuell återställning och skicka inte samma åtgärd med en ny nyckel förrän avstämningen är klar.

Alla administratörsendpoints som ändrar data, inklusive POST /reports/send, kräver Idempotency-Key.

Anropsgränser

Gränser tillämpas både på den enskilda token och på dess arbetsyta. Standardvärdena i källkoden är:

GränsStandard
Tidsfönster60 sekunder
Per token300 anrop
Per arbetsyta1 000 anrop

Ett begränsat anrop returnerar 429 Too Many Requests och en Retry-After-header. Installationer kan åsidosätta dessa värden.

Fel

JSON-fel använder en stabil code där klienten behöver skilja mellan olika fall:

{
  "error": "Insufficient workspace-token scope",
  "code": "INSUFFICIENT_SCOPE"
}

Valideringsfel använder fältarrayer:

{
  "validationErrors": {
    "name": ["String must contain at least 1 character(s)"]
  }
}

Vanliga statusar är:

StatusBetydelse
400Ogiltigt kontrakt för idempotens, användarmarkör eller geokodning; schemafel i sökväg, kropp eller fråga ger normalt 422
401Ogiltig arbetsytetoken
403Giltig token utan nödvändigt effektivt behörighetsområde eller rättighet
404Arbetsytan eller underordnad resurs är inte synlig för denna token
409Konflikt kring resurstillstånd, beroende, samtidighet eller idempotens
422Fel i fältvalidering, intervallbegränsning eller exportgräns
429Anropsgränsen för token eller arbetsyta har överskridits
502En efterföljande åtgärd, exempelvis rapportleverans, misslyckades
503Lagring för auktorisering eller idempotens är tillfälligt otillgänglig

Katalog över behörighetsområden

Följande katalog över behörighetsområden används när en administratör skapar en token. Ett skrivområde eller område med stor påverkan kan innebära motsvarande läsområde, men läsområden ger aldrig skrivrättigheter. Tillgängliga områden beror på administratörens behörigheter och arbetsytans aktiverade funktioner.

DomänLäsbehörighetsområdenSkrivbehörighetsområden och områden med stor påverkanYtterligare rättighet när det är tillämpligt
Arbetsytaworkspaces:readworkspaces:update—
Platsersites:readsites:create, sites:update, sites:delete, sites:power-managementdlmPowerManagement för effektstyrning
Laddarechargers:readchargers:create, chargers:update, chargers:delete, chargers:credentials, chargers:configuration, chargers:firmware, chargers:commands, chargers:public, chargers:connector-settings, chargers:local-users, chargers:tariff-assignments, chargers:profile-assignmentsfirmwareOperations, publicCharging, tariffs eller smartCharging för motsvarande funktion
Användareusers:readusers:create, users:update, users:delete, users:invitations, users:rfid, users:access, users:limits—
LaddprofilerchargingProfiles:readchargingProfiles:create, chargingProfiles:update, chargingProfiles:delete, chargingProfiles:assignsmartCharging
Tariffertariffs:readtariffs:create, tariffs:update, tariffs:delete, tariffs:components, tariffs:assigntariffs
Rapporterreports:readreports:export, reports:schedules, reports:sendscheduledReports för scheman och omedelbar sändning

Själva API-åtkomsten ingår i alla planer och styrs av värdens inställning adminApiEnabled. De ytterligare funktionsrättigheterna ovan gäller fortfarande; API-åtkomst ger inte funktioner utanför arbetsytans plan.

Endpointreferens

Tabellerna nedan listar alla 87 administratörsrutter för arbetsytan. Om flera behörighetsområden anges i en cell krävs samtliga.

Arbetsyta

MetodSökvägObligatoriskt behörighetsområdeSyfte
GET/v2/adminworkspaces:readLäs säkra metadata och uppslagsvärden för arbetsytan.
PATCH/v2/adminworkspaces:updateUppdatera ett eller flera metadatafält för arbetsytan.
GET/v2/admin/dashboardworkspaces:read + reports:readLäs avgränsade antal för arbetsytan och driftsaggregat för 90 dagar.

Fält för arbetsyteuppdatering: name, email, website, addressLine1, addressLine2, postalCode, city, state och countryId. Minst ett fält krävs. Tomma strängar som får vara null normaliseras till null.

Platser och effektstyrning

MetodSökvägObligatoriskt behörighetsområdeSyfte
GET/v2/admin/sitessites:readLista platser med sammanställningar begränsade till 90 dagar och uppslagsvärden för platser.
GET/v2/admin/sites/geocodesites:readSök efter normaliserade platsadressförslag via den gemensamma geokodaren med anropsbegränsning och cache.
POST/v2/admin/sitessites:createSkapa en plats.
GET/v2/admin/sites/:siteIdsites:read + reports:readLäs platsuppgifter, senaste sessioner, totalsummor och driftsaggregat.
PATCH/v2/admin/sites/:siteIdsites:updateErsätt det redigerbara platsdokumentet.
DELETE/v2/admin/sites/:siteIdsites:deleteTa bort en tom plats; beroenden returnerar en konflikt.
GET/v2/admin/sites/:siteId/power-managementsites:power-managementLäs platsens träd för dynamisk lastbalansering.
PUT/v2/admin/sites/:siteId/power-managementsites:power-managementErsätt platsens konfiguration för effektstyrning atomärt.

Kroppar för att skapa och uppdatera platser använder:

{
  "name": "Main depot",
  "description": null,
  "addressLine1": "1 Example Street",
  "addressLine2": null,
  "postalCode": "LV-1001",
  "city": "Riga",
  "state": null,
  "countryId": 1,
  "timezoneId": 1,
  "latitude": 56.9496,
  "longitude": 24.1052
}

Platsgeokodning accepterar de valfria frågefälten street, city, state, country och countryCode med två bokstäver samt anropsheadern Accept-Language. Den kombinerade sökningen efter gata/stad/region måste innehålla minst två tecken. Svar innehåller bara placeId, displayName, latitude och longitude; leverantörsuppgifter och leverantörsspecifika metadata lämnas inte ut. Servern tillämpar den gemensamma leverantörskön med ett anrop per sekund, åtta sekunders timeout, begränsad 24-timmarscache och globala anropsgränser för arbetsytetoken.

Effektstyrning accepterar { "pools": [...] }. En grupp har id, name, limit, valfria meterSources och rekursiva children. En underordnad laddare har chargepointId och priority. API:et begränsar trädets storlek och antalet mätare och genomför OCPP-rensning och omvalidering i två faser när installerat tillstånd ersätts. En nekad ändring, timeout eller samtidighetskonflikt returnerar 409 POWER_MANAGEMENT_CONFLICT och behåller föregående konfiguration.

Laddare

MetodSökvägObligatoriskt behörighetsområdeSyfte eller indata
GET/v2/admin/chargerschargers:readLista laddare med status och avgränsade energi- och kostnadssammanställningar.
POST/v2/admin/chargerschargers:createSkapa från name, identifier och siteId; password är valfritt.
GET/v2/admin/chargers/:chargerIdchargers:readLäs data för laddare, EVSE, kontakt, uppslag och status.
PATCH/v2/admin/chargers/:chargerIdchargers:updateUppdatera name, siteId, invertedRfid, smartMode eller automationDisabled.
DELETE/v2/admin/chargers/:chargerIdchargers:deleteTa bort en laddare enligt beroende- och faktureringsregler.
PATCH/v2/admin/chargers/:chargerId/credentialschargers:credentialsErsätt laddarens lösenord med { "password": "..." }.
PATCH/v2/admin/chargers/:chargerId/connectors/:portIdchargers:connector-settingsUppdatera kontaktformat/-typ, strömtyp, spänning, strömstyrka och effektgränser.
PATCH/v2/admin/chargers/:chargerId/public-listingchargers:publicAnge `{ "isPublic": true
GET/v2/admin/chargers/:chargerId/public-readinesschargers:readLäs beredskap för publik laddning och saknade krav.
GET/v2/admin/chargers/:chargerId/logschargers:readLäs OCPP-loggar med markörbaserad sidindelning och känsliga uppgifter dolda.
GET/v2/admin/chargers/:chargerId/sessionschargers:read + reports:readLäs sidindelade laddsessioner och totalsummor.
GET/v2/admin/chargers/:chargerId/qrchargers:readGenerera en PNG-QR-kod på 300 pixlar; valfria connector=0..255.
GET/v2/admin/chargers/:chargerId/composite-scheduleschargers:readLäs sparad historik för sammansatta scheman.
GET/v2/admin/chargers/:chargerId/configurationchargers:readLäs OCPP-konfiguration med känsliga värden dolda.
PATCH/v2/admin/chargers/:chargerId/configurationchargers:configurationSkicka en konfigurationsändring med key och value.
POST/v2/admin/chargers/:chargerId/configuration/reloadchargers:configurationBegär en aktuell laddarkonfiguration.
GET/v2/admin/chargers/:chargerId/firmwarechargers:readLäs aktuell firmware och uppdateringsstatus.
POST/v2/admin/chargers/:chargerId/firmwarechargers:firmwareKöa en uppdatering från en HTTP(S)-{ "url": "..." }.
POST/v2/admin/chargers/:chargerId/commands/resetchargers:commandsSkicka `{ "resetType": "Soft"
POST/v2/admin/chargers/:chargerId/commands/availabilitychargers:commandsSkicka `{ "availabilityType": "Operative"
POST/v2/admin/chargers/:chargerId/commands/triggerchargers:commandsUtlös BootNotification, Heartbeat, StatusNotification eller MeterValues.
POST/v2/admin/chargers/:chargerId/commands/unlockchargers:commandsLås upp ett positivt connectorId.
POST/v2/admin/chargers/:chargerId/commands/composite-schedulechargers:commandsBegär ett sammansatt schema för connectorId, durationSeconds och chargingRateUnit.

Frågeparametrarna för laddarloggar är cursor, limit (standard 50, högst 200), from, to, action, direction och levelId. Sessionsparametrarna är page, limit (standard 25, högst 100), from, to och customerId (ett positivt ID eller unknown). Historik för sammansatta scheman använder cursor, limit (standard 20, högst 50) och valfria connectorId.

Rapporter

MetodSökvägObligatoriskt behörighetsområdeSyfte
GET/v2/admin/reports/datareports:readLäs filtrerade rapportdata för laddsessioner med markörbaserad sidindelning.
GET/v2/admin/reports/measurementsreports:readLäs avgränsade mätvärden för en egen transaktion.
GET/v2/admin/reports/exportreports:exportLadda ned en CSV- eller PDF-export.
GET/v2/admin/reports/schedulereports:readLäs arbetsytans eget exportschema eller null.
PUT/v2/admin/reports/schedulereports:schedulesSkapa eller ersätt arbetsytans eget exportschema.
POST/v2/admin/reports/sendreports:sendSkicka föregående UTC-kalendermånads sparade export via e-post; idempotensnyckel krävs.

Filtren för rapportdata och export är from, to, siteId, chargerId, userId, anonymous och active. from/to använder som standard de senaste 90 dagarna och får inte omfatta mer än 90 dagar. userId kan inte kombineras med anonymous=true.

  • Sidindelning av data: ogenomskinlig cursor, standard limit=50, högst 100.
  • Mätningar: obligatorisk transactionLogId, ogenomskinlig cursor, standard limit=500, högst 1 000.
  • Export: format=csv|pdf, standard csv, fast gräns på 2 000 rader.
  • Exportsvar använder Content-Disposition: attachment, Cache-Control: private, no-store och X-Content-Type-Options: nosniff.

Schemakropp:

{
  "enabled": true,
  "recipientEmail": "reports@example.com",
  "format": "csv",
  "sendDay": 5,
  "sendTime": "08:30"
}

sendDay är 1–28 och sendTime tolkas i UTC. Schemaläggaren kör i efterhand efter en missad schemalagd minut under den aktuella leveransmånaden. Misslyckad uppbyggnad före överlämning försöks igen efter 5 och 10 minuter; en avbruten building-reservation kan tas över efter 30 minuter och automatisk leverans stoppas efter tre försök. Schemaläggaren sparar indeterminate omedelbart före SMTP-överlämningen; både indeterminate och den äldre statusen sending är slutliga eftersom ett automatiskt nytt försök i båda fallen kan skicka en duplicerad bilaga. Operatörer måste stämma av dessa utfall manuellt innan schemats tillstånd ändras. Varje körning väljer högst tio scheman, slutar starta arbete efter en tidsbudget på 45 sekunder och använder begränsade SMTP-timeouter. Jobbet är avstängt som standard och måste aktiveras uttryckligen efter validering av SMTP och kapacitet. API-schemat ägs av arbetsytan i stället för att låna identiteten från personen som skapade token.

Tariffer

MetodSökvägObligatoriskt behörighetsområdeSyfte
GET/v2/admin/tariffstariffs:readLista tariffer och uppslagsvärden.
POST/v2/admin/tariffstariffs:createSkapa en tariff.
GET/v2/admin/tariffs/:tariffIdtariffs:readLäs en egen tariff och dess komponenter.
PATCH/v2/admin/tariffs/:tariffIdtariffs:updateUppdatera tariffdefinitionen.
PUT/v2/admin/tariffs/:tariffId/componentstariffs:componentsErsätt upp till 256 komponenter atomärt.
DELETE/v2/admin/tariffs/:tariffIdtariffs:deleteTa bort en oanvänd tariff.
GET/v2/admin/tariffs/:tariffId/market-pricestariffs:readLäs priser för tariffens tillhörande elområde från numeriska startsAt.
GET/v2/admin/chargers/:chargerId/tariff-assignmentschargers:tariff-assignments + tariffs:readLista laddarens tarifftilldelningar.
POST/v2/admin/chargers/:chargerId/tariff-assignmentschargers:tariff-assignments + tariffs:assignTilldela en tariff.
PATCH/v2/admin/chargers/:chargerId/tariff-assignments/:assignmentIdchargers:tariff-assignments + tariffs:assignErsätt målet för en tilldelning.
DELETE/v2/admin/chargers/:chargerId/tariff-assignments/:assignmentIdchargers:tariff-assignments + tariffs:assignTa bort en tilldelning.

En tariffkropp innehåller name, exakt ett av currencyId, currencyCode eller currency, valfria biddingZoneId och tax. En tilldelningskropp är:

{ "tariffId": 17, "connectorId": 0 }

När en tilldelning skapas tillämpas tariffen på alla fysiska kontakter om connectorId utelämnas eller uttryckligen sätts till 0. Uppdateringar gäller en sparad tilldelning och kräver därför ett uttryckligt positivt fysiskt connectorId; 0 avvisas.

En komponent innehåller typeId, seasonId och price. Den kan även ha priority samt giltighetsgränser för månad, veckodag och timme.

Laddprofiler

MetodSökvägObligatoriskt behörighetsområdeSyfte
GET/v2/admin/charging-profileschargingProfiles:readLista profiler och tillhörande uppslagsvärden.
POST/v2/admin/charging-profileschargingProfiles:createSkapa en profil med ett valfritt schema.
GET/v2/admin/charging-profiles/:profileIdchargingProfiles:readLäs en egen profil.
PATCH/v2/admin/charging-profiles/:profileIdchargingProfiles:updateErsätt profilmetadata.
PUT/v2/admin/charging-profiles/:profileId/schedulechargingProfiles:updateErsätt schemat med 1–256 perioder.
DELETE/v2/admin/charging-profiles/:profileIdchargingProfiles:deleteRensa installerade tilldelningar och ta bort först efter accepterade OCPP-resultat och förnyad validering.
GET/v2/admin/chargers/:chargerId/profile-assignmentschargers:profile-assignments + chargingProfiles:readLista laddarens profiltilldelningar.
POST/v2/admin/chargers/:chargerId/profile-assignmentschargers:profile-assignments + chargingProfiles:assignTilldela och synkronisera en profil.
PATCH/v2/admin/chargers/:chargerId/profile-assignments/:assignmentIdchargers:profile-assignments + chargingProfiles:assignErsätt och synkronisera en tilldelning.
DELETE/v2/admin/chargers/:chargerId/profile-assignments/:assignmentIdchargers:profile-assignments + chargingProfiles:assignRensa och ta bort en tilldelning.

Profilens metadatafält är label, locationId, stackLevel, purposeId, kindId, valfria recurrencyKindId, validFrom, validTo, startSchedule, rateUnitId och valfria minChargingRate. En schemaperiod innehåller startPeriod, limit och valfria numberOfPhases. En tilldelningskropp innehåller profileId och connectorId (standard 0).

Borttagning av profiler och ersättning av effektstyrning kan invänta laddarens bekräftelse. Ett avslag, en timeout eller en samtidig tillståndsändring returnerar en konflikt och behåller databaskonfigurationen i stället för att anta att laddaren rensats.

Användare, inbjudningar, RFID, åtkomst och gränser

MetodSökvägObligatoriskt behörighetsområdeSyfte
GET/v2/admin/usersusers:readLista medlemmar och inbjudningar.
POST/v2/admin/usersusers:createKoppla en redan registrerad kund via email och arbetsytans name.
POST/v2/admin/users/invitationsusers:invitations + users:access; även users:rfid när RFID angesBjud in en okänd e-postadress eller koppla en befintlig kund.
POST/v2/admin/users/invitations/resendusers:invitationsSkicka om med { "email": "..." }, med hänsyn till mottagarens väntetid.
DELETE/v2/admin/users/invitationsusers:invitationsAvbryt en inbjudan; e-postadressen ligger kvar i JSON-kroppen.
GET/v2/admin/users/:userIdusers:read + reports:readLäs användaruppgifter och avgränsade sessionstotaler.
PATCH/v2/admin/users/:userIdusers:updateAnge arbetsytans visningsnamn name.
DELETE/v2/admin/users/:userIdusers:deleteTa bort medlemmen och relaterad arbetsyteåtkomst med hänsyn till konflikter.
GET/v2/admin/users/:userId/vehiclesusers:readLista egna fordon.
GET/v2/admin/users/:userId/rfidsusers:readLista RFID-metadata med maskerade UID:n.
POST/v2/admin/users/:userId/rfidsusers:rfidLägg till uid och valfria name; svar visar endast maskerat UID.
PATCH/v2/admin/users/:userId/rfids/:rfidIdusers:rfidUppdatera RFID-etiketten.
DELETE/v2/admin/users/:userId/rfids/:rfidIdusers:rfidTa bort en RFID och synkronisera berörda laddare.
GET/v2/admin/users/:userId/accessusers:readLäs laddaråtkomst.
PUT/v2/admin/users/:userId/accessusers:accessErsätt åtkomst med allChargers och unika chargerIds.
DELETE/v2/admin/users/:userId/access/:accessIdusers:accessÅterkalla en åtkomstpost.
GET/v2/admin/users/:userId/limitsusers:readLista laddgränser.
POST/v2/admin/users/:userId/limitsusers:limitsSkapa limitTypeId, energyValue och/eller timeValue.
PATCH/v2/admin/users/:userId/limits/:limitIdusers:limitsUppdatera ett eller flera gränsfält.
DELETE/v2/admin/users/:userId/limits/:limitIdusers:limitsTa bort en gräns.
GET/v2/admin/chargers/:chargerId/local-userschargers:read + users:readLista laddarlokala användare och väntande inbjudningar.
POST/v2/admin/chargers/:chargerId/local-userschargers:local-users + users:accessLägg till ett befintligt customerId med valfria expiresAt.
POST/v2/admin/chargers/:chargerId/local-users/invitationschargers:local-users + users:invitations + users:accessLägg till eller bjud in via e-post.
DELETE/v2/admin/chargers/:chargerId/local-users/invitationschargers:local-users + users:invitationsAvbryt en inbjudan till lokal användare via e-post.
PATCH/v2/admin/chargers/:chargerId/local-users/:localUserIdchargers:local-users + users:accessAnge expiresAt, som får vara null.
DELETE/v2/admin/chargers/:chargerId/local-users/:localUserIdchargers:local-users + users:accessTa bort lokal åtkomst och synkronisera OCPP-tillståndet.

Sidindelning av fordon och användare med status=members använder en positiv numerisk cursor. Inbjudningssidor använder en ogenomskinlig i2.*-markör, medan status=all använder en ogenomskinlig sammansatt a2.*-markör efter första sidan; en numerisk markör är bara fortsatt giltig som fortsättning på den äldre medlemsströmmen. Användarsökning anges i anropsheadern X-Admin-User-Search så att e-postadresser inte hamnar i URL:er eller åtkomstloggar. limit är som standard 50 och begränsad till 100; användarlistning stöder status=all|members|invitations. Behandla alla returnerade markörer som ogenomskinliga och skicka tillbaka dem oförändrade.

Direkt användarskapande skapar inte lösenord, inloggningsidentitet eller session. Det kopplar bara en redan registrerad kund. Använd inbjudningsendpointen för en okänd e-postadress. Den skyddade Tagless-systemanvändaren kan inte ändras via dessa rutter.

Exempel

Ange värden i skalet utan att skriva ut token:

export ADMIN_API_BASE_URL="https://api.example.com"
export WORKSPACE_TOKEN="<read from secret manager>"

Lista platser:

curl --fail-with-body \
  -H "Authorization: Bearer ${WORKSPACE_TOKEN}" \
  "${ADMIN_API_BASE_URL}/v2/admin/sites"

Skapa en plats säkert:

curl --fail-with-body \
  -X POST \
  -H "Authorization: Bearer ${WORKSPACE_TOKEN}" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: site-main-depot-v1" \
  --data '{
    "name":"Main depot",
    "description":null,
    "addressLine1":"1 Example Street",
    "addressLine2":null,
    "postalCode":"LV-1001",
    "city":"Riga",
    "state":null,
    "countryId":1,
    "timezoneId":1,
    "latitude":56.9496,
    "longitude":24.1052
  }' \
  "${ADMIN_API_BASE_URL}/v2/admin/sites"

Ladda ned en CSV-rapport för ett uttryckligt UTC-intervall:

curl --fail-with-body \
  -H "Authorization: Bearer ${WORKSPACE_TOKEN}" \
  -o report.csv \
  "${ADMIN_API_BASE_URL}/v2/admin/reports/export?format=csv&from=2026-07-01T00%3A00%3A00Z&to=2026-08-01T00%3A00%3A00Z"

Avsiktliga undantag

API:et för arbetsytetoken exponerar inte åtgärder som kräver en mänsklig identitet eller vidare befogenheter. Dessa omfattar:

  • skapa, visa, byta eller återkalla token med en annan token;
  • inloggning, lösenordsåterställning, sessioner, delegering av mänskliga roller eller privilegier samt ändringar av arbetsytans ägare;
  • skapande/borttagning av arbetsyta och medlemskap i faktureringskonto;
  • betalningsinställningar, Stripe-registrering, planer, fakturor och värdfakturering;
  • värdövergripande supportåtgärder och leverantörswebhooks;
  • meddelanden till personer, navigeringsomdirigeringar, varumärkesresurser och utvecklings-/testrutter.