API pro správu pracovního prostoru
API pro správu pracovního prostoru umožňuje integracím server–server spravovat jeden pracovní prostor EVCharge. Tato dokumentace je určena správcům pracovních prostorů a externím integrátorům API. Používá odvolatelné přístupové tokeny vázané na pracovní prostor a podrobné rozsahy; zákaznické přihlašovací tokeny ani relace prohlížeče nejsou přijímány.
Tento adresář je autoritativní vývojářskou referencí API /v2/admin implementovaného v app-api. Nepopisuje zákaznické/mobilní trasy ani vlastní HTTP trasy portálu správce.
- Požadavky a odpovědi endpointů uvádějí všech 87 registrovaných endpointů, rozsahy, parametry, těla požadavků a úspěšná těla.
- Schémata a příklady definují opakovaně použitelné typy požadavků/odpovědí a reprezentativní těla JSON.
- Kontrakt odpovědí a chyb definuje každé sdílené a specifické neúspěšné tělo.
Základní URL a hranice zdrojů
Všechny cesty jsou relativní k nasazenému originu app-api:
https://api.evcharge.mobi/v2/admin/...
ID pracovního prostoru se nepřijímá v URL, řetězci dotazu ani těle požadavku. Každý přístupový token je vázán právě na jeden pracovní prostor a API odvozuje cpoId z ověřené identity tokenu. Pokud vnořená lokalita, nabíječka, uživatel, tarif, profil, přiřazení nebo transakce do tohoto prostoru nepatří, API vrátí stejnou odpověď 404 RESOURCE_NOT_FOUND, která neumožňuje zjišťovat existenci prostředků.
Získání přístupového tokenu
Tokeny vytváří lidský správce pracovního prostoru v jeho nastavení v části Přístup API. Správa tokenů záměrně není dostupná tokenům pracovního prostoru.
- Přístup API je součástí všech balíčků včetně Free. Správce musí mít oprávnění upravovat pracovní prostor.
- Hostitel pracovního prostoru musí povolit Admin API pomocí
adminApiEnabled; jinak platný token obdrží zapp-apiodpověď404, která neprozrazuje existenci prostředků. - Správce může udělit pouze rozsahy povolené jeho aktuálními oprávněními a nároky pracovního prostoru.
- Nové tokeny mohou být bez expirace, což je výchozí v nastavení, nebo mít správcem zvolenou platnost 1–365 celých dní. Server vypočítá absolutní konec platnosti. Neomezené tokeny platí do zrušení.
- Pracovní prostor může mít nejvýše 50 aktivních tokenů.
- Přihlašovací údaj v otevřeném textu se zobrazí jednou. Okamžitě jej uložte do správce tajných údajů.
- Název, rozsahy a platnost jsou neměnné. Pro rotaci vytvořte náhradu, nasaďte ji, ověřte a starý token zrušte.
- Odvolání je okamžité; odvolané řádky zůstávají viditelné jako neměnná historie pracovního prostoru se skrytými citlivými údaji. Neexistuje endpoint pro introspekci bearer tokenů ani trvalé smazání.
app-api nemá endpoint, který tyto přihlašovací údaje vydává, obnovuje, vypisuje nebo odvolává. Získání tokenu je proto předpokladem prováděným v lidském portálu správce, nikoli dalším endpointem této reference.
Token nikdy nedávejte do repozitáře, URL, dotazů, cookies, logů, analytiky nebo chybových hlášení.
Ověření identity
V každém požadavku odešlete právě jednu hlavičku ve stylu RFC 6750:
Authorization: Bearer evc_ws_<selector>.<secret>
Přesný neprůhledný přihlašovací údaj je evc_ws_ následovaný 16znakovým kanonickým selektorem base64url, . a 43znakovým kanonickým tajemstvím base64url. Odešlete celý údaj beze změny; znovu jej nekódujte pomocí base64.
API odmítá duplicitní autorizační hlavičky, hodnoty spojené čárkou, jiná schémata, prázdné bearer hodnoty, zákaznické JWT a přihlašovací údaje předané kdekoli mimo tuto hlavičku.
Chybné, neznámé, prošlé, zrušené či jinak neplatné tokeny dostávají stejnou odpověď:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer
Cache-Control: no-store
Content-Type: application/json
{
"error": "Unauthorized",
"code": "INVALID_WORKSPACE_TOKEN"
}
Služba při každém požadavku ověřuje stav tokenu a aktuální nároky pracovního prostoru. Odebrání nároku tak může vypnout dotčené rozsahy před vypršením tokenu.
Tokeny pracovního prostoru jsou neprůhledné přihlašovací údaje, nikoli JWT. Nemají obnovovací token a neexistuje obnovovací endpoint. Token s omezenou platností přestane ověřovat v absolutním čase expiresAt; token bez vypršení platí do odvolání. Rotace znamená vytvořit náhradní přihlašovací údaj v portálu, nasadit jej klientovi a starý odvolat.
Konvence požadavků
- Pro požadavky s tělem JSON použijte
Content-Type: application/json. - Volitelné hodnoty požadavku
X-Request-Idse oříznou a přijmou pouze tehdy, obsahují-li 1–128 znaků zA-Z,a-z,0-9,.,_,:nebo-; jinak server vygeneruje UUID. Každá odpověď vrací vybranou hodnotu jakoX-Request-Id. - Volitelné
X-Error-Format: envelopepřevádí každou chybovou odpověď JSON na strukturovanou obálku popsanou v Kontraktu odpovědí a chyb. Jakákoli jiná hodnota zachovává výchozí kompatibilní tělo. - ID v cestách jsou kladná celá čísla. ID přístupových tokenů z portálu jsou desetinné řetězce, protože jde o nezáporné 64bitové hodnoty databáze.
- Datum a čas jsou řetězce RFC 3339 s explicitním posunem, například
2026-08-13T12:30:00Z. - Úspěšná smazání obvykle vracejí
204 No Content. - Vytváření obvykle vrací
201 Created. - Pouze zařazená práce OCPP může vrátit
202 Accepted; nepovažujte to za potvrzení nabíječkou, pokud to odpověď výslovně neříká. - Ověřené odpovědi používají
Cache-Control: no-store. Endpointy QR a exportu vracejí binární těla s explicitními hlavičkami obsahu. - Povolené originy prohlížeče mohou přes CORS číst
X-Request-Id,Idempotency-Replayed,Retry-AfteraContent-Disposition. Klienti tak propojí požadavky, odhalí idempotentní opakování, dodrží čekání a zachovají názvy souborů zvolené serverem.
Idempotence
Všechny administrační požadavky POST, PUT, PATCH a DELETE musí obsahovat jednu hlavičku Idempotency-Key. Klíče mají 1–255 viditelných znaků a vztahují se k tokenu, metodě a cestě.
Idempotency-Key: provisioning-2026-08-13-site-42
Opětovné použití dokončeného klíče se stejnou URL a tělem přehraje uloženou odpověď a přidá:
Idempotency-Replayed: true
Opětovné použití klíče s jiným požadavkem vrací 409 IDEMPOTENCY_CONFLICT. Dosud zpracovávaný požadavek vrací 409 IDEMPOTENT_REQUEST_PROCESSING s Retry-After: 5.
Dokončené odpovědi a konečné výsledky se uchovávají pro opakování či odsouhlasení sedm dní od poslední změny. Poté může stejný klíč znamenat nový příkaz. Klienti proto musí používat globálně jedinečné klíče a nesmějí je záměrně recyklovat.
Když vyprší zámek zpracování, spojení skončí po zahájení nebo operace vrátí chybu serveru, API nemůže bezpečně prokázat vnější účinek. Během sedmidenního uchování je klíč konečně neurčitý a vrací 409 IDEMPOTENCY_OUTCOME_UNKNOWN; znovu se nepřebírá ani automaticky nespouští. Před ruční obnovou ověřte účinky a do dokončení odsouhlasení neposílejte stejnou operaci s novým klíčem.
Všechny měnící administrační endpointy včetně POST /reports/send vyžadují Idempotency-Key.
Limity požadavků
Limity platí pro token i jeho prostor. Výchozí hodnoty v repozitáři jsou:
| Limit | Výchozí |
|---|---|
| Časové okno | 60 sekund |
| Na token | 300 požadavků |
| Na pracovní prostor | 1 000 požadavků |
Požadavek omezený limitem vrací 429 Too Many Requests a hlavičku Retry-After. Nasazení mohou tyto hodnoty změnit.
Chyby
Chyby JSON používají stabilní code, podle něhož se má volající větvit:
{
"error": "Insufficient workspace-token scope",
"code": "INSUFFICIENT_SCOPE"
}
Chyby ověření používají pole polí:
{
"validationErrors": {
"name": ["String must contain at least 1 character(s)"]
}
}
Běžné stavy jsou:
| Stav | Význam |
|---|---|
400 | Neplatný kontrakt idempotence/kurzoru uživatelů/geokodéru; chyby schémat cesty/těla/dotazu jsou obvykle 422 |
401 | Neplatný token prostoru |
403 | Platný token bez požadovaného účinného rozsahu nebo nároku |
404 | Pracovní prostor nebo vnořený prostředek není pro tento token viditelný |
409 | Konflikt stavu prostředku, závislosti, souběhu nebo idempotence |
422 | Chyba validace pole, omezeného rozsahu nebo limitu exportu |
429 | Překročen limit požadavků tokenu nebo pracovního prostoru |
502 | Navazující operace, například doručení reportu, selhala |
503 | Úložiště autorizace nebo idempotence je dočasně nedostupné |
Katalog rozsahů
Následující katalog rozsahů se používá při vytváření tokenu správcem. Rozsah zápisu nebo s vysokým dopadem může zahrnovat odpovídající rozsah čtení, ale rozsahy čtení nikdy neudělují zápis. Dostupné rozsahy závisí na oprávněních správce a zapnutých funkcích pracovního prostoru.
| Doména | Rozsahy čtení | Rozsahy zápisu a s vysokým dopadem | Dodatečný nárok, pokud je vyžadován |
|---|---|---|---|
| Pracovní prostor | workspaces:read | workspaces:update | — |
| Lokality | sites:read | sites:create, sites:update, sites:delete, sites:power-management | dlmPowerManagement pro řízení výkonu |
| Nabíječky | chargers:read | chargers: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-assignments | firmwareOperations, publicCharging, tariffs nebo smartCharging pro odpovídající schopnost |
| Uživatelé | users:read | users:create, users:update, users:delete, users:invitations, users:rfid, users:access, users:limits | — |
| Nabíjecí profily | chargingProfiles:read | chargingProfiles:create, chargingProfiles:update, chargingProfiles:delete, chargingProfiles:assign | smartCharging |
| Tarify | tariffs:read | tariffs:create, tariffs:update, tariffs:delete, tariffs:components, tariffs:assign | tariffs |
| Přehledy | reports:read | reports:export, reports:schedules, reports:send | scheduledReports pro rozvrhy a okamžité odeslání |
Samotný přístup API je v každém balíčku a řídí ho nastavení hostitele adminApiEnabled. Dodatečné funkční nároky výše stále platí; API neuděluje funkce mimo balíček pracovního prostoru.
Reference endpointů
Níže uvedené tabulky uvádějí všech 87 tras pro správu pracovního prostoru. Více rozsahů v buňce znamená, že jsou vyžadovány všechny.
Pracovní prostor
| Metoda | Cesta | Požadovaný rozsah | Účel |
|---|---|---|---|
GET | /v2/admin | workspaces:read | Načte bezpečná metadata pracovního prostoru a číselníky. |
PATCH | /v2/admin | workspaces:update | Aktualizuje jedno či více polí metadat pracovního prostoru. |
GET | /v2/admin/dashboard | workspaces:read + reports:read | Načte omezené počty pracovního prostoru a provozní souhrny za 90 dní. |
Pole dílčí úpravy pracovního prostoru: name, email, website, addressLine1, addressLine2, postalCode, city, state a countryId. Je vyžadováno alespoň jedno pole. Prázdné řetězce umožňující null se normalizují na null.
Lokality a řízení výkonu
| Metoda | Cesta | Požadovaný rozsah | Účel |
|---|---|---|---|
GET | /v2/admin/sites | sites:read | Vypište lokality s ohraničenými 90denními souhrny a referenčními údaji. |
GET | /v2/admin/sites/geocode | sites:read | Vyhledá normalizované návrhy adres lokality prostřednictvím sdíleného geokodéru s omezením požadavků a mezipamětí. |
POST | /v2/admin/sites | sites:create | Vytvořte lokalitu. |
GET | /v2/admin/sites/:siteId | sites:read + reports:read | Načte podrobnosti lokality, poslední relace, součty a provozní souhrny. |
PATCH | /v2/admin/sites/:siteId | sites:update | Nahradí upravitelný dokument lokality. |
DELETE | /v2/admin/sites/:siteId | sites:delete | Smažte prázdnou lokalitu; závislosti vracejí konflikt. |
GET | /v2/admin/sites/:siteId/power-management | sites:power-management | Načte strom dynamického řízení zatížení lokality. |
PUT | /v2/admin/sites/:siteId/power-management | sites:power-management | Atomicky nahraďte nastavení řízení výkonu lokality. |
Těla pro vytvoření a dílčí úpravu lokality používají:
{
"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
}
Geokódování lokalit přijímá volitelná pole dotazu street, city, state, country a dvoupísmenné countryCode a hlavičku požadavku Accept-Language. Hledání kombinující ulici/město/stát musí obsahovat alespoň dva znaky. Odpovědi obsahují pouze placeId, displayName, latitude a longitude; přihlašovací údaje poskytovatele ani jeho specifická metadata se nezpřístupňují. Server používá sdílenou frontu poskytovatele s jedním požadavkem za sekundu, osmivteřinový časový limit, omezenou 24hodinovou mezipaměť a globální limity tokenů pracovních prostorů.
Řízení výkonu přijímá { "pools": [...] }. Skupina má id, name, limit, volitelné meterSources a rekurzivní children. Podřízená nabíječka má chargepointId a priority. API omezuje velikost stromu i počet elektroměrů a při nahrazení nainstalovaného stavu provádí dvoufázové vymazání OCPP a opětovné ověření. Odmítnutá změna, vypršení časového limitu nebo souběžný konflikt vrací 409 POWER_MANAGEMENT_CONFLICT a zachovává předchozí konfiguraci.
Nabíječky
| Metoda | Cesta | Požadovaný rozsah | Účel nebo vstup |
|---|---|---|---|
GET | /v2/admin/chargers | chargers:read | Vypište nabíječky se stavem a ohraničenými souhrny energie/nákladů. |
POST | /v2/admin/chargers | chargers:create | Vytvoří z name, identifier a siteId; password je volitelné. |
GET | /v2/admin/chargers/:chargerId | chargers:read | Načte údaje o nabíječkách, EVSE, konektorech, číselnících a stavech. |
PATCH | /v2/admin/chargers/:chargerId | chargers:update | Aktualizuje name, siteId, invertedRfid, smartMode nebo automationDisabled. |
DELETE | /v2/admin/chargers/:chargerId | chargers:delete | Smažte nabíječku při dodržení závislostí a pravidel účtování. |
PATCH | /v2/admin/chargers/:chargerId/credentials | chargers:credentials | Nahradí heslo nabíječky hodnotou { "password": "..." }. |
PATCH | /v2/admin/chargers/:chargerId/connectors/:portId | chargers:connector-settings | Aktualizuje formát/typ konektoru, typ napájení, napětí, proud a výkonové limity. |
PATCH | /v2/admin/chargers/:chargerId/public-listing | chargers:public | Nastavte `{ "isPublic": true |
GET | /v2/admin/chargers/:chargerId/public-readiness | chargers:read | Načte připravenost k veřejnému nabíjení a chybějící požadavky. |
GET | /v2/admin/chargers/:chargerId/logs | chargers:read | Načte logy OCPP s odstraněnými citlivými údaji a stránkováním pomocí kurzoru. |
GET | /v2/admin/chargers/:chargerId/sessions | chargers:read + reports:read | Načte stránkované nabíjecí relace a součty. |
GET | /v2/admin/chargers/:chargerId/qr | chargers:read | Vykreslí QR kód jako PNG o velikosti 300 pixelů; volitelné connector=0..255. |
GET | /v2/admin/chargers/:chargerId/composite-schedules | chargers:read | Načte uloženou historii složených rozvrhů. |
GET | /v2/admin/chargers/:chargerId/configuration | chargers:read | Načte konfiguraci OCPP se skrytými citlivými hodnotami. |
PATCH | /v2/admin/chargers/:chargerId/configuration | chargers:configuration | Odešle změnu konfigurace s key a value. |
POST | /v2/admin/chargers/:chargerId/configuration/reload | chargers:configuration | Vyžádá aktuální konfiguraci nabíječky. |
GET | /v2/admin/chargers/:chargerId/firmware | chargers:read | Načte aktuální firmware a stav aktualizace. |
POST | /v2/admin/chargers/:chargerId/firmware | chargers:firmware | Zařadí aktualizaci z HTTP(S) { "url": "..." } do fronty. |
POST | /v2/admin/chargers/:chargerId/commands/reset | chargers:commands | Odešlete `{ "resetType": "Soft" |
POST | /v2/admin/chargers/:chargerId/commands/availability | chargers:commands | Odešlete `{ "availabilityType": "Operative" |
POST | /v2/admin/chargers/:chargerId/commands/trigger | chargers:commands | Spustí BootNotification, Heartbeat, StatusNotification nebo MeterValues. |
POST | /v2/admin/chargers/:chargerId/commands/unlock | chargers:commands | Odemkne kladné connectorId. |
POST | /v2/admin/chargers/:chargerId/commands/composite-schedule | chargers:commands | Vyžádá složený rozvrh pro connectorId, durationSeconds a chargingRateUnit. |
Parametry logů jsou cursor, limit (výchozí 50, maximum 200), from, to, action, direction a levelId. Parametry relací jsou page, limit (výchozí 25, maximum 100), from, to a customerId (kladné ID nebo unknown). Historie složeného rozvrhu používá cursor, limit (výchozí 20, maximum 50) a volitelné connectorId.
Přehledy
| Metoda | Cesta | Požadovaný rozsah | Účel |
|---|---|---|---|
GET | /v2/admin/reports/data | reports:read | Načte filtrovaná data přehledu nabíjecích relací se stránkováním pomocí kurzoru. |
GET | /v2/admin/reports/measurements | reports:read | Načte omezený rozsah měření pro vlastněnou transakci. |
GET | /v2/admin/reports/export | reports:export | Stáhněte export CSV nebo PDF. |
GET | /v2/admin/reports/schedule | reports:read | Načte rozvrh exportu vlastněný pracovním prostorem nebo null. |
PUT | /v2/admin/reports/schedule | reports:schedules | Vytvořte nebo nahraďte plán exportu patřící prostoru. |
POST | /v2/admin/reports/send | reports:send | Odešlete uložený export předchozího kalendářního měsíce UTC e-mailem; povinný idempotentní klíč. |
Filtry dat přehledu a exportu jsou from, to, siteId, chargerId, userId, anonymous a active. from/to mají výchozí rozsah posledních 90 dní a nesmějí pokrýt více než 90 dní. userId nelze kombinovat s anonymous=true.
- Stránkování dat: neprůhledné
cursor, výchozílimit=50, maximum 100. - Měření: povinné
transactionLogId, neprůhlednécursor, výchozílimit=500, maximum 1 000. - Export:
format=csv|pdf, výchozícsv, pevný limit 2 000 řádků. - Odpovědi exportu používají
Content-Disposition: attachment,Cache-Control: private, no-storeaX-Content-Type-Options: nosniff.
Tělo rozvrhu:
{
"enabled": true,
"recipientEmail": "reports@example.com",
"format": "csv",
"sendDay": 5,
"sendTime": "08:30"
}
sendDay je 1–28 a sendTime se interpretuje v UTC. Plánovač dohání zmeškanou plánovanou minutu během aktuálního měsíce doručení. Sestavení, která selžou před předáním, se opakují po 5 a 10 minutách, přerušené zpracování building lze převzít po 30 minutách a automatické doručování končí po třech pokusech. Plánovač uloží indeterminate těsně před předáním SMTP; stav indeterminate i starší sending jsou konečné, protože automatické opakování kteréhokoli by mohlo odeslat duplicitní přílohu. Provozovatelé musí tyto výsledky ručně vyřešit před změnou stavu rozvrhu. Každý cyklus vybere nejvýše deset rozvrhů, po 45sekundovém rozpočtu přestane spouštět práci a používá omezené časové limity SMTP. Úloha je ve výchozím stavu vypnutá a musí být výslovně zapnuta po ověření SMTP a kapacity. Rozvrh API vlastní pracovní prostor a nepoužívá identitu člověka, který vytvořil token.
Tarify
| Metoda | Cesta | Požadovaný rozsah | Účel |
|---|---|---|---|
GET | /v2/admin/tariffs | tariffs:read | Vypište tarify a referenční údaje. |
POST | /v2/admin/tariffs | tariffs:create | Vytvořte tarif. |
GET | /v2/admin/tariffs/:tariffId | tariffs:read | Načte jeden vlastněný tarif a jeho složky. |
PATCH | /v2/admin/tariffs/:tariffId | tariffs:update | Aktualizuje definici tarifu. |
PUT | /v2/admin/tariffs/:tariffId/components | tariffs:components | Atomicky nahraďte nejvýše 256 složek. |
DELETE | /v2/admin/tariffs/:tariffId | tariffs:delete | Smažte nepoužívaný tarif. |
GET | /v2/admin/tariffs/:tariffId/market-prices | tariffs:read | Načte ceny pro nabídkovou zónu vlastněnou tarifem od číselného startsAt. |
GET | /v2/admin/chargers/:chargerId/tariff-assignments | chargers:tariff-assignments + tariffs:read | Vypište přiřazení tarifů nabíječky. |
POST | /v2/admin/chargers/:chargerId/tariff-assignments | chargers:tariff-assignments + tariffs:assign | Přiřaďte tarif. |
PATCH | /v2/admin/chargers/:chargerId/tariff-assignments/:assignmentId | chargers:tariff-assignments + tariffs:assign | Nahradí cíl přiřazení. |
DELETE | /v2/admin/chargers/:chargerId/tariff-assignments/:assignmentId | chargers:tariff-assignments + tariffs:assign | Odstraní přiřazení. |
Tělo tarifu obsahuje name, právě jedno z currencyId, currencyCode nebo currency, volitelné biddingZoneId a tax. Tělo přiřazení je:
{ "tariffId": 17, "connectorId": 0 }
Při vytváření přiřazení se tarif použije pro všechny fyzické konektory, pokud je connectorId vynecháno nebo výslovně nastaveno na 0. Aktualizace mění jedno uložené přiřazení a vyžaduje explicitní kladný fyzický connectorId; 0 je odmítnuto.
Komponenta obsahuje typeId, seasonId, price, volitelné priority a volitelné meze platnosti podle měsíce, dne v týdnu a hodiny.
Nabíjecí profily
| Metoda | Cesta | Požadovaný rozsah | Účel |
|---|---|---|---|
GET | /v2/admin/charging-profiles | chargingProfiles:read | Vypište profily a vlastní referenční údaje. |
POST | /v2/admin/charging-profiles | chargingProfiles:create | Vytvořte profil s volitelným rozvrhem. |
GET | /v2/admin/charging-profiles/:profileId | chargingProfiles:read | Načte jeden vlastněný profil. |
PATCH | /v2/admin/charging-profiles/:profileId | chargingProfiles:update | Nahradí metadata profilu. |
PUT | /v2/admin/charging-profiles/:profileId/schedule | chargingProfiles:update | Nahradí rozvrh 1–256 obdobími. |
DELETE | /v2/admin/charging-profiles/:profileId | chargingProfiles:delete | Vymažte instalovaná přiřazení a smažte je až po přijatých výsledcích OCPP a opětovné kontrole. |
GET | /v2/admin/chargers/:chargerId/profile-assignments | chargers:profile-assignments + chargingProfiles:read | Vypište přiřazení profilů nabíječky. |
POST | /v2/admin/chargers/:chargerId/profile-assignments | chargers:profile-assignments + chargingProfiles:assign | Přiřaďte a synchronizujte profil. |
PATCH | /v2/admin/chargers/:chargerId/profile-assignments/:assignmentId | chargers:profile-assignments + chargingProfiles:assign | Nahradí a synchronizuje přiřazení. |
DELETE | /v2/admin/chargers/:chargerId/profile-assignments/:assignmentId | chargers:profile-assignments + chargingProfiles:assign | Vymažte instalovaný profil a odeberte přiřazení. |
Pole metadat profilu jsou label, locationId, stackLevel, purposeId, kindId, volitelné recurrencyKindId, validFrom, validTo, startSchedule, rateUnitId a volitelné minChargingRate. Období rozvrhu obsahuje startPeriod, limit a volitelné numberOfPhases. Tělo přiřazení obsahuje profileId a connectorId (výchozí 0).
Mazání profilů a nahrazení řízení výkonu může čekat na potvrzení nabíječky. Odmítnutí, vypršení časového limitu nebo souběžná změna stavu vrátí konflikt a ponechá konfiguraci v databázi místo předstírání, že byla nabíječka vymazána.
Uživatelé, pozvánky, RFID, přístup a limity
| Metoda | Cesta | Požadovaný rozsah | Účel |
|---|---|---|---|
GET | /v2/admin/users | users:read | Vypište členy a pozvání. |
POST | /v2/admin/users | users:create | Připojte registrovaného zákazníka podle email a pracovního prostoru name. |
POST | /v2/admin/users/invitations | users:invitations + users:access; také users:rfid, je-li předáno RFID | Pozvěte neznámý e-mail nebo připojte existujícího zákazníka. |
POST | /v2/admin/users/invitations/resend | users:invitations | Znovu odešle pomocí { "email": "..." }, s ohledem na čekací dobu příjemce. |
DELETE | /v2/admin/users/invitations | users:invitations | Zrušte pozvání; e-mail zůstává v JSON těle. |
GET | /v2/admin/users/:userId | users:read + reports:read | Načte podrobnosti uživatele a omezené součty relací. |
PATCH | /v2/admin/users/:userId | users:update | Nastaví zobrazované name specifické pro pracovní prostor. |
DELETE | /v2/admin/users/:userId | users:delete | Odebere člena a související přístup do pracovního prostoru, pokud tomu nebrání konflikty. |
GET | /v2/admin/users/:userId/vehicles | users:read | Vypište vlastněná vozidla. |
GET | /v2/admin/users/:userId/rfids | users:read | Vypište metadata RFID s maskovanými UID. |
POST | /v2/admin/users/:userId/rfids | users:rfid | Přidejte uid a volitelné name; odpovědi ukazují jen maskované UID. |
PATCH | /v2/admin/users/:userId/rfids/:rfidId | users:rfid | Aktualizuje štítek RFID. |
DELETE | /v2/admin/users/:userId/rfids/:rfidId | users:rfid | Smažte RFID a synchronizujte dotčené nabíječky. |
GET | /v2/admin/users/:userId/access | users:read | Načte oprávnění přístupu k nabíječce. |
PUT | /v2/admin/users/:userId/access | users:access | Nahradí přístup pomocí allChargers a jedinečného chargerIds. |
DELETE | /v2/admin/users/:userId/access/:accessId | users:access | Odvolá jeden řádek přístupu. |
GET | /v2/admin/users/:userId/limits | users:read | Vypište limity nabíjení. |
POST | /v2/admin/users/:userId/limits | users:limits | Vytvořte limitTypeId, energyValue a/nebo timeValue. |
PATCH | /v2/admin/users/:userId/limits/:limitId | users:limits | Aktualizuje jedno či více polí limitů. |
DELETE | /v2/admin/users/:userId/limits/:limitId | users:limits | Smažte limit. |
GET | /v2/admin/chargers/:chargerId/local-users | chargers:read + users:read | Vypište místní uživatele a čekající pozvání. |
POST | /v2/admin/chargers/:chargerId/local-users | chargers:local-users + users:access | Přidejte existující customerId s volitelným expiresAt. |
POST | /v2/admin/chargers/:chargerId/local-users/invitations | chargers:local-users + users:invitations + users:access | Přidejte nebo pozvěte e-mailem. |
DELETE | /v2/admin/chargers/:chargerId/local-users/invitations | chargers:local-users + users:invitations | Zrušte pozvání místního uživatele podle e-mailu. |
PATCH | /v2/admin/chargers/:chargerId/local-users/:localUserId | chargers:local-users + users:access | Nastaví expiresAt, které může být null. |
DELETE | /v2/admin/chargers/:chargerId/local-users/:localUserId | chargers:local-users + users:access | Odebere místní přístup a synchronizuje stav OCPP. |
Stránkování vozidel a uživatelů status=members používá kladné číselné cursor. Stránky pozvánek používají neprůhledný kurzor i2.*, zatímco status=all po první stránce používá neprůhledný složený kurzor a2.* (číselný kurzor zůstává platný pouze jako pokračování staršího proudu členů). Hledání uživatelů se předává v hlavičce požadavku X-Admin-User-Search, aby se e-maily neobjevovaly v URL ani přístupových lozích. limit má výchozí hodnotu 50 a maximum 100; seznam uživatelů podporuje status=all|members|invitations. Se všemi vrácenými kurzory zacházejte jako s neprůhlednými a vracejte je beze změny.
Přímé vytvoření uživatele nevytváří heslo, přihlašovací identitu ani relaci. Jen připojí registrovaného zákazníka. Pro neznámý e-mail použijte pozvání. Chráněného systémového uživatele Tagless těmito routami měnit nelze.
Příklady
Nastavte hodnoty v shellu bez vypsání tokenu:
export ADMIN_API_BASE_URL="https://api.example.com"
export WORKSPACE_TOKEN="<read from secret manager>"
Vypište lokality:
curl --fail-with-body \
-H "Authorization: Bearer ${WORKSPACE_TOKEN}" \
"${ADMIN_API_BASE_URL}/v2/admin/sites"
Vytvořte lokalitu bezpečně:
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"
Stáhněte report CSV pro explicitní období UTC:
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"
Záměrně vynechané operace
API tokenů pracovního prostoru nezpřístupňuje operace vyžadující lidskou identitu nebo širší pravomoc. Patří sem:
- vytváření, odhalování, rotace nebo odvolávání tokenů jiným tokenem;
- přihlášení, obnovení hesla, relace, delegování lidských rolí či oprávnění a změny vlastnictví pracovního prostoru;
- vytváření/mazání pracovních prostorů a členství ve fakturačním účtu;
- nastavení plateb, registrace Stripe, tarify služby, faktury a účtování hostitele;
- operace podpory pro celého hostitele a webhooky poskytovatelů;
- oznámení lidem, přesměrování navigace, podklady značky a vývojové/testovací trasy.