diff --git a/src/pages/ipa/resources/accounts.mdx b/src/pages/ipa/resources/accounts.mdx
index 9bcdbd1d..86eb8cb5 100644
--- a/src/pages/ipa/resources/accounts.mdx
+++ b/src/pages/ipa/resources/accounts.mdx
@@ -2,411 +2,6 @@ export const title = 'Accounts'
-## Get Instance Status {{ tag: 'GET' , label: '/api/instance' }}
-
-
-
- Check if the instance requires initial setup. This endpoint is only available when embedded IdP is enabled and no accounts exist. It is **unauthenticated** and only works before setup is complete.
-
-
-
-
-```bash {{ title: 'cURL' }}
-curl -X GET https://api.netbird.io/api/instance \
--H 'Accept: application/json'
-```
-
-```js
-const axios = require('axios');
-
-let config = {
- method: 'get',
- maxBodyLength: Infinity,
- url: '/api/instance',
- headers: {
- 'Accept': 'application/json'
- }
-};
-
-axios(config)
-.then((response) => {
- console.log(JSON.stringify(response.data));
-})
-.catch((error) => {
- console.log(error);
-});
-```
-
-```python
-import requests
-import json
-
-url = "https://api.netbird.io/api/instance"
-
-headers = {
- 'Accept': 'application/json'
-}
-
-response = requests.request("GET", url, headers=headers)
-
-print(response.text)
-```
-
-```go
-package main
-
-import (
- "fmt"
- "strings"
- "net/http"
- "io/ioutil"
-)
-
-func main() {
-
- url := "https://api.netbird.io/api/instance"
- method := "GET"
-
- client := &http.Client {
- }
- req, err := http.NewRequest(method, url, nil)
-
- if err != nil {
- fmt.Println(err)
- return
- {
-
- req.Header.Add("Accept", "application/json")
-
- res, err := client.Do(req)
- if err != nil {
- fmt.Println(err)
- return
- }
- defer res.Body.Close()
-
- body, err := ioutil.ReadAll(res.Body)
- if err != nil {
- fmt.Println(err)
- return
- }
- fmt.Println(string(body))
-}
-```
-
-```ruby
-require "uri"
-require "json"
-require "net/http"
-
-url = URI("https://api.netbird.io/api/instance")
-
-https = Net::HTTP.new(url.host, url.port)
-https.use_ssl = true
-
-request = Net::HTTP::Get.new(url)
-request["Accept"] = "application/json"
-
-response = https.request(request)
-puts response.read_body
-```
-
-```java
-OkHttpClient client = new OkHttpClient().newBuilder()
- .build();
-
-Request request = new Request.Builder()
- .url("https://api.netbird.io/api/instance")
- .method("GET")
- .addHeader("Accept", "application/json")
- .build();
-Response response = client.newCall(request).execute();
-```
-
-```php
- 'https://api.netbird.io/api/instance',
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_ENCODING => '',
- CURLOPT_MAXREDIRS => 10,
- CURLOPT_TIMEOUT => 0,
- CURLOPT_FOLLOWLOCATION => true,
- CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
- CURLOPT_CUSTOMREQUEST => 'GET',
- CURLOPT_HTTPHEADER => array(
- 'Accept: application/json'
- ),
-));
-
-$response = curl_exec($curl);
-
-curl_close($curl);
-echo $response;
-```
-
-
-
-
-
-```json {{ title: 'Example' }}
-{
- "setup_required": true
-}
-```
-```json {{ title: 'Schema' }}
-{
- "setup_required": "boolean"
-}
-```
-
-
-
-
-
-
----
-
-
-## Complete Instance Setup {{ tag: 'POST' , label: '/api/instance/setup' }}
-
-
-
- Create the initial owner account. This endpoint is only available when embedded IdP is enabled and no accounts exist. It is **unauthenticated** and only works before setup is complete.
-
- ### Request-Body Parameters
-
-
-
- Email address for the owner account
-
-
-
-
- Password for the owner account (minimum 8 characters)
-
-
-
-
- Display name for the owner account
-
-
-
-
-
- After setup is complete, accessing this endpoint returns a 412 error and redirects to login.
-
-
-
-
-
-
-```bash {{ title: 'cURL' }}
-curl -X POST https://api.netbird.io/api/instance/setup \
--H 'Accept: application/json' \
--H 'Content-Type: application/json' \
---data-raw '{
- "email": "admin@example.com",
- "password": "securepassword123",
- "name": "Admin User"
-}'
-```
-
-```js
-const axios = require('axios');
-let data = JSON.stringify({
- "email": "admin@example.com",
- "password": "securepassword123",
- "name": "Admin User"
-});
-let config = {
- method: 'post',
- maxBodyLength: Infinity,
- url: '/api/instance/setup',
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- data : data
-};
-
-axios(config)
-.then((response) => {
- console.log(JSON.stringify(response.data));
-})
-.catch((error) => {
- console.log(error);
-});
-```
-
-```python
-import requests
-import json
-
-url = "https://api.netbird.io/api/instance/setup"
-payload = json.dumps({
- "email": "admin@example.com",
- "password": "securepassword123",
- "name": "Admin User"
-})
-headers = {
- 'Content-Type': 'application/json',
- 'Accept': 'application/json'
-}
-
-response = requests.request("POST", url, headers=headers, data=payload)
-
-print(response.text)
-```
-
-```go
-package main
-
-import (
- "fmt"
- "strings"
- "net/http"
- "io/ioutil"
-)
-
-func main() {
-
- url := "https://api.netbird.io/api/instance/setup"
- method := "POST"
-
- payload := strings.NewReader(`{
- "email": "admin@example.com",
- "password": "securepassword123",
- "name": "Admin User"
-}`)
- client := &http.Client {
- }
- req, err := http.NewRequest(method, url, payload)
-
- if err != nil {
- fmt.Println(err)
- return
- {
-
- req.Header.Add("Content-Type", "application/json")
- req.Header.Add("Accept", "application/json")
-
- res, err := client.Do(req)
- if err != nil {
- fmt.Println(err)
- return
- }
- defer res.Body.Close()
-
- body, err := ioutil.ReadAll(res.Body)
- if err != nil {
- fmt.Println(err)
- return
- }
- fmt.Println(string(body))
-}
-```
-
-```ruby
-require "uri"
-require "json"
-require "net/http"
-
-url = URI("https://api.netbird.io/api/instance/setup")
-
-https = Net::HTTP.new(url.host, url.port)
-https.use_ssl = true
-
-request = Net::HTTP::Post.new(url)
-request["Content-Type"] = "application/json"
-request["Accept"] = "application/json"
-
-request.body = JSON.dump({
- "email": "admin@example.com",
- "password": "securepassword123",
- "name": "Admin User"
-})
-response = https.request(request)
-puts response.read_body
-```
-
-```java
-OkHttpClient client = new OkHttpClient().newBuilder()
- .build();
-MediaType mediaType = MediaType.parse("application/json");
-RequestBody body = RequestBody.create(mediaType, '{
- "email": "admin@example.com",
- "password": "securepassword123",
- "name": "Admin User"
-}');
-Request request = new Request.Builder()
- .url("https://api.netbird.io/api/instance/setup")
- .method("POST", body)
- .addHeader("Content-Type", "application/json")
- .addHeader("Accept", "application/json")
- .build();
-Response response = client.newCall(request).execute();
-```
-
-```php
- 'https://api.netbird.io/api/instance/setup',
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_ENCODING => '',
- CURLOPT_MAXREDIRS => 10,
- CURLOPT_TIMEOUT => 0,
- CURLOPT_FOLLOWLOCATION => true,
- CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
- CURLOPT_CUSTOMREQUEST => 'POST',
- CURLOPT_POSTFIELDS => '{
- "email": "admin@example.com",
- "password": "securepassword123",
- "name": "Admin User"
-}',
- CURLOPT_HTTPHEADER => array(
- 'Content-Type: application/json',
- 'Accept: application/json'
- ),
-));
-
-$response = curl_exec($curl);
-
-curl_close($curl);
-echo $response;
-```
-
-
-
-
-
-```json {{ title: 'Example' }}
-{
- "user_id": "user-abc123",
- "account_id": "account-xyz789"
-}
-```
-```json {{ title: 'Schema' }}
-{
- "user_id": "string",
- "account_id": "string"
-}
-```
-
-
-
-
-
-
----
-
-
## List all Accounts {{ tag: 'GET' , label: '/api/accounts' }}
diff --git a/src/pages/ipa/resources/identity-providers.mdx b/src/pages/ipa/resources/identity-providers.mdx
deleted file mode 100644
index 02dfc74d..00000000
--- a/src/pages/ipa/resources/identity-providers.mdx
+++ /dev/null
@@ -1,1112 +0,0 @@
-export const title = 'Identity Providers'
-
-
-
-## List all Identity Providers {{ tag: 'GET' , label: '/api/identity-providers' }}
-
-
-
- Returns a list of all configured identity provider connectors. These endpoints are only available when embedded IdP is enabled (`account.settings.extra.embedded_idp_enabled: true`).
-
-
- Client secrets are never returned in API responses for security.
-
-
-
-
-
-```bash {{ title: 'cURL' }}
-curl -X GET https://api.netbird.io/api/identity-providers \
--H 'Accept: application/json' \
--H 'Authorization: Token '
-```
-
-```js
-const axios = require('axios');
-
-let config = {
- method: 'get',
- maxBodyLength: Infinity,
- url: '/api/identity-providers',
- headers: {
- 'Accept': 'application/json',
- 'Authorization': 'Token '
- }
-};
-
-axios(config)
-.then((response) => {
- console.log(JSON.stringify(response.data));
-})
-.catch((error) => {
- console.log(error);
-});
-```
-
-```python
-import requests
-import json
-
-url = "https://api.netbird.io/api/identity-providers"
-
-headers = {
- 'Accept': 'application/json',
- 'Authorization': 'Token '
-}
-
-response = requests.request("GET", url, headers=headers)
-
-print(response.text)
-```
-
-```go
-package main
-
-import (
- "fmt"
- "strings"
- "net/http"
- "io/ioutil"
-)
-
-func main() {
-
- url := "https://api.netbird.io/api/identity-providers"
- method := "GET"
-
- client := &http.Client {
- }
- req, err := http.NewRequest(method, url, nil)
-
- if err != nil {
- fmt.Println(err)
- return
- {
-
- req.Header.Add("Accept", "application/json")
- req.Header.Add("Authorization", "Token ")
-
- res, err := client.Do(req)
- if err != nil {
- fmt.Println(err)
- return
- }
- defer res.Body.Close()
-
- body, err := ioutil.ReadAll(res.Body)
- if err != nil {
- fmt.Println(err)
- return
- }
- fmt.Println(string(body))
-}
-```
-
-```ruby
-require "uri"
-require "json"
-require "net/http"
-
-url = URI("https://api.netbird.io/api/identity-providers")
-
-https = Net::HTTP.new(url.host, url.port)
-https.use_ssl = true
-
-request = Net::HTTP::Get.new(url)
-request["Accept"] = "application/json"
-request["Authorization"] = "Token "
-
-response = https.request(request)
-puts response.read_body
-```
-
-```java
-OkHttpClient client = new OkHttpClient().newBuilder()
- .build();
-
-Request request = new Request.Builder()
- .url("https://api.netbird.io/api/identity-providers")
- .method("GET")
- .addHeader("Accept", "application/json")
- .addHeader("Authorization: Token ")
- .build();
-Response response = client.newCall(request).execute();
-```
-
-```php
- 'https://api.netbird.io/api/identity-providers',
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_ENCODING => '',
- CURLOPT_MAXREDIRS => 10,
- CURLOPT_TIMEOUT => 0,
- CURLOPT_FOLLOWLOCATION => true,
- CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
- CURLOPT_CUSTOMREQUEST => 'GET',
- CURLOPT_HTTPHEADER => array(
- 'Accept: application/json',
- 'Authorization: Token '
- ),
-));
-
-$response = curl_exec($curl);
-
-curl_close($curl);
-echo $response;
-```
-
-
-
-
-
-```json {{ title: 'Example' }}
-[
- {
- "id": "idp-abc123",
- "type": "google",
- "name": "Google Workspace",
- "client_id": "123456789.apps.googleusercontent.com",
- "issuer": "",
- "redirect_url": "https://api.netbird.io/api/idp/callback/idp-abc123"
- },
- {
- "id": "idp-def456",
- "type": "oidc",
- "name": "Corporate SSO",
- "client_id": "netbird-client",
- "issuer": "https://sso.example.com",
- "redirect_url": "https://api.netbird.io/api/idp/callback/idp-def456"
- }
-]
-```
-```json {{ title: 'Schema' }}
-[
- {
- "id": "string",
- "type": "string",
- "name": "string",
- "client_id": "string",
- "issuer": "string",
- "redirect_url": "string"
- }
-]
-```
-
-
-
-
-
-
----
-
-
-## Get Identity Provider {{ tag: 'GET' , label: '/api/identity-providers/{id}' }}
-
-
-
- Get details for a specific identity provider connector.
-
- ### Path Parameters
-
-
-
- The unique identifier of an identity provider
-
-
-
-
-
-
-```bash {{ title: 'cURL' }}
-curl -X GET https://api.netbird.io/api/identity-providers/{id} \
--H 'Accept: application/json' \
--H 'Authorization: Token '
-```
-
-```js
-const axios = require('axios');
-
-let config = {
- method: 'get',
- maxBodyLength: Infinity,
- url: '/api/identity-providers/{id}',
- headers: {
- 'Accept': 'application/json',
- 'Authorization': 'Token '
- }
-};
-
-axios(config)
-.then((response) => {
- console.log(JSON.stringify(response.data));
-})
-.catch((error) => {
- console.log(error);
-});
-```
-
-```python
-import requests
-import json
-
-url = "https://api.netbird.io/api/identity-providers/{id}"
-
-headers = {
- 'Accept': 'application/json',
- 'Authorization': 'Token '
-}
-
-response = requests.request("GET", url, headers=headers)
-
-print(response.text)
-```
-
-```go
-package main
-
-import (
- "fmt"
- "strings"
- "net/http"
- "io/ioutil"
-)
-
-func main() {
-
- url := "https://api.netbird.io/api/identity-providers/{id}"
- method := "GET"
-
- client := &http.Client {
- }
- req, err := http.NewRequest(method, url, nil)
-
- if err != nil {
- fmt.Println(err)
- return
- {
-
- req.Header.Add("Accept", "application/json")
- req.Header.Add("Authorization", "Token ")
-
- res, err := client.Do(req)
- if err != nil {
- fmt.Println(err)
- return
- }
- defer res.Body.Close()
-
- body, err := ioutil.ReadAll(res.Body)
- if err != nil {
- fmt.Println(err)
- return
- }
- fmt.Println(string(body))
-}
-```
-
-```ruby
-require "uri"
-require "json"
-require "net/http"
-
-url = URI("https://api.netbird.io/api/identity-providers/{id}")
-
-https = Net::HTTP.new(url.host, url.port)
-https.use_ssl = true
-
-request = Net::HTTP::Get.new(url)
-request["Accept"] = "application/json"
-request["Authorization"] = "Token "
-
-response = https.request(request)
-puts response.read_body
-```
-
-```java
-OkHttpClient client = new OkHttpClient().newBuilder()
- .build();
-
-Request request = new Request.Builder()
- .url("https://api.netbird.io/api/identity-providers/{id}")
- .method("GET")
- .addHeader("Accept", "application/json")
- .addHeader("Authorization: Token ")
- .build();
-Response response = client.newCall(request).execute();
-```
-
-```php
- 'https://api.netbird.io/api/identity-providers/{id}',
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_ENCODING => '',
- CURLOPT_MAXREDIRS => 10,
- CURLOPT_TIMEOUT => 0,
- CURLOPT_FOLLOWLOCATION => true,
- CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
- CURLOPT_CUSTOMREQUEST => 'GET',
- CURLOPT_HTTPHEADER => array(
- 'Accept: application/json',
- 'Authorization: Token '
- ),
-));
-
-$response = curl_exec($curl);
-
-curl_close($curl);
-echo $response;
-```
-
-
-
-
-
-```json {{ title: 'Example' }}
-{
- "id": "idp-abc123",
- "type": "google",
- "name": "Google Workspace",
- "client_id": "123456789.apps.googleusercontent.com",
- "issuer": "",
- "redirect_url": "https://api.netbird.io/api/idp/callback/idp-abc123"
-}
-```
-```json {{ title: 'Schema' }}
-{
- "id": "string",
- "type": "string",
- "name": "string",
- "client_id": "string",
- "issuer": "string",
- "redirect_url": "string"
-}
-```
-
-
-
-
-
-
----
-
-
-## Create Identity Provider {{ tag: 'POST' , label: '/api/identity-providers' }}
-
-
-
- Add a new identity provider connector. All providers use the same DEX-based endpoints with different `type` values.
-
- ### Request-Body Parameters
-
-
-
- Provider type. Supported values: `google`, `microsoft`, `entra`, `okta`, `zitadel`, `pocketid`, `oidc`
-
-
-
-
- Display name on login page
-
-
-
-
- OAuth client ID from your identity provider
-
-
-
-
- OAuth client secret from your identity provider
-
-
-
-
- Issuer URL. Required for `okta`, `zitadel`, `pocketid`, and `oidc` types. Not required for `google`, `microsoft`, or `entra` types.
-
-
-
-
- ### Provider Types
-
- | Type | Description | Requires Issuer |
- |------|-------------|-----------------|
- | `google` | Google accounts / Google Workspace | No |
- | `microsoft` | Microsoft personal accounts | No |
- | `entra` | Microsoft Entra ID (Azure AD) | No |
- | `okta` | Okta SSO | Yes |
- | `zitadel` | Zitadel IdP | Yes |
- | `pocketid` | PocketID | Yes |
- | `oidc` | Generic OIDC provider | Yes |
-
-
- **Important:** After creating an identity provider, you must configure the `redirect_url` (returned in the response) in your identity provider's OAuth application settings.
-
-
-
-
-
-
-```bash {{ title: 'cURL' }}
-curl -X POST https://api.netbird.io/api/identity-providers \
--H 'Accept: application/json' \
--H 'Content-Type: application/json' \
--H 'Authorization: Token ' \
---data-raw '{
- "type": "google",
- "name": "Google Workspace",
- "client_id": "123456789.apps.googleusercontent.com",
- "client_secret": "GOCSPX-xxxxx"
-}'
-```
-
-```js
-const axios = require('axios');
-let data = JSON.stringify({
- "type": "google",
- "name": "Google Workspace",
- "client_id": "123456789.apps.googleusercontent.com",
- "client_secret": "GOCSPX-xxxxx"
-});
-let config = {
- method: 'post',
- maxBodyLength: Infinity,
- url: '/api/identity-providers',
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json',
- 'Authorization': 'Token '
- },
- data : data
-};
-
-axios(config)
-.then((response) => {
- console.log(JSON.stringify(response.data));
-})
-.catch((error) => {
- console.log(error);
-});
-```
-
-```python
-import requests
-import json
-
-url = "https://api.netbird.io/api/identity-providers"
-payload = json.dumps({
- "type": "google",
- "name": "Google Workspace",
- "client_id": "123456789.apps.googleusercontent.com",
- "client_secret": "GOCSPX-xxxxx"
-})
-headers = {
- 'Content-Type': 'application/json',
- 'Accept': 'application/json',
- 'Authorization': 'Token '
-}
-
-response = requests.request("POST", url, headers=headers, data=payload)
-
-print(response.text)
-```
-
-```go
-package main
-
-import (
- "fmt"
- "strings"
- "net/http"
- "io/ioutil"
-)
-
-func main() {
-
- url := "https://api.netbird.io/api/identity-providers"
- method := "POST"
-
- payload := strings.NewReader(`{
- "type": "google",
- "name": "Google Workspace",
- "client_id": "123456789.apps.googleusercontent.com",
- "client_secret": "GOCSPX-xxxxx"
-}`)
- client := &http.Client {
- }
- req, err := http.NewRequest(method, url, payload)
-
- if err != nil {
- fmt.Println(err)
- return
- {
-
- req.Header.Add("Content-Type", "application/json")
- req.Header.Add("Accept", "application/json")
- req.Header.Add("Authorization", "Token ")
-
- res, err := client.Do(req)
- if err != nil {
- fmt.Println(err)
- return
- }
- defer res.Body.Close()
-
- body, err := ioutil.ReadAll(res.Body)
- if err != nil {
- fmt.Println(err)
- return
- }
- fmt.Println(string(body))
-}
-```
-
-```ruby
-require "uri"
-require "json"
-require "net/http"
-
-url = URI("https://api.netbird.io/api/identity-providers")
-
-https = Net::HTTP.new(url.host, url.port)
-https.use_ssl = true
-
-request = Net::HTTP::Post.new(url)
-request["Content-Type"] = "application/json"
-request["Accept"] = "application/json"
-request["Authorization"] = "Token "
-
-request.body = JSON.dump({
- "type": "google",
- "name": "Google Workspace",
- "client_id": "123456789.apps.googleusercontent.com",
- "client_secret": "GOCSPX-xxxxx"
-})
-response = https.request(request)
-puts response.read_body
-```
-
-```java
-OkHttpClient client = new OkHttpClient().newBuilder()
- .build();
-MediaType mediaType = MediaType.parse("application/json");
-RequestBody body = RequestBody.create(mediaType, '{
- "type": "google",
- "name": "Google Workspace",
- "client_id": "123456789.apps.googleusercontent.com",
- "client_secret": "GOCSPX-xxxxx"
-}');
-Request request = new Request.Builder()
- .url("https://api.netbird.io/api/identity-providers")
- .method("POST", body)
- .addHeader("Content-Type", "application/json")
- .addHeader("Accept", "application/json")
- .addHeader("Authorization: Token ")
- .build();
-Response response = client.newCall(request).execute();
-```
-
-```php
- 'https://api.netbird.io/api/identity-providers',
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_ENCODING => '',
- CURLOPT_MAXREDIRS => 10,
- CURLOPT_TIMEOUT => 0,
- CURLOPT_FOLLOWLOCATION => true,
- CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
- CURLOPT_CUSTOMREQUEST => 'POST',
- CURLOPT_POSTFIELDS => '{
- "type": "google",
- "name": "Google Workspace",
- "client_id": "123456789.apps.googleusercontent.com",
- "client_secret": "GOCSPX-xxxxx"
-}',
- CURLOPT_HTTPHEADER => array(
- 'Content-Type: application/json',
- 'Accept: application/json',
- 'Authorization: Token '
- ),
-));
-
-$response = curl_exec($curl);
-
-curl_close($curl);
-echo $response;
-```
-
-
-
-
-
-```json {{ title: 'Example' }}
-{
- "id": "idp-abc123",
- "type": "google",
- "name": "Google Workspace",
- "client_id": "123456789.apps.googleusercontent.com",
- "issuer": "",
- "redirect_url": "https://api.netbird.io/api/idp/callback/idp-abc123"
-}
-```
-```json {{ title: 'Schema' }}
-{
- "id": "string",
- "type": "string",
- "name": "string",
- "client_id": "string",
- "issuer": "string",
- "redirect_url": "string"
-}
-```
-
-
-
-
-
-
----
-
-
-## Update Identity Provider {{ tag: 'PUT' , label: '/api/identity-providers/{id}' }}
-
-
-
- Update an existing identity provider connector. The `type` cannot be changed after creation.
-
- ### Path Parameters
-
-
-
- The unique identifier of an identity provider
-
-
-
- ### Request-Body Parameters
-
-
-
- Display name on login page
-
-
-
-
- OAuth client ID from your identity provider
-
-
-
-
- OAuth client secret. If empty or omitted, the existing secret is preserved.
-
-
-
-
- Issuer URL. Only applicable for `okta`, `zitadel`, `pocketid`, and `oidc` types.
-
-
-
-
-
- Include only fields you want to update. If `client_secret` is empty or omitted, the existing secret is preserved.
-
-
-
-
-
-
-
-```bash {{ title: 'cURL' }}
-curl -X PUT https://api.netbird.io/api/identity-providers/{id} \
--H 'Accept: application/json' \
--H 'Content-Type: application/json' \
--H 'Authorization: Token ' \
---data-raw '{
- "name": "Updated Name",
- "client_id": "new-client-id",
- "client_secret": "new-secret"
-}'
-```
-
-```js
-const axios = require('axios');
-let data = JSON.stringify({
- "name": "Updated Name",
- "client_id": "new-client-id",
- "client_secret": "new-secret"
-});
-let config = {
- method: 'put',
- maxBodyLength: Infinity,
- url: '/api/identity-providers/{id}',
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json',
- 'Authorization': 'Token '
- },
- data : data
-};
-
-axios(config)
-.then((response) => {
- console.log(JSON.stringify(response.data));
-})
-.catch((error) => {
- console.log(error);
-});
-```
-
-```python
-import requests
-import json
-
-url = "https://api.netbird.io/api/identity-providers/{id}"
-payload = json.dumps({
- "name": "Updated Name",
- "client_id": "new-client-id",
- "client_secret": "new-secret"
-})
-headers = {
- 'Content-Type': 'application/json',
- 'Accept': 'application/json',
- 'Authorization': 'Token '
-}
-
-response = requests.request("PUT", url, headers=headers, data=payload)
-
-print(response.text)
-```
-
-```go
-package main
-
-import (
- "fmt"
- "strings"
- "net/http"
- "io/ioutil"
-)
-
-func main() {
-
- url := "https://api.netbird.io/api/identity-providers/{id}"
- method := "PUT"
-
- payload := strings.NewReader(`{
- "name": "Updated Name",
- "client_id": "new-client-id",
- "client_secret": "new-secret"
-}`)
- client := &http.Client {
- }
- req, err := http.NewRequest(method, url, payload)
-
- if err != nil {
- fmt.Println(err)
- return
- {
-
- req.Header.Add("Content-Type", "application/json")
- req.Header.Add("Accept", "application/json")
- req.Header.Add("Authorization", "Token ")
-
- res, err := client.Do(req)
- if err != nil {
- fmt.Println(err)
- return
- }
- defer res.Body.Close()
-
- body, err := ioutil.ReadAll(res.Body)
- if err != nil {
- fmt.Println(err)
- return
- }
- fmt.Println(string(body))
-}
-```
-
-```ruby
-require "uri"
-require "json"
-require "net/http"
-
-url = URI("https://api.netbird.io/api/identity-providers/{id}")
-
-https = Net::HTTP.new(url.host, url.port)
-https.use_ssl = true
-
-request = Net::HTTP::Put.new(url)
-request["Content-Type"] = "application/json"
-request["Accept"] = "application/json"
-request["Authorization"] = "Token "
-
-request.body = JSON.dump({
- "name": "Updated Name",
- "client_id": "new-client-id",
- "client_secret": "new-secret"
-})
-response = https.request(request)
-puts response.read_body
-```
-
-```java
-OkHttpClient client = new OkHttpClient().newBuilder()
- .build();
-MediaType mediaType = MediaType.parse("application/json");
-RequestBody body = RequestBody.create(mediaType, '{
- "name": "Updated Name",
- "client_id": "new-client-id",
- "client_secret": "new-secret"
-}');
-Request request = new Request.Builder()
- .url("https://api.netbird.io/api/identity-providers/{id}")
- .method("PUT", body)
- .addHeader("Content-Type", "application/json")
- .addHeader("Accept", "application/json")
- .addHeader("Authorization: Token ")
- .build();
-Response response = client.newCall(request).execute();
-```
-
-```php
- 'https://api.netbird.io/api/identity-providers/{id}',
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_ENCODING => '',
- CURLOPT_MAXREDIRS => 10,
- CURLOPT_TIMEOUT => 0,
- CURLOPT_FOLLOWLOCATION => true,
- CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
- CURLOPT_CUSTOMREQUEST => 'PUT',
- CURLOPT_POSTFIELDS => '{
- "name": "Updated Name",
- "client_id": "new-client-id",
- "client_secret": "new-secret"
-}',
- CURLOPT_HTTPHEADER => array(
- 'Content-Type: application/json',
- 'Accept: application/json',
- 'Authorization: Token '
- ),
-));
-
-$response = curl_exec($curl);
-
-curl_close($curl);
-echo $response;
-```
-
-
-
-
-
-```json {{ title: 'Example' }}
-{
- "id": "idp-abc123",
- "type": "google",
- "name": "Updated Name",
- "client_id": "new-client-id",
- "issuer": "",
- "redirect_url": "https://api.netbird.io/api/idp/callback/idp-abc123"
-}
-```
-```json {{ title: 'Schema' }}
-{
- "id": "string",
- "type": "string",
- "name": "string",
- "client_id": "string",
- "issuer": "string",
- "redirect_url": "string"
-}
-```
-
-
-
-
-
-
----
-
-
-## Delete Identity Provider {{ tag: 'DELETE' , label: '/api/identity-providers/{id}' }}
-
-
-
- Remove an identity provider connector.
-
- ### Path Parameters
-
-
-
- The unique identifier of an identity provider
-
-
-
-
- **Warning:** Deleting an identity provider will prevent users who authenticate exclusively through that provider from logging in.
-
-
-
-
-
-```bash {{ title: 'cURL' }}
-curl -X DELETE https://api.netbird.io/api/identity-providers/{id} \
--H 'Authorization: Token '
-```
-
-```js
-const axios = require('axios');
-
-let config = {
- method: 'delete',
- maxBodyLength: Infinity,
- url: '/api/identity-providers/{id}',
- headers: {
- 'Authorization': 'Token '
- }
-};
-
-axios(config)
-.then((response) => {
- console.log(JSON.stringify(response.data));
-})
-.catch((error) => {
- console.log(error);
-});
-```
-
-```python
-import requests
-import json
-
-url = "https://api.netbird.io/api/identity-providers/{id}"
-
-headers = {
- 'Authorization': 'Token '
-}
-
-response = requests.request("DELETE", url, headers=headers)
-
-print(response.text)
-```
-
-```go
-package main
-
-import (
- "fmt"
- "strings"
- "net/http"
- "io/ioutil"
-)
-
-func main() {
-
- url := "https://api.netbird.io/api/identity-providers/{id}"
- method := "DELETE"
-
- client := &http.Client {
- }
- req, err := http.NewRequest(method, url, nil)
-
- if err != nil {
- fmt.Println(err)
- return
- {
-
- req.Header.Add("Authorization", "Token ")
-
- res, err := client.Do(req)
- if err != nil {
- fmt.Println(err)
- return
- }
- defer res.Body.Close()
-
- body, err := ioutil.ReadAll(res.Body)
- if err != nil {
- fmt.Println(err)
- return
- }
- fmt.Println(string(body))
-}
-```
-
-```ruby
-require "uri"
-require "json"
-require "net/http"
-
-url = URI("https://api.netbird.io/api/identity-providers/{id}")
-
-https = Net::HTTP.new(url.host, url.port)
-https.use_ssl = true
-
-request = Net::HTTP::Delete.new(url)
-request["Authorization"] = "Token "
-
-response = https.request(request)
-puts response.read_body
-```
-
-```java
-OkHttpClient client = new OkHttpClient().newBuilder()
- .build();
-
-Request request = new Request.Builder()
- .url("https://api.netbird.io/api/identity-providers/{id}")
- .method("DELETE")
- .addHeader("Authorization: Token ")
- .build();
-Response response = client.newCall(request).execute();
-```
-
-```php
- 'https://api.netbird.io/api/identity-providers/{id}',
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_ENCODING => '',
- CURLOPT_MAXREDIRS => 10,
- CURLOPT_TIMEOUT => 0,
- CURLOPT_FOLLOWLOCATION => true,
- CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
- CURLOPT_CUSTOMREQUEST => 'DELETE',
- CURLOPT_HTTPHEADER => array(
- 'Authorization: Token '
- ),
-));
-
-$response = curl_exec($curl);
-
-curl_close($curl);
-echo $response;
-```
-
-
-
-
-
-
-
-
----
-
diff --git a/src/pages/ipa/resources/users.mdx b/src/pages/ipa/resources/users.mdx
index 167bea51..ffd30a46 100644
--- a/src/pages/ipa/resources/users.mdx
+++ b/src/pages/ipa/resources/users.mdx
@@ -264,7 +264,7 @@ echo $response;
- Creates a new service user or sends an invite to a regular user. When embedded IdP is enabled (`account.settings.extra.embedded_idp_enabled: true`), this endpoint creates a local user with a generated password that is returned in the response.
+ Creates a new service user or sends an invite to a regular user
### Request-Body Parameters
@@ -295,9 +295,6 @@ echo $response;
-
- **Embedded IdP Behavior:** When embedded IdP is enabled, the response includes a `password` field containing the generated password. This password is only returned once at creation time and cannot be retrieved later. Store it securely or share it with the user immediately. Users authenticated through external identity provider connectors will have an `idp_id` field linking them to the provider.
-
@@ -535,8 +532,6 @@ echo $response;
"is_service_user": false,
"is_blocked": false,
"issued": "api",
- "password": "generated-password-here",
- "idp_id": "idp-def456",
"permissions": {
"is_restricted": {
"type": "boolean",
@@ -574,8 +569,6 @@ echo $response;
"is_service_user": "boolean",
"is_blocked": "boolean",
"issued": "string",
- "password": "string",
- "idp_id": "string",
"permissions": {
"is_restricted": "boolean",
"modules": {