Read the team's self-serve CSMS trial status
get/v1/teams/{team_id}/self-serve
Requires an API key
Any member of the team, and Ivora staff: whether the team may enable CSMS access itself (a usable card on file), its place in the trial or on the waitlist, its charger cap and usage, and the features that wait for Ivora's review.
Path parameters
- team_idstringRequiredPattern
^team_[0-9a-f]{32}$
Returns · 200
- team_idstringRequired
- trial_enabledbooleanRequiredWhether new teams may enable CSMS access themselves here now. Teams already in the trial keep their limits either way.
- stateenum | nullRequiredactive: CSMS access is on, with the charger cap, review-gated features and rate limits. waitlisted: the trial is full; the team waits in order (waitlist_position). reviewed: Ivora reviewed the team and lifted the cap and gates. suspended: Ivora turned its CSMS access off. null: the team never enrolled.One of
active,waitlisted,reviewed,suspended - csms_enabledbooleanRequired
- enabled_viaenum | nullRequiredOne of
staff,inherited,self_serve - card_okbooleanRequiredWhether the team has a usable card on file (billing status active: not expired, nothing overdue, not suspended).
- billing_statusstringRequiredThe team's usage-fee status, as the billing profile's status.
- waitlist_positioninteger | nullRequired1 for the next team to join, while waitlisted.
- charger_capinteger | nullRequiredStations the team may have across its projects until Ivora reviews it; null when not capped.
- chargersinteger | nullRequiredStations the team has now (counted up to one past the cap), while capped; null otherwise or when the charging core could not be read.
- review_gatedarray of stringRequiredFeatures that wait for Ivora's review while the team is capped: ocpi_publish, ocpp_domain, payment_domain, qr_domain, enterprise_invoicing, migration.
- review_requested_atstring | nullRequired
- requested_atstring | nullRequired
- enabled_atstring | nullRequired
- reviewed_atstring | nullRequired
- suspended_atstring | nullRequired
- team_limitintegerRequiredTeams the trial takes; later ones are waitlisted.
- slots_usedintegerRequiredTeams that took a place in the trial so far (active, reviewed and suspended).
GET /v1/teams/{team_id}/self-serve
curl --fail-with-body "https://api.ivoracharge.com/v1/teams/team_0123456789abcdef0123456789abcdef/self-serve" \
-H "Authorization: Bearer $IVORA_API_KEY"Response · 200JSON
{
"team_id": "team_0123456789abcdef",
"trial_enabled": false,
"state": "active",
"csms_enabled": false,
"enabled_via": "staff",
"card_ok": false,
"billing_status": "string",
"waitlist_position": 1,
"charger_cap": 1,
"chargers": 1,
"review_gated": [
"string"
],
"review_requested_at": "2026-09-30T17:00:00Z",
"requested_at": "2026-09-30T17:00:00Z",
"enabled_at": "2026-09-30T17:00:00Z",
"reviewed_at": "2026-09-30T17:00:00Z",
"suspended_at": "2026-09-30T17:00:00Z",
"team_limit": 1,
"slots_used": 1
}Requires an approved production API keyProduction access starts with a request, a short meeting with Ivora and a card on file, after which Ivora staff grant your account access. How to request access
Try itproduction · api.ivoracharge.com
Paste a production api key (iv_live_…). Create keys in Developer tools. The key stays in this page's memory, is sent only to https://api.ivoracharge.com and clears when you reload. Test keys are refused.



