NetBird · Capability
NetBird REST API — Users
NetBird REST API — Users. 15 operations. Lead operation: List all Users. Self-contained Naftiko capability covering one Netbird business surface.
What You Can Do
GET
Get
— List all Users
/v1/api/users
POST
Post
— Create a User
/v1/api/users
GET
Get
— Retrieve current user
/v1/api/users/current
GET
Get
— List user invites
/v1/api/users/invites
POST
Post
— Create a user invite
/v1/api/users/invites
DELETE
Delete
— Delete a user invite
/v1/api/users/invites/{inviteid}
POST
Post
— Regenerate a user invite
/v1/api/users/invites/{inviteid}/regenerate
GET
Get
— Get invite information
/v1/api/users/invites/{token}
POST
Post
— Accept an invite
/v1/api/users/invites/{token}/accept
PUT
Put
— Update a User
/v1/api/users/{userid}
DELETE
Delete
— Delete a User
/v1/api/users/{userid}
POST
Post
— Approve user
/v1/api/users/{userid}/approve
POST
Post
— Resend user invitation
/v1/api/users/{userid}/invite
PUT
Put
— Change user password
/v1/api/users/{userid}/password
DELETE
Delete
— Reject user
/v1/api/users/{userid}/reject
MCP Tools
list-all-users
List all Users
read-only
idempotent
create-user
Create a User
retrieve-current-user
Retrieve current user
read-only
idempotent
list-user-invites
List user invites
read-only
idempotent
create-user-invite
Create a user invite
delete-user-invite
Delete a user invite
idempotent
regenerate-user-invite
Regenerate a user invite
get-invite-information
Get invite information
read-only
idempotent
accept-invite
Accept an invite
update-user
Update a User
idempotent
delete-user
Delete a User
idempotent
approve-user
Approve user
resend-user-invitation
Resend user invitation
change-user-password
Change user password
idempotent
reject-user
Reject user
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: NetBird REST API — Users
description: 'NetBird REST API — Users. 15 operations. Lead operation: List all Users. Self-contained Naftiko capability
covering one Netbird business surface.'
tags:
- Netbird
- Users
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
NETBIRD_API_KEY: NETBIRD_API_KEY
capability:
consumes:
- type: http
namespace: netbird-users
baseUri: https://api.netbird.io
description: NetBird REST API — Users business capability. Self-contained, no shared references.
resources:
- name: api-users
path: /api/users
operations:
- name: get
method: GET
description: List all Users
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: service_user
in: query
type: boolean
description: Filters users and returns either regular users or service users
- name: post
method: POST
description: Create a User
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: api-users-current
path: /api/users/current
operations:
- name: get
method: GET
description: Retrieve current user
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: api-users-invites
path: /api/users/invites
operations:
- name: get
method: GET
description: List user invites
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: post
method: POST
description: Create a user invite
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: api-users-invites-inviteId
path: /api/users/invites/{inviteId}
operations:
- name: delete
method: DELETE
description: Delete a user invite
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: inviteId
in: path
type: string
description: The ID of the invite to delete
required: true
- name: api-users-invites-inviteId-regenerate
path: /api/users/invites/{inviteId}/regenerate
operations:
- name: post
method: POST
description: Regenerate a user invite
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: inviteId
in: path
type: string
description: The ID of the invite to regenerate
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: api-users-invites-token
path: /api/users/invites/{token}
operations:
- name: get
method: GET
description: Get invite information
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: path
type: string
description: The invite token
required: true
- name: api-users-invites-token-accept
path: /api/users/invites/{token}/accept
operations:
- name: post
method: POST
description: Accept an invite
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: path
type: string
description: The invite token
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: api-users-userId
path: /api/users/{userId}
operations:
- name: put
method: PUT
description: Update a User
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: userId
in: path
type: string
description: The unique identifier of a user
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: delete
method: DELETE
description: Delete a User
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: userId
in: path
type: string
description: The unique identifier of a user
required: true
- name: api-users-userId-approve
path: /api/users/{userId}/approve
operations:
- name: post
method: POST
description: Approve user
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: userId
in: path
type: string
description: The unique identifier of a user
required: true
- name: api-users-userId-invite
path: /api/users/{userId}/invite
operations:
- name: post
method: POST
description: Resend user invitation
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: userId
in: path
type: string
description: The unique identifier of a user
required: true
- name: api-users-userId-password
path: /api/users/{userId}/password
operations:
- name: put
method: PUT
description: Change user password
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: userId
in: path
type: string
description: The unique identifier of a user
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: api-users-userId-reject
path: /api/users/{userId}/reject
operations:
- name: delete
method: DELETE
description: Reject user
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: userId
in: path
type: string
description: The unique identifier of a user
required: true
authentication:
type: bearer
token: '{{env.NETBIRD_API_KEY}}'
exposes:
- type: rest
namespace: netbird-users-rest
port: 8080
description: REST adapter for NetBird REST API — Users. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/api/users
name: api-users
description: REST surface for api-users.
operations:
- method: GET
name: get
description: List all Users
call: netbird-users.get
with:
service_user: rest.service_user
outputParameters:
- type: object
mapping: $.
- method: POST
name: post
description: Create a User
call: netbird-users.post
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/api/users/current
name: api-users-current
description: REST surface for api-users-current.
operations:
- method: GET
name: get
description: Retrieve current user
call: netbird-users.get
outputParameters:
- type: object
mapping: $.
- path: /v1/api/users/invites
name: api-users-invites
description: REST surface for api-users-invites.
operations:
- method: GET
name: get
description: List user invites
call: netbird-users.get
outputParameters:
- type: object
mapping: $.
- method: POST
name: post
description: Create a user invite
call: netbird-users.post
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/api/users/invites/{inviteid}
name: api-users-invites-inviteid
description: REST surface for api-users-invites-inviteId.
operations:
- method: DELETE
name: delete
description: Delete a user invite
call: netbird-users.delete
with:
inviteId: rest.inviteId
outputParameters:
- type: object
mapping: $.
- path: /v1/api/users/invites/{inviteid}/regenerate
name: api-users-invites-inviteid-regenerate
description: REST surface for api-users-invites-inviteId-regenerate.
operations:
- method: POST
name: post
description: Regenerate a user invite
call: netbird-users.post
with:
inviteId: rest.inviteId
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/api/users/invites/{token}
name: api-users-invites-token
description: REST surface for api-users-invites-token.
operations:
- method: GET
name: get
description: Get invite information
call: netbird-users.get
with:
token: rest.token
outputParameters:
- type: object
mapping: $.
- path: /v1/api/users/invites/{token}/accept
name: api-users-invites-token-accept
description: REST surface for api-users-invites-token-accept.
operations:
- method: POST
name: post
description: Accept an invite
call: netbird-users.post
with:
token: rest.token
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/api/users/{userid}
name: api-users-userid
description: REST surface for api-users-userId.
operations:
- method: PUT
name: put
description: Update a User
call: netbird-users.put
with:
userId: rest.userId
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: delete
description: Delete a User
call: netbird-users.delete
with:
userId: rest.userId
outputParameters:
- type: object
mapping: $.
- path: /v1/api/users/{userid}/approve
name: api-users-userid-approve
description: REST surface for api-users-userId-approve.
operations:
- method: POST
name: post
description: Approve user
call: netbird-users.post
with:
userId: rest.userId
outputParameters:
- type: object
mapping: $.
- path: /v1/api/users/{userid}/invite
name: api-users-userid-invite
description: REST surface for api-users-userId-invite.
operations:
- method: POST
name: post
description: Resend user invitation
call: netbird-users.post
with:
userId: rest.userId
outputParameters:
- type: object
mapping: $.
- path: /v1/api/users/{userid}/password
name: api-users-userid-password
description: REST surface for api-users-userId-password.
operations:
- method: PUT
name: put
description: Change user password
call: netbird-users.put
with:
userId: rest.userId
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/api/users/{userid}/reject
name: api-users-userid-reject
description: REST surface for api-users-userId-reject.
operations:
- method: DELETE
name: delete
description: Reject user
call: netbird-users.delete
with:
userId: rest.userId
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: netbird-users-mcp
port: 9090
transport: http
description: MCP adapter for NetBird REST API — Users. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: list-all-users
description: List all Users
hints:
readOnly: true
destructive: false
idempotent: true
call: netbird-users.get
with:
service_user: tools.service_user
outputParameters:
- type: object
mapping: $.
- name: create-user
description: Create a User
hints:
readOnly: false
destructive: false
idempotent: false
call: netbird-users.post
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: retrieve-current-user
description: Retrieve current user
hints:
readOnly: true
destructive: false
idempotent: true
call: netbird-users.get
outputParameters:
- type: object
mapping: $.
- name: list-user-invites
description: List user invites
hints:
readOnly: true
destructive: false
idempotent: true
call: netbird-users.get
outputParameters:
- type: object
mapping: $.
- name: create-user-invite
description: Create a user invite
hints:
readOnly: false
destructive: false
idempotent: false
call: netbird-users.post
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: delete-user-invite
description: Delete a user invite
hints:
readOnly: false
destructive: true
idempotent: true
call: netbird-users.delete
with:
inviteId: tools.inviteId
outputParameters:
- type: object
mapping: $.
- name: regenerate-user-invite
description: Regenerate a user invite
hints:
readOnly: false
destructive: false
idempotent: false
call: netbird-users.post
with:
inviteId: tools.inviteId
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-invite-information
description: Get invite information
hints:
readOnly: true
destructive: false
idempotent: true
call: netbird-users.get
with:
token: tools.token
outputParameters:
- type: object
mapping: $.
- name: accept-invite
description: Accept an invite
hints:
readOnly: false
destructive: false
idempotent: false
call: netbird-users.post
with:
token: tools.token
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: update-user
description: Update a User
hints:
readOnly: false
destructive: false
idempotent: true
call: netbird-users.put
with:
userId: tools.userId
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: delete-user
description: Delete a User
hints:
readOnly: false
destructive: true
idempotent: true
call: netbird-users.delete
with:
userId: tools.userId
outputParameters:
- type: object
mapping: $.
- name: approve-user
description: Approve user
hints:
readOnly: false
destructive: false
idempotent: false
call: netbird-users.post
with:
userId: tools.userId
outputParameters:
- type: object
mapping: $.
- name: resend-user-invitation
description: Resend user invitation
hints:
readOnly: false
destructive: false
idempotent: false
call: netbird-users.post
with:
userId: tools.userId
outputParameters:
- type: object
mapping: $.
- name: change-user-password
description: Change user password
hints:
readOnly: false
destructive: false
idempotent: true
call: netbird-users.put
with:
userId: tools.userId
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: reject-user
description: Reject user
hints:
readOnly: false
destructive: true
idempotent: true
call: netbird-users.delete
with:
userId: tools.userId
outputParameters:
- type: object
mapping: $.