Create a team
Any signed-in user; you become its owner. A team holds projects, members and its own payment method. You create at most 5 teams (409 team_limit). CSMS access: the team inherits it when you own a team with CSMS access in good standing (a card on file, nothing overdue, not suspended), for up to 5 such teams; otherwise it starts without CSMS access (Data Tools only) until Ivora enables it, and creating projects answers 403 csms_not_enabled. Either way the team adds its own payment method before new CSMS setup and control. Replays with the same Idempotency-Key return the same team. Errors: 409 team_limit. See Errors and statuses.
Headers
- idempotency-keystringRequired
Request body
- namestringRequiredThe team's name, usually the company's.1–200 characters
Returns · 201
- idstringRequiredThe new team's ID.
- namestringRequired
- rolestringRequiredYou are its owner.
- csmsCsmsAccessRequired
Child attributes
- enabledbooleanRequiredWhether the team's projects reach the CSMS (chargers, sessions, billing and the project API). A team that is not enabled keeps Data Tools and can ask for access (Request access in the dashboard); until Ivora finishes moving personal access grants to teams, its members keep read access to its existing projects.
- enabled_viaenum | nullstaff: Ivora enabled the team. inherited: the team was created by the owner of an enabled team in good standing. self_serve: the owner enabled it in the self-serve CSMS trial (a charger cap and review-gated features until Ivora reviews it). null while not enabled.One of
staff,inherited,self_serve - inherited_fromstring | nullThe enabled team it inherited from (enabled_via inherited).
- self_serveenum | nullThe team's place in the self-serve CSMS trial (GET /v1/teams/{team_id}/self-serve), null when it never enrolled.One of
active,waitlisted,reviewed,suspended - changed_atstring | null
- changed_bystring | null
- reasonstring | nullWhy the access last changed.
- csms_inheritanceenumRequiredinherited: CSMS access is on because you own an enabled team in good standing (a card on file, nothing overdue, not suspended). inherited_limit: you already have 5 inherited-enabled teams, so this one waits for Ivora to approve it. not_eligible: you own no enabled team in good standing; ask Ivora for access.One of
inherited,inherited_limit,not_eligible - payment_method_requiredbooleanRequiredAlways true: a new team adds its own payment method (the card you already use is fine) before new CSMS setup and control.
- created_atstringRequired
curl --fail-with-body -X POST "https://api.ivoracharge.com/v1/teams" \
-H "Authorization: Bearer $IVORA_API_KEY" \
-H "Idempotency-Key: order-2026-09-30-0001" \
-H "Content-Type: application/json" \
-d '{
"name": "bay-01"
}'{
"id": "id_0123456789abcdef",
"name": "bay-01",
"role": "owner",
"csms": {
"enabled": false,
"enabled_via": "staff",
"inherited_from": "string",
"self_serve": "active",
"changed_at": "2026-09-30T17:00:00Z",
"changed_by": "string",
"reason": "string"
},
"csms_inheritance": "inherited",
"payment_method_required": false,
"created_at": "2026-09-30T17:00:00Z"
}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.
POST is a write: you confirm the method, path and project before it is sent, with a generated Idempotency-Key.



