canonical: https://jentic.com/apis/nexagrids.dev/nexagrids

# Nexagrids User Manager API

The NexaGrids User Manager API manages the users, administrators, operators, roles, and sites behind the NexaGrids EV charging platform. Its web endpoints let an app user read and update their profile, including car_brand and car_number, change their password, or check whether their account can be deleted, and they let site administrators list a site's users, add a user to a site, and grant or revoke public charge point access. Operator panel endpoints invite, update, and remove operators across sites, while internal service routes cover operator companies, contacts, site assignments, delegations, and Auth0 login and registration triggers. Every response uses a meta and data envelope, with meta.code set to 0 on success.

## For AI agents

List and update NexaGrids site users and their public charge point access, invite and manage site administrators and operators, read roles and permissions, and maintain user profiles.

## Scope

Does not control chargers, start charging sessions, process payments, or issue login tokens. Use for managing NexaGrids users, administrators, operators, roles, and site access only.

## Capabilities

- List a site's users with filters such as has_private_charge_point, can_use_public_charge_point, and joined_reason
- Grant or revoke a site user's public charge point access with can_use_public_charge_point
- Invite site administrators with email and role_id, and resend or cancel their invitations
- Create, update, and remove operators with role_id and site_ids, and resend or cancel operator invitations
- Read and update an app user's profile, including car_brand and car_number, and change their password
- Read the roles and permissions list and look up a user or administrator by email
- Maintain operator companies with name and vat_number, contacts, site assignments, and delegations through internal routes

## Use cases

### Site access admin agent through Jentic

A site manager's agent handles access requests for a charging location. It searches Jentic for 'list users at a charging site', receives the site users operation schema, and lists users at one site_id filtered by can_use_public_charge_point. When a request comes in it calls the site user update with can_use_public_charge_point set to true or false, so access changes are made without opening the admin backend.

Example prompt: Call GET `/web/admin_backend/sites/{site_id}/users` with site_id=12 and can_use_public_charge_point=false, then PATCH `/web/admin_backend/sites/{site_id}/users/{user_id}` with can_use_public_charge_point=true for the requested user

### Administrator and operator onboarding

New staff need the right role at the right site. POST `/web/admin_backend/sites/{site_id}/administrators` invites an administrator with email and role_id, and POST `/web/operator_panel/operators` invites an operator with email, role_id, and site_ids. Both have invitation resend and cancel operations, and GET `/web/roles` lists the roles and permissions to choose from.

Example prompt: Call GET `/web/roles` to find the role_id for 'site manager', then POST `/web/admin_backend/sites/{site_id}/administrators` with email='lee@example.com' and that role_id

### Driver self-service profile updates

EV drivers using the NexaGrids app can keep their details current. PATCH `/web/info` updates fields such as first_name, phone_number, address, car_brand, and car_number, PATCH `/web/change_password` sets a new password, and GET `/web/deletion_check` reports whether the account can be deleted before DELETE `/web/self` is called.

Example prompt: Call PATCH `/web/info` with car_brand='Tesla' and car_number='ABC-1234', then GET `/web/info` to confirm the change

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/web/admin_backend/sites/{site_id}/users` | List a site's users |
| PATCH | `/web/admin_backend/sites/{site_id}/users/{user_id}` | Update a site user's public charge point access |
| POST | `/web/admin_backend/sites/{site_id}/administrators` | Invite a site administrator |
| GET | `/web/operator_panel/operators` | List operators |
| POST | `/web/operator_panel/operators` | Create an operator |
| GET | `/web/roles` | List roles and permissions |
| PATCH | `/web/info` | Update the app user's profile |

## Key resources

- **App users (web)** — Read and update the signed-in user's profile, change password, check deletion eligibility, and delete the account
- **Site users and administrators** — List, add, and update site users; invite, update, resend, and cancel site administrators
- **Operators** — List, invite, update, and remove operators and manage their invitations and sites
- **Roles and settings** — Read roles and permissions; read and update admin settings
- **Internal services** — Service-to-service routes for users, admins, operators, operator companies, contacts, sites, assignments, and delegations
- **Auth0 triggers** — Pre-registration, post-registration, and login hooks for app users and administrators

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 47 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 77 / 100
  - Developer Experience & Jentic Compatibility: 53 / 100
  - AI-Readiness & Agent Experience: 25 / 100
  - Agent Usability: 87 / 100
  - Security: 75 / 100
  - AI Discoverability: 52 / 100
- **View full report:** https://jentic.com/apis/nexagrids.dev/nexagrids/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring NexaGrids by hand means obtaining a JWT, reading Chinese-language summaries to tell the web, public, internal, and Auth0 routes apart, and unwrapping the meta and data envelope on every call. Through Jentic you install once, import NexaGrids from the API Directory, store the JWT once, and your agent calls it.
- **Permission scoping:** NexaGrids puts the site id in the URL path (`/web/admin_backend/sites/{site_id}/...`), so a rule can pin your agent to one site and the operations you pick. You choose the operations it may call, so destructive ones like DELETE `/web/self` or the /internal deletes are not included unless you add them.
- **Credential handling:** Your NexaGrids JWT is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list users at a charging site' or 'invite an operator', and Jentic returns the matching NexaGrids operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Auth0 Authentication API** — Identity provider whose login and registration triggers call the NexaGrids /auth0 hooks
- **Stytch API** — Authentication and user management for apps
- **Clerk Backend API** — User, organization, and membership management for apps

## FAQ

### What authentication does the NexaGrids User Manager API use?

Per its OpenAPI spec, the NexaGrids User Manager API declares a bearer JWT (`BearerAuth`) sent in the Authorization header. The spec's tags describe the /web routes as JWT-authenticated, the /public routes as needing no authentication, and the /internal routes as service-to-service. Through Jentic, the JWT is stored encrypted by your own Jentic One instance and injected at call time.

### Can I control who uses public charge points at a site with the NexaGrids User Manager API?

Yes. PATCH `/web/admin_backend/sites/{site_id}/users/{user_id}` takes can_use_public_charge_point as a required boolean, and GET `/web/admin_backend/sites/{site_id}/users` filters a site's users by that same flag and by has_private_charge_point.

### What are the rate limits for the NexaGrids User Manager API?

The OpenAPI spec does not specify rate limits. Check https://nexagrids.dev or contact NexaGrids for current limits.

### How do I invite a site administrator with the NexaGrids User Manager API through Jentic?

Install Jentic One with `curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh`, add NexaGrids from the Jentic API Directory, and store your JWT. Your agent searches for 'invite a site administrator', reads role IDs from GET `/web/roles`, and calls POST `/web/admin_backend/sites/{site_id}/administrators` with email and role_id. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Can I limit what my agent is allowed to do with the NexaGrids User Manager API?

Yes. Write a rule that allows only GET and PATCH on `/web/admin_backend/sites/12/users` and its user paths. The agent can then review site 12's users and switch their public charging access, but it cannot invite administrators, touch other sites, or reach the /internal routes, and each call is logged.

### Is there a NexaGrids MCP server?

You don't need an MCP server to give your agent the NexaGrids User Manager API. Jentic connects it directly from the API Directory: import it, store your JWT once, and your agent calls it.

### What does the NexaGrids response envelope look like?

Every response wraps its payload as meta plus data. On success meta.code is 0 and meta.message is success; on error data is null and meta.code carries the error code, such as 100004 for user not found.
