Kinde Management API v1
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Welcome to the Kinde management API docs. Most things that can be done in the Kinde admin UI can be done programmatically with this API.
Note: This API can only be used by back-end servers or trusted parties. It is not accessible from the browser.
Requests should be sent with a Content-Type
of application/json
.
Authentication
Access tokens
You will need a Management API access token to access the Kinde Management API.
If you haven’t already set this up, you’ll need to do these tasks first:
- Add a machine-to-machine application in Kinde with Management API access
- Use the application to get a Management API access token
- Test the connection — we show you how in Postman
Scopes
All requests are authenticated with JWTs. The Management API access token’s scope
claim indicates which request methods can be performed when calling this API.
For example, this deserialized token grants read-only access to users, and read/write access to applications:
{
"aud": [
"https://{your_subdomain}.kinde.com/api"
],
"iat": 1724044596,
"jti": "c1c265fe-c7cc-4c33-857f-9d1cb7782668",
"scope": "create:applications read:applications read:users"
}
Trying to call any request method not permitted within the set scopes will result in a 403 Forbidden response
along with details of the scope required to access.
Limits
The following limits apply to API calls
maximum page size of 500 per request to API GET endpoints that use the page_size parameter, additional results can be requested using the page_size and next_token parameters (e.g.
GET /api/v1/subscribers
)maximum 100 objects can be updated in a single request when sending POST/PATCH requests to bulk endpoints (e.g.
PATCH /api/v1/organizations/{org_code}/users
)
If this affects your integrations and you require an extended period with a higher limit please get in touch. This API can only be used by back-end servers or trusted parties. It is not accessible from the browser.
Base URLs
Make sure you use your own Kinde domain as the base URL wherever you see http://{your_subdomain}.kinde.com.
To find this in Kinde, go to Settings > Applications > View details (on the relevant app) and copy it from the App keys > Domain field.
Note: custom domains cannot currently be used with this API.
Need more help?
Reach out in the Kinde community on Slack
Email support@kinde.com
Authentication
Kinde management API
To access endpoints in the Kinde management API, you need to go through the three set up steps above.
Kinde authentication frontend API
To access the OAuth endpoint, you will need to use a user token. This can be obtained when your users sign in via the methods you've setup in Kinde (e.g. Google, passwordless, etc). Find this using the getToken command in the relevant SDK.
OAuth
Get user profile
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/oauth2/v2/user_profile',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/oauth2/v2/user_profile", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/oauth2/v2/user_profile HTTP/1.1
Accept: application/json
GET /oauth2/v2/user_profile
This endpoint returns a user's ID, names, profile picture URL and email of the currently logged in user.
Example responses
200 Response
{
"sub": "kp_c3143a4b50ad43c88e541d9077681782",
"provided_id": "some_external_id",
"name": "John Snow",
"given_name": "John",
"family_name": "Snow",
"updated_at": 1612345678,
"email": "john.snow@example.com",
"email_verified": true,
"picture": "https://example.com/john_snow.jpg",
"preferred_username": "john_snow",
"id": "kp_c3143a4b50ad43c88e541d9077681782"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Details of logged in user. | user_profile_v2 |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Get token details
Code samples
const inputBody = '{
"token": "string",
"token_type": "string"
}';
const headers = {
'Content-Type':'application/x-www-form-urlencoded',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/oauth2/introspect',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/x-www-form-urlencoded"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/oauth2/introspect", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/oauth2/introspect HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Accept: application/json
POST /oauth2/introspect
Retrieve information about the provided token.
Body parameter
token: string
token_type: string
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | Token details. |
» token | body | string | false | The token to be introspected. |
» token_type | body | string | false | The provided token's type. |
Example responses
200 Response
{
"active": true,
"aud": [
"string"
],
"client_id": "string",
"exp": "string",
"iat": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Details of the token. | token_introspect |
401 | Unauthorized | Bad request. | token_error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Revoke token
Code samples
const inputBody = '{
"token": "string",
"client_id": "string",
"client_secret": "string"
}';
const headers = {
'Content-Type':'application/x-www-form-urlencoded',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/oauth2/revoke',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/x-www-form-urlencoded"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/oauth2/revoke", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/oauth2/revoke HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Accept: application/json
POST /oauth2/revoke
Revoke a previously issued token.
Body parameter
token: string
client_id: string
client_secret: string
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | Details of the token to be revoked. |
» token | body | string | false | The token to be revoked. |
» client_id | body | string | false | The identifier for your client. |
» client_secret | body | string | false | The secret associated with your client. |
Example responses
401 Response
{
"error": "string",
"error_description": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Token successfully revoked. | None |
401 | Unauthorized | Bad request. | token_error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
APIs
Get APIs
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/apis',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/apis", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/apis HTTP/1.1
Accept: application/json
GET /api/v1/apis
Returns a list of your APIs. The APIs are returned sorted by name.
read:apis
Example responses
200 Response
{
"code": "OK",
"message": "Success",
"next_token": "Njo5Om1hvWVfYXNj",
"apis": [
{
"id": "7ccd126599aa422a771abcb341596881",
"name": "Example API",
"audience": "https://api.example.com",
"is_management_api": false
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A list of APIs. | get_apis_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Create API
Code samples
const inputBody = '{
"name": "Example API",
"audience": "https://api.example.com"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/apis',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/apis", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/apis HTTP/1.1
Content-Type: application/json
Accept: application/json
POST /api/v1/apis
Register a new API. For more information read Register and manage APIs.
create:apis
Body parameter
{
"name": "Example API",
"audience": "https://api.example.com"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | none |
» name | body | string | true | The name of the API. (1-64 characters). |
» audience | body | string | true | A unique identifier for the API - commonly the URL. This value will be used as the audience parameter in authorization claims. (1-64 characters) |
Example responses
200 Response
{
"message": "Success",
"code": "OK",
"api": {
"id": "7ccd126599aa422a771abcb341596881"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | APIs successfully updated | create_apis_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Get API
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/apis/{api_id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/apis/{api_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/apis/{api_id} HTTP/1.1
Accept: application/json
GET /api/v1/apis/{api_id}
Retrieve API details by ID.
read:apis
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
api_id | path | string | true | The API's ID. |
Example responses
200 Response
{
"code": "OK",
"message": "success_response",
"api": {
"id": "7ccd126599aa422a771abcb341596881",
"name": "Example API",
"audience": "https://api.example.com",
"is_management_api": false,
"applications": [
{
"id": "3b0b5c6c8fcc464fab397f4969b5f482",
"name": "My M2M app",
"type": "Machine to machine (M2M)",
"is_active": true
}
]
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | API successfully retrieved. | get_api_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Delete API
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/apis/{api_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/apis/{api_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/apis/{api_id} HTTP/1.1
Accept: application/json
DELETE /api/v1/apis/{api_id}
Delete an API you previously created.
delete:apis
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
api_id | path | string | true | The API's ID. |
Example responses
200 Response
{
"message": "API successfully deleted",
"code": "API_DELETED"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | API successfully deleted. | delete_api_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Authorize API applications
Code samples
const inputBody = '{
"applications": [
{
"id": "d2db282d6214242b3b145c123f0c123",
"operation": "delete"
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/apis/{api_id}/applications',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/apis/{api_id}/applications", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/apis/{api_id}/applications HTTP/1.1
Content-Type: application/json
Accept: application/json
PATCH /api/v1/apis/{api_id}/applications
Authorize applications to be allowed to request access tokens for an API
update:apis
Body parameter
{
"applications": [
{
"id": "d2db282d6214242b3b145c123f0c123",
"operation": "delete"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | The applications you want to authorize. |
» applications | body | [object] | true | none |
»» id | body | string | true | The application's Client ID. |
»» operation | body | string | false | Optional operation, set to 'delete' to revoke authorization for the application. If not set, the application will be authorized. |
api_id | path | string | true | The API's ID. |
Example responses
200 Response
{
"message": "API applications updated",
"code": "API_APPLICATIONS_UPDATED",
"applications_disconnected": [
"string"
],
"applications_connected": [
"d2db282d6214242b3b145c123f0c123"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Authorized applications updated. | authorize_app_api_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Applications
Get applications
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/applications", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/applications HTTP/1.1
Accept: application/json
GET /api/v1/applications
Get a list of applications / clients.
read:applications
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
sort | query | string | false | Field and order to sort the result by. |
page_size | query | integer | false | Number of results per page. Defaults to 10 if parameter not sent. |
next_token | query | string | false | A string to get the next page of results if there are more results. |
Enumerated Values
Parameter | Value |
---|---|
sort | name_asc |
sort | name_desc |
Example responses
200 Response
{
"code": "string",
"message": "string",
"applications": [
{
"id": "string",
"name": "string",
"type": "string"
}
],
"next_token": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A successful response with a list of applications or an empty list. | get_applications_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Create application
Code samples
const inputBody = '{
"name": "React Native app",
"type": "reg"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/applications", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/applications HTTP/1.1
Content-Type: application/json
Accept: application/json
POST /api/v1/applications
Create a new client.
create:applications
Body parameter
{
"name": "React Native app",
"type": "reg"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | none |
» name | body | string | true | The application's name. |
» type | body | string | true | The application's type. Use reg for regular server rendered applications, spa for single-page applications, and m2m for machine-to-machine applications. |
Enumerated Values
Parameter | Value |
---|---|
» type | reg |
» type | spa |
» type | m2m |
Example responses
201 Response
{
"code": "string",
"message": "string",
"application": {
"id": "string",
"client_id": "string",
"client_secret": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Application successfully created. | create_application_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Get application
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications/{application_id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/applications/{application_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/applications/{application_id} HTTP/1.1
Accept: application/json
GET /api/v1/applications/{application_id}
Gets an application given the application's ID.
read:applications
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
application_id | path | string | true | The identifier for the application. |
Example responses
200 Response
{
"code": "string",
"message": "string",
"application": {
"id": "string",
"name": "string",
"type": "string",
"client_id": "string",
"client_secret": "string",
"login_uri": "string",
"homepage_uri": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Application successfully retrieved. | get_application_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Update Application
Code samples
const inputBody = '{
"name": "string",
"language_key": "string",
"logout_uris": [
"string"
],
"redirect_uris": [
"string"
],
"login_uri": "string",
"homepage_uri": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications/{application_id}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/applications/{application_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/applications/{application_id} HTTP/1.1
Content-Type: application/json
Accept: application/json
PATCH /api/v1/applications/{application_id}
Updates a client's settings. For more information, read Applications in Kinde
update:applications
Body parameter
{
"name": "string",
"language_key": "string",
"logout_uris": [
"string"
],
"redirect_uris": [
"string"
],
"login_uri": "string",
"homepage_uri": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
application_id | path | string | true | The identifier for the application. |
body | body | object | false | Application details. |
» name | body | string | false | The application's name. |
» language_key | body | string | false | The application's language key. |
» logout_uris | body | [string] | false | The application's logout uris. |
» redirect_uris | body | [string] | false | The application's redirect uris. |
» login_uri | body | string | false | The default login route for resolving session issues. |
» homepage_uri | body | string | false | The homepage link to your application. |
Example responses
400 Response
{
"errors": [
{
"code": "string",
"message": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Application successfully updated. | None |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Delete application
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications/{application_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/applications/{application_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/applications/{application_id} HTTP/1.1
Accept: application/json
DELETE /api/v1/applications/{application_id}
Delete a client / application.
delete:applications
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
application_id | path | string | true | The identifier for the application. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Application successfully deleted. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Get connections
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications/{application_id}/connections',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/applications/{application_id}/connections", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/applications/{application_id}/connections HTTP/1.1
Accept: application/json
GET /api/v1/applications/{application_id}/connections
Gets all connections for an application.
read:application_connections
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
application_id | path | string | true | The identifier/client ID for the application. |
Example responses
200 Response
{
"code": "string",
"message": "string",
"connections": [
{
"id": "string",
"name": "string",
"display_name": "string",
"strategy": "string"
}
],
"has_more": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Application connections successfully retrieved. | get_connections_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Enable connection
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications/{application_id}/connections/{connection_id}',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/applications/{application_id}/connections/{connection_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/applications/{application_id}/connections/{connection_id} HTTP/1.1
Accept: application/json
POST /api/v1/applications/{application_id}/connections/{connection_id}
Enable an auth connection for an application.
create:application_connections
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
application_id | path | string | true | The identifier/client ID for the application. |
connection_id | path | string | true | The identifier for the connection. |
Example responses
400 Response
{
"errors": [
{
"code": "string",
"message": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Connection successfully enabled. | None |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Remove connection
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications/{application_id}/connections/{connection_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/applications/{application_id}/connections/{connection_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/applications/{application_id}/connections/{connection_id} HTTP/1.1
Accept: application/json
DELETE /api/v1/applications/{application_id}/connections/{connection_id}
Turn off an auth connection for an application
delete:application_connections
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
application_id | path | string | true | The identifier/client ID for the application. |
connection_id | path | string | true | The identifier for the connection. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Connection successfully removed. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Get property values
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications/{application_id}/properties',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/applications/{application_id}/properties", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/applications/{application_id}/properties HTTP/1.1
Accept: application/json
GET /api/v1/applications/{application_id}/properties
Gets properties for an application by client ID.
read:application_properties
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
application_id | path | string | true | The application's ID / client ID. |
Example responses
200 Response
{
"code": "string",
"message": "string",
"properties": [
{
"id": "prop_0192b7e8b4f8ca08110d2b22059662a8",
"name": "Town",
"description": "Where the entity is located",
"key": "kp_town",
"value": "West-side Staines massive"
}
],
"next_token": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Properties successfully retrieved. | get_property_values_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Update property
Code samples
const inputBody = '{
"value": "Some new value"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications/{application_id}/properties/{property_key}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://{subdomain}.kinde.com/api/v1/applications/{application_id}/properties/{property_key}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT https://{subdomain}.kinde.com/api/v1/applications/{application_id}/properties/{property_key} HTTP/1.1
Content-Type: application/json
Accept: application/json
PUT /api/v1/applications/{application_id}/properties/{property_key}
Update application property value.
update:application_properties
Body parameter
{
"value": "Some new value"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | none |
» value | body | any | true | The new value for the propery |
»» anonymous | body | string | false | none |
»» anonymous | body | boolean | false | none |
application_id | path | string | true | The application's ID / client ID. |
property_key | path | string | true | The property's key. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Property successfully updated | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Business
Get business
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/business',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/business", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/business HTTP/1.1
Accept: application/json
GET /api/v1/business
Get your business details.
read:businesses
Example responses
200 Response
{
"code": "OK",
"message": "Success",
"business": {
"code": "bus_c69fb73b091",
"name": "Tailsforce Ltd",
"phone": "555-555-5555",
"email": "sally@example.com",
"industry": "Healthcare & Medical",
"timezone": "Los Angeles (Pacific Standard Time)",
"privacy_url": "https://example.com/privacy",
"terms_url": "https://example.com/terms"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Your business details. | get_business_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Update business
Code samples
const inputBody = '{
"business_name": "Tailsforce Ltd",
"email": "sally@example.com",
"industry_key": "construction",
"is_click_wrap": false,
"is_show_kinde_branding": true,
"kinde_perk_code": "string",
"phone": "123-456-7890",
"privacy_url": "https://example.com/privacy",
"terms_url": "https://example.com/terms",
"timezone_key": "los_angeles_pacific_standard_time"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/business',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/business", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/business HTTP/1.1
Content-Type: application/json
Accept: application/json
PATCH /api/v1/business
Update your business details.
update:businesses
Body parameter
{
"business_name": "Tailsforce Ltd",
"email": "sally@example.com",
"industry_key": "construction",
"is_click_wrap": false,
"is_show_kinde_branding": true,
"kinde_perk_code": "string",
"phone": "123-456-7890",
"privacy_url": "https://example.com/privacy",
"terms_url": "https://example.com/terms",
"timezone_key": "los_angeles_pacific_standard_time"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | The business details to update. |
» business_name | body | string¦null | false | The name of the business. |
body | string¦null | false | The email address of the business. | |
» industry_key | body | string¦null | false | The key of the industry of your business. Can be retrieved from the /industries endpoint. |
» is_click_wrap | body | boolean¦null | false | Whether the business is using clickwrap agreements. |
» is_show_kinde_branding | body | boolean¦null | false | Whether the business is showing Kinde branding. Requires a paid plan. |
» kinde_perk_code | body | string¦null | false | The Kinde perk code for the business. |
» phone | body | string¦null | false | The phone number of the business. |
» privacy_url | body | string¦null | false | The URL to the business's privacy policy. |
» terms_url | body | string¦null | false | The URL to the business's terms of service. |
» timezone_key | body | string¦null | false | The key of the timezone of your business. Can be retrieved from the /timezones endpoint. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Business successfully updated. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Industries
Get industries
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/industries',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/industries", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/industries HTTP/1.1
Accept: application/json
GET /api/v1/industries
Get a list of industries and associated industry keys.
read:industries
Example responses
200 Response
{
"code": "OK",
"message": "Success",
"industries": [
{
"key": "administration_office_support",
"name": "Administration & Office Support"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A list of industries. | get_industries_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Timezones
Get timezones
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/timezones',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/timezones", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/timezones HTTP/1.1
Accept: application/json
GET /api/v1/timezones
Get a list of timezones and associated timezone keys.
read:timezones
Example responses
200 Response
{
"code": "OK",
"message": "Success",
"timezones": [
{
"key": "london_greenwich_mean_time",
"name": "London (Greenwich Mean Time) [+01:00]"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A list of timezones. | get_timezones_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Callbacks
List Callback URLs
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_redirect_urls',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_redirect_urls", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_redirect_urls HTTP/1.1
Accept: application/json
GET /api/v1/applications/{app_id}/auth_redirect_urls
Returns an application's redirect callback URLs.
read:applications_redirect_uris
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
app_id | path | string | true | The identifier for the application. |
Example responses
200 Response
{
"redirect_urls": [
"string"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Callback URLs successfully retrieved. | redirect_callback_urls |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Add Redirect Callback URLs
Code samples
const inputBody = '{
"urls": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_redirect_urls',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_redirect_urls", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_redirect_urls HTTP/1.1
Content-Type: application/json
Accept: application/json; charset=utf-8
POST /api/v1/applications/{app_id}/auth_redirect_urls
Add additional redirect callback URLs.
create:applications_redirect_uris
Body parameter
{
"urls": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
app_id | path | string | true | The identifier for the application. |
body | body | object | true | Callback details. |
» urls | body | [string] | false | Array of callback urls. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Callbacks successfully updated | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Replace Redirect Callback URLs
Code samples
const inputBody = '{
"urls": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_redirect_urls',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_redirect_urls", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_redirect_urls HTTP/1.1
Content-Type: application/json
Accept: application/json; charset=utf-8
PUT /api/v1/applications/{app_id}/auth_redirect_urls
Replace all redirect callback URLs.
update:applications_redirect_uris
Body parameter
{
"urls": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
app_id | path | string | true | The identifier for the application. |
body | body | object | true | Callback details. |
» urls | body | [string] | false | Array of callback urls. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Callbacks successfully updated | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Delete Callback URLs
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_redirect_urls?urls=string',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_redirect_urls", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_redirect_urls?urls=string HTTP/1.1
Accept: application/json
DELETE /api/v1/applications/{app_id}/auth_redirect_urls
Delete callback URLs.
delete:applications_redirect_uris
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
app_id | path | string | true | The identifier for the application. |
urls | query | string | true | Urls to delete, comma separated and url encoded. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Callback URLs successfully deleted. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
List logout URLs
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_logout_urls',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_logout_urls", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_logout_urls HTTP/1.1
Accept: application/json
GET /api/v1/applications/{app_id}/auth_logout_urls
Returns an application's logout redirect URLs.
read:application_logout_uris
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
app_id | path | string | true | The identifier for the application. |
Example responses
200 Response
{
"logout_urls": [
"string"
],
"code": "OK",
"message": "Success"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Logout URLs successfully retrieved. | logout_redirect_urls |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Add logout redirect URLs
Code samples
const inputBody = '{
"urls": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_logout_urls',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_logout_urls", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_logout_urls HTTP/1.1
Content-Type: application/json
Accept: application/json
POST /api/v1/applications/{app_id}/auth_logout_urls
Add additional logout redirect URLs.
create:application_logout_uris
Body parameter
{
"urls": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
app_id | path | string | true | The identifier for the application. |
body | body | object | true | Callback details. |
» urls | body | [string] | false | Array of logout urls. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Logout URLs successfully updated. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Replace logout redirect URls
Code samples
const inputBody = '{
"urls": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_logout_urls',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_logout_urls", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_logout_urls HTTP/1.1
Content-Type: application/json
Accept: application/json
PUT /api/v1/applications/{app_id}/auth_logout_urls
Replace all logout redirect URLs.
update:application_logout_uris
Body parameter
{
"urls": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
app_id | path | string | true | The identifier for the application. |
body | body | object | true | Callback details. |
» urls | body | [string] | false | Array of logout urls. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Logout URLs successfully updated. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Delete Logout URLs
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_logout_urls?urls=string',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_logout_urls", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/applications/{app_id}/auth_logout_urls?urls=string HTTP/1.1
Accept: application/json
DELETE /api/v1/applications/{app_id}/auth_logout_urls
Delete logout URLs.
delete:application_logout_uris
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
app_id | path | string | true | The identifier for the application. |
urls | query | string | true | Urls to delete, comma separated and url encoded. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Logout URLs successfully deleted. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Connected Apps
Get Connected App URL
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/connected_apps/auth_url?key_code_ref=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/connected_apps/auth_url", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/connected_apps/auth_url?key_code_ref=string HTTP/1.1
Accept: application/json
GET /api/v1/connected_apps/auth_url
Get a URL that authenticates and authorizes a user to a third-party connected app.
read:connected_apps
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
key_code_ref | query | string | true | The unique key code reference of the connected app to authenticate against. |
user_id | query | string | false | The id of the user that needs to authenticate to the third-party connected app. |
org_code | query | string | false | The code of the Kinde organization that needs to authenticate to the third-party connected app. |
override_callback_url | query | string | false | A URL that overrides the default callback URL setup in your connected app configuration |
Example responses
200 Response
{
"url": "string",
"session_id": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A URL that can be used to authenticate and a session id to identify this authentication session. | connected_apps_auth_url |
400 | Bad Request | Error retrieving connected app auth url. | error_response |
403 | Forbidden | Invalid credentials. | None |
404 | Not Found | Error retrieving connected app auth url. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Get Connected App Token
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/connected_apps/token?session_id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/connected_apps/token", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/connected_apps/token?session_id=string HTTP/1.1
Accept: application/json
GET /api/v1/connected_apps/token
Get an access token that can be used to call the third-party provider linked to the connected app.
read:connected_apps
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
session_id | query | string | true | The unique sesssion id representing the login session of a user. |
Example responses
200 Response
{
"access_token": "string",
"access_token_expiry": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | An access token that can be used to query a third-party provider, as well as the token's expiry time. | connected_apps_access_token |
400 | Bad Request | The session id provided points to an invalid session. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Revoke Connected App Token
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/connected_apps/revoke?session_id=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/connected_apps/revoke", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/connected_apps/revoke?session_id=string HTTP/1.1
Accept: application/json
POST /api/v1/connected_apps/revoke
Revoke the tokens linked to the connected app session.
create:connected_apps
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
session_id | query | string | true | The unique sesssion id representing the login session of a user. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | An access token that can be used to query a third-party provider, as well as the token's expiry time. | success_response |
400 | Bad Request | Bad request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
405 | Method Not Allowed | Invalid HTTP method used. | None |
429 | Too Many Requests | Request was throttled. | None |
Connections
List Connections
Code samples
const headers = {
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/connections',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/connections", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/connections HTTP/1.1
Accept: application/json; charset=utf-8
GET /api/v1/connections
Returns a list of Connections
read:connections
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
page_size | query | integer | false | Number of results per page. Defaults to 10 if parameter not sent. |
starting_after | query | string | false | The ID of the connection to start after. |
ending_before | query | string | false | The ID of the connection to end before. |
Example responses
200 Response
{
"code": "string",
"message": "string",
"connections": [
{
"id": "string",
"name": "string",
"display_name": "string",
"strategy": "string"
}
],
"has_more": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Connections successfully retrieved. | get_connections_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Create Connection
Code samples
const inputBody = '{
"name": "string",
"display_name": "string",
"strategy": "oauth2:apple",
"enabled_applications": [
"string"
],
"options": {}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/connections',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/connections", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/connections HTTP/1.1
Content-Type: application/json
Accept: application/json
POST /api/v1/connections
Create Connection.
create:connections
Body parameter
{
"name": "string",
"display_name": "string",
"strategy": "oauth2:apple",
"enabled_applications": [
"string"
],
"options": {}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | Connection details. |
» name | body | string | true | The internal name of the connection. |
» display_name | body | string | true | The public facing name of the connection. |
» strategy | body | string | true | The identity provider identifier for the connection. |
» enabled_applications | body | [string] | false | Client IDs of applications in which this connection is to be enabled. |
» options | body | object | false | The connection's options (varies by strategy). |
Enumerated Values
Parameter | Value |
---|---|
» strategy | oauth2:apple |
» strategy | oauth2:azure_ad |
» strategy | oauth2:bitbucket |
» strategy | oauth2:discord |
» strategy | oauth2:facebook |
» strategy | oauth2:github |
» strategy | oauth2:gitlab |
» strategy | oauth2:google |
» strategy | oauth2:linkedin |
» strategy | oauth2:microsoft |
» strategy | oauth2:patreon |
» strategy | oauth2:slack |
» strategy | oauth2:stripe |
» strategy | oauth2:twitch |
» strategy | oauth2:twitter |
» strategy | oauth2:xero |
» strategy | saml:custom |
» strategy | wsfed:azure_ad |
Example responses
201 Response
{
"message": "string",
"code": "string",
"connection": {
"id": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Connection successfully created | create_connection_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Get Connection
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/connections/{connection_id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/connections/{connection_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/connections/{connection_id} HTTP/1.1
Accept: application/json
GET /api/v1/connections/{connection_id}
Get Connection.
read:connections
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
connection_id | path | string | true | The unique identifier for the connection. |
Example responses
200 Response
{
"id": "string",
"name": "string",
"display_name": "string",
"strategy": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Connection successfully retrieved. | connection |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Update Connection
Code samples
const inputBody = '{
"name": "string",
"display_name": "string",
"enabled_applications": [
"string"
],
"options": {}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/connections/{connection_id}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/connections/{connection_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/connections/{connection_id} HTTP/1.1
Content-Type: application/json
Accept: application/json
PATCH /api/v1/connections/{connection_id}
Update Connection.
update:connections
Body parameter
{
"name": "string",
"display_name": "string",
"enabled_applications": [
"string"
],
"options": {}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
connection_id | path | string | true | The unique identifier for the connection. |
body | body | object | true | The fields of the connection to update. |
» name | body | string | false | The internal name of the connection. |
» display_name | body | string | false | The public facing name of the connection. |
» enabled_applications | body | [string] | false | Client IDs of applications in which this connection is to be enabled. |
» options | body | object | false | The connection's options (varies by strategy). |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Connection successfully updated. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Delete Connection
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/connections/{connection_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/connections/{connection_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/connections/{connection_id} HTTP/1.1
Accept: application/json
DELETE /api/v1/connections/{connection_id}
Delete connection.
delete:connections
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
connection_id | path | string | true | The identifier for the connection. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Connection deleted. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Environments
Delete Environment Feature Flag Overrides
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/environment/feature_flags',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/environment/feature_flags", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/environment/feature_flags HTTP/1.1
Accept: application/json
DELETE /api/v1/environment/feature_flags
Delete all environment feature flag overrides.
delete:environment_feature_flags
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Feature flag overrides deleted successfully. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
List Environment Feature Flags
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/environment/feature_flags',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/environment/feature_flags", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/environment/feature_flags HTTP/1.1
Accept: application/json
GET /api/v1/environment/feature_flags
Get environment feature flags.
read:environment_feature_flags
Example responses
200 Response
{
"code": "string",
"message": "string",
"feature_flags": {
"property1": {
"type": "str",
"value": "string"
},
"property2": {
"type": "str",
"value": "string"
}
},
"next_token": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Feature flags retrieved successfully. | get_environment_feature_flags_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Delete Environment Feature Flag Override
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/environment/feature_flags/{feature_flag_key}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/environment/feature_flags/{feature_flag_key}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/environment/feature_flags/{feature_flag_key} HTTP/1.1
Accept: application/json
DELETE /api/v1/environment/feature_flags/{feature_flag_key}
Delete environment feature flag override.
delete:environment_feature_flags
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
feature_flag_key | path | string | true | The identifier for the feature flag. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Feature flag deleted successfully. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Update Environment Feature Flag Override
Code samples
const inputBody = '{
"value": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/environment/feature_flags/{feature_flag_key}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/environment/feature_flags/{feature_flag_key}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/environment/feature_flags/{feature_flag_key} HTTP/1.1
Content-Type: application/json
Accept: application/json
PATCH /api/v1/environment/feature_flags/{feature_flag_key}
Update environment feature flag override.
update:environment_feature_flags
Body parameter
{
"value": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
feature_flag_key | path | string | true | The identifier for the feature flag. |
body | body | object | true | Flag details. |
» value | body | string | true | The flag override value. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Feature flag override successful | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Environment variables
Get environment variables
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/environment_variables',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/environment_variables", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/environment_variables HTTP/1.1
Accept: application/json
GET /api/v1/environment_variables
Get environment variables. This feature is in beta and admin UI is not yet available.
read:environment_variables
Example responses
200 Response
{
"code": "OK",
"message": "Success",
"has_more": true,
"environment_variables": [
{
"id": "env_var_0192b1941f125645fa15bf28a662a0b3",
"key": "MY_API_KEY",
"value": "some-secret",
"is_secret": false,
"created_on": "2021-01-01T00:00:00Z"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A successful response with a list of environment variables or an empty list. | get_environment_variables_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Create environment variable
Code samples
const inputBody = '{
"key": "MY_API_KEY",
"value": "some-secret-value",
"is_secret": false
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/environment_variables',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/environment_variables", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/environment_variables HTTP/1.1
Content-Type: application/json
Accept: application/json
POST /api/v1/environment_variables
Create a new environment variable. This feature is in beta and admin UI is not yet available.
create:environment_variables
Body parameter
{
"key": "MY_API_KEY",
"value": "some-secret-value",
"is_secret": false
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | The environment variable details. |
» key | body | string | true | The name of the environment variable (max 128 characters). |
» value | body | string | true | The value of the new environment variable (max 2048 characters). |
» is_secret | body | boolean | false | Whether the environment variable is sensitive. Secrets are not-readable by you or your team after creation. |
Example responses
201 Response
{
"message": "Environment variable created",
"code": "VARIABLE_CREATED",
"environment_variable": {
"id": "env_var_0192b194f6156fb7452fe38cfb144958"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Environment variable successfully created. | create_environment_variable_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Get environment variable
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/environment_variables/{variable_id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/environment_variables/{variable_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/environment_variables/{variable_id} HTTP/1.1
Accept: application/json
GET /api/v1/environment_variables/{variable_id}
Retrieve environment variable details by ID. This feature is in beta and admin UI is not yet available.
read:environment_variables
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
variable_id | path | string | true | The environment variable's ID. |
Example responses
200 Response
{
"code": "OK",
"message": "Success",
"environment_variable": {
"id": "env_var_0192b1941f125645fa15bf28a662a0b3",
"key": "MY_API_KEY",
"value": "some-secret",
"is_secret": false,
"created_on": "2021-01-01T00:00:00Z"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Environment variable successfully retrieved. | get_environment_variable_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Update environment variable
Code samples
const inputBody = '{
"key": "MY_API_KEY",
"value": "new-secret-value",
"is_secret": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/environment_variables/{variable_id}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/environment_variables/{variable_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/environment_variables/{variable_id} HTTP/1.1
Content-Type: application/json
Accept: application/json
PATCH /api/v1/environment_variables/{variable_id}
Update an environment variable you previously created. This feature is in beta and admin UI is not yet available.
update:environment_variables
Body parameter
{
"key": "MY_API_KEY",
"value": "new-secret-value",
"is_secret": true
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | The new details for the environment variable |
» key | body | string | false | The key to update. |
» value | body | string | false | The new value for the environment variable. |
» is_secret | body | boolean | false | Whether the environment variable is sensitive. Secret variables are not-readable by you or your team after creation. |
variable_id | path | string | true | The environment variable's ID. |
Example responses
200 Response
{
"message": "Environment variable updated",
"code": "ENVIRONMENT_VARIABLE_UPDATED"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Environment variable successfully updated. | update_environment_variable_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Delete environment variable
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/environment_variables/{variable_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/environment_variables/{variable_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/environment_variables/{variable_id} HTTP/1.1
Accept: application/json
DELETE /api/v1/environment_variables/{variable_id}
Delete an environment variable you previously created. This feature is in beta and admin UI is not yet available.
delete:environment_variables
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
variable_id | path | string | true | The environment variable's ID. |
Example responses
200 Response
{
"message": "Environment variable deleted",
"code": "ENVIRONMENT_VARIABLE_DELETED"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Environment variable successfully deleted. | delete_environment_variable_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Feature Flags
Create Feature Flag
Code samples
const inputBody = '{
"name": "string",
"description": "string",
"key": "string",
"type": "str",
"allow_override_level": "env",
"default_value": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/feature_flags',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/feature_flags", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/feature_flags HTTP/1.1
Content-Type: application/json
Accept: application/json
POST /api/v1/feature_flags
Create feature flag.
create:feature_flags
Body parameter
{
"name": "string",
"description": "string",
"key": "string",
"type": "str",
"allow_override_level": "env",
"default_value": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | Flag details. |
» name | body | string | true | The name of the flag. |
» description | body | string | false | Description of the flag purpose. |
» key | body | string | true | The flag identifier to use in code. |
» type | body | string | true | The variable type. |
» allow_override_level | body | string | false | Allow the flag to be overridden at a different level. |
» default_value | body | string | true | Default value for the flag used by environments and organizations. |
Enumerated Values
Parameter | Value |
---|---|
» type | str |
» type | int |
» type | bool |
» allow_override_level | env |
» allow_override_level | org |
» allow_override_level | usr |
Example responses
201 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Feature flag successfully created | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Delete Feature Flag
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/feature_flags/{feature_flag_key}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/feature_flags/{feature_flag_key}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/feature_flags/{feature_flag_key} HTTP/1.1
Accept: application/json
DELETE /api/v1/feature_flags/{feature_flag_key}
Delete feature flag
delete:feature_flags
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
feature_flag_key | path | string | true | The identifier for the feature flag. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Feature flag successfully updated. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Replace Feature Flag
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/feature_flags/{feature_flag_key}?name=string&description=string&type=str&allow_override_level=env&default_value=string',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://{subdomain}.kinde.com/api/v1/feature_flags/{feature_flag_key}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT https://{subdomain}.kinde.com/api/v1/feature_flags/{feature_flag_key}?name=string&description=string&type=str&allow_override_level=env&default_value=string HTTP/1.1
Accept: application/json
PUT /api/v1/feature_flags/{feature_flag_key}
Update feature flag.
update:feature_flags
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
feature_flag_key | path | string | true | The key identifier for the feature flag. |
name | query | string | true | The name of the flag. |
description | query | string | true | Description of the flag purpose. |
type | query | string | true | The variable type |
allow_override_level | query | string | true | Allow the flag to be overridden at a different level. |
default_value | query | string | true | Default value for the flag used by environments and organizations. |
Enumerated Values
Parameter | Value |
---|---|
type | str |
type | int |
type | bool |
allow_override_level | env |
allow_override_level | org |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Feature flag successfully updated. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Identities
Get identity
Code samples
const headers = {
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/identities/{identity_id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/identities/{identity_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/identities/{identity_id} HTTP/1.1
Accept: application/json; charset=utf-8
GET /api/v1/identities/{identity_id}
Returns an identity by ID
read:identities
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
identity_id | path | string | true | The unique identifier for the identity. |
Example responses
200 Response
{
"id": "string",
"type": "string",
"is_confirmed": true,
"created_on": "string",
"last_login_on": "string",
"total_logins": 0,
"name": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Identity successfully retrieved. | identity |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Update identity
Code samples
const inputBody = '{
"is_primary": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/identities/{identity_id}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/identities/{identity_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/identities/{identity_id} HTTP/1.1
Content-Type: application/json
Accept: application/json
PATCH /api/v1/identities/{identity_id}
Update identity by ID.
update:identities
Body parameter
{
"is_primary": true
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
identity_id | path | string | true | The unique identifier for the identity. |
body | body | object | true | The fields of the identity to update. |
» is_primary | body | boolean | false | Whether the identity is the primary for it's type |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Identity successfully updated. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Delete identity
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/identities/{identity_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/identities/{identity_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/identities/{identity_id} HTTP/1.1
Accept: application/json
DELETE /api/v1/identities/{identity_id}
Delete identity by ID.
delete:identities
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
identity_id | path | string | true | The unique identifier for the identity. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Identity successfully deleted. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Organizations
Get organization
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organization',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/organization", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/organization HTTP/1.1
Accept: application/json
GET /api/v1/organization
Retrieve organization details by code.
read:organizations
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
code | query | string | false | The organization's code. |
Example responses
200 Response
{
"code": "org_1ccfb819462",
"name": "Acme Corp",
"handle": "acme_corp",
"is_default": false,
"external_id": "some1234",
"is_auto_membership_enabled": true,
"logo": "string",
"link_color": {
"raw": "#0056F1",
"hex": "#0056F1",
"hsl": "hsl(220, 100%, 50%)"
},
"background_color": {
"raw": "#ffffff",
"hex": "#ffffff",
"hsl": "hsl(0, 0%, 100%)"
},
"button_color": {
"raw": "#0056F1",
"hex": "#0056F1",
"hsl": "hsl(220, 100%, 50%)"
},
"button_text_color": {
"raw": "#ffffff",
"hex": "#ffffff",
"hsl": "hsl(0, 0%, 100%)"
},
"link_color_dark": {
"raw": "#0056F1",
"hex": "#0056F1",
"hsl": "hsl(220, 100%, 50%)"
},
"background_color_dark": {
"raw": "#0056F1",
"hex": "#0056F1",
"hsl": "hsl(220, 100%, 50%)"
},
"button_text_color_dark": {
"raw": "#0056F1",
"hex": "#0056F1",
"hsl": "hsl(220, 100%, 50%)"
},
"button_color_dark": {
"raw": "#0056F1",
"hex": "#0056F1",
"hsl": "hsl(220, 100%, 50%)"
},
"is_allow_registrations": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Organization successfully retrieved. | get_organization_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Create organization
Code samples
const inputBody = '{
"name": "Acme Corp",
"feature_flags": {
"property1": "str",
"property2": "str"
},
"external_id": "some1234",
"background_color": "string",
"button_color": "string",
"button_text_color": "string",
"link_color": "string",
"background_color_dark": "string",
"button_color_dark": "string",
"button_text_color_dark": "string",
"link_color_dark": "string",
"theme_code": "string",
"handle": "acme_corp",
"is_allow_registrations": true,
"is_custom_auth_connections_enabled": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organization',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/organization", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/organization HTTP/1.1
Content-Type: application/json
Accept: application/json
POST /api/v1/organization
Create a new organization. To learn more read about multi tenancy using organizations
create:organizations
Body parameter
{
"name": "Acme Corp",
"feature_flags": {
"property1": "str",
"property2": "str"
},
"external_id": "some1234",
"background_color": "string",
"button_color": "string",
"button_text_color": "string",
"link_color": "string",
"background_color_dark": "string",
"button_color_dark": "string",
"button_text_color_dark": "string",
"link_color_dark": "string",
"theme_code": "string",
"handle": "acme_corp",
"is_allow_registrations": true,
"is_custom_auth_connections_enabled": true
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | Organization details. |
» name | body | string | true | The organization's name. |
» feature_flags | body | object | false | The organization's feature flag settings. |
»» additionalProperties | body | string | false | Value of the feature flag. |
» external_id | body | string | false | The organization's external identifier - commonly used when migrating from or mapping to other systems. |
» background_color | body | string | false | The organization's brand settings - background color. |
» button_color | body | string | false | The organization's brand settings - button color. |
» button_text_color | body | string | false | The organization's brand settings - button text color. |
» link_color | body | string | false | The organization's brand settings - link color. |
» background_color_dark | body | string | false | The organization's brand settings - dark mode background color. |
» button_color_dark | body | string | false | The organization's brand settings - dark mode button color. |
» button_text_color_dark | body | string | false | The organization's brand settings - dark mode button text color. |
» link_color_dark | body | string | false | The organization's brand settings - dark mode link color. |
» theme_code | body | string | false | The organization's brand settings - theme/mode 'light' |
» handle | body | string | false | A unique handle for the organization - can be used for dynamic callback urls. |
» is_allow_registrations | body | boolean | false | If users become members of this organization when the org code is supplied during authentication. |
» is_custom_auth_connections_enabled | body | boolean | false | Enable custom auth connections for this organization. |
Enumerated Values
Parameter | Value |
---|---|
»» additionalProperties | str |
»» additionalProperties | int |
»» additionalProperties | bool |
Example responses
200 Response
{
"message": "Success",
"code": "OK",
"organization": {
"code": "org_1ccfb819462"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Organization successfully created. | create_organization_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Get organizations
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/organizations", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/organizations HTTP/1.1
Accept: application/json
GET /api/v1/organizations
Get a list of organizations.
read:organizations
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
sort | query | string | false | Field and order to sort the result by. |
page_size | query | integer | false | Number of results per page. Defaults to 10 if parameter not sent. |
next_token | query | string | false | A string to get the next page of results if there are more results. |
Enumerated Values
Parameter | Value |
---|---|
sort | name_asc |
sort | name_desc |
sort | email_asc |
sort | email_desc |
Example responses
200 Response
{
"code": "OK",
"message": "Success",
"organizations": [
{
"code": "org_1ccfb819462",
"name": "Acme Corp",
"handle": "acme_corp",
"is_default": false,
"external_id": "some1234",
"is_auto_membership_enabled": true
}
],
"next_token": "Mjo5Om1hbWVfYZNj"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Organizations successfully retreived. | get_organizations_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Update Organization
Code samples
const inputBody = '{
"name": "Acme Corp",
"external_id": "some1234",
"background_color": "#fff",
"button_color": "#fff",
"button_text_color": "#fff",
"link_color": "#fff",
"background_color_dark": "#000",
"button_color_dark": "#000",
"button_text_color_dark": "#000",
"link_color_dark": "#000",
"theme_code": "light",
"handle": "acme_corp",
"is_allow_registrations": true,
"is_custom_auth_connections_enabled": true,
"is_auto_join_domain_list": true,
"allowed_domains": [
"https://acme.kinde.com",
"https://acme.com"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organization/{org_code}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/organization/{org_code}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/organization/{org_code} HTTP/1.1
Content-Type: application/json
Accept: application/json
PATCH /api/v1/organization/{org_code}
Update an organization.
update:organizations
Body parameter
{
"name": "Acme Corp",
"external_id": "some1234",
"background_color": "#fff",
"button_color": "#fff",
"button_text_color": "#fff",
"link_color": "#fff",
"background_color_dark": "#000",
"button_color_dark": "#000",
"button_text_color_dark": "#000",
"link_color_dark": "#000",
"theme_code": "light",
"handle": "acme_corp",
"is_allow_registrations": true,
"is_custom_auth_connections_enabled": true,
"is_auto_join_domain_list": true,
"allowed_domains": [
"https://acme.kinde.com",
"https://acme.com"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The identifier for the organization. |
body | body | object | false | Organization details. |
» name | body | string | false | The organization's name. |
» external_id | body | string | false | The organization's ID. |
» background_color | body | string | false | The organization's brand settings - background color. |
» button_color | body | string | false | The organization's brand settings - button color. |
» button_text_color | body | string | false | The organization's brand settings - button text color. |
» link_color | body | string | false | The organization's brand settings - link color. |
» background_color_dark | body | string | false | The organization's brand settings - dark mode background color. |
» button_color_dark | body | string | false | The organization's brand settings - dark mode button color. |
» button_text_color_dark | body | string | false | The organization's brand settings - dark mode button text color. |
» link_color_dark | body | string | false | The organization's brand settings - dark mode link color. |
» theme_code | body | string | false | The organization's brand settings - theme/mode. |
» handle | body | string | false | The organization's handle. |
» is_allow_registrations | body | boolean | false | Deprecated - Use 'is_auto_membership_enabled' instead. |
» is_custom_auth_connections_enabled | body | boolean | false | Enable custom auth connections for this organization. |
» is_auto_join_domain_list | body | boolean | false | Users can sign up to this organization. |
» allowed_domains | body | [string] | false | Domains allowed for self-sign up to this environment. |
Enumerated Values
Parameter | Value |
---|---|
» theme_code | light |
» theme_code | dark |
» theme_code | user_preference |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Organization successfully updated. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Delete Organization
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organization/{org_code}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/organization/{org_code}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/organization/{org_code} HTTP/1.1
Accept: application/json
DELETE /api/v1/organization/{org_code}
Delete an organization.
delete:organizations
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The identifier for the organization. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Organization successfully deleted. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
404 | Not Found | The specified resource was not found | not_found_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
List Organization Users
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users HTTP/1.1
Accept: application/json
GET /api/v1/organizations/{org_code}/users
Get users in an organization.
read:organization_users
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
sort | query | string | false | Field and order to sort the result by. |
page_size | query | integer | false | Number of results per page. Defaults to 10 if parameter not sent. |
next_token | query | string | false | A string to get the next page of results if there are more results. |
org_code | path | string | true | The organization's code. |
permissions | query | string | false | Filter by user permissions comma separated (where all match) |
roles | query | string | false | Filter by user roles comma separated (where all match) |
Enumerated Values
Parameter | Value |
---|---|
sort | name_asc |
sort | name_desc |
sort | email_asc |
sort | email_desc |
sort | id_asc |
sort | id_desc |
Example responses
200 Response
{
"code": "string",
"message": "string",
"organization_users": [
{
"id": "string",
"email": "string",
"full_name": "string",
"last_name": "string",
"first_name": "string",
"picture": "string",
"roles": [
"string"
]
}
],
"next_token": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A successful response with a list of organization users or an empty list. | get_organization_users_response |
400 | Bad Request | Error creating user | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Add Organization Users
Code samples
const inputBody = '{
"users": [
{
"id": "string",
"roles": [
"string"
],
"permissions": [
"string"
]
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users HTTP/1.1
Content-Type: application/json
Accept: application/json
POST /api/v1/organizations/{org_code}/users
Add existing users to an organization.
create:organization_users
Body parameter
{
"users": [
{
"id": "string",
"roles": [
"string"
],
"permissions": [
"string"
]
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The organization's code. |
body | body | object | false | none |
» users | body | [object] | false | Users to be added to the organization. |
»» id | body | string | false | The users id. |
»» roles | body | [string] | false | Role keys to assign to the user. |
»» permissions | body | [string] | false | Permission keys to assign to the user. |
Example responses
200 Response
{
"code": "string",
"message": "string",
"users_added": [
"string"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Users successfully added. | add_organization_users_response |
204 | No Content | No users added. | None |
400 | Bad Request | Bad request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Update Organization Users
Code samples
const inputBody = '{
"users": [
{
"id": "string",
"operation": "string",
"roles": [
"string"
],
"permissions": [
"string"
]
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users HTTP/1.1
Content-Type: application/json
Accept: application/json
PATCH /api/v1/organizations/{org_code}/users
Update users that belong to an organization.
update:organization_users
Body parameter
{
"users": [
{
"id": "string",
"operation": "string",
"roles": [
"string"
],
"permissions": [
"string"
]
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The organization's code. |
body | body | object | false | none |
» users | body | [object] | false | Users to add, update or remove from the organization. |
»» id | body | string | false | The users id. |
»» operation | body | string | false | Optional operation, set to 'delete' to remove the user from the organization. |
»» roles | body | [string] | false | Role keys to assign to the user. |
»» permissions | body | [string] | false | Permission keys to assign to the user. |
Example responses
200 Response
{
"message": "string",
"users_added": [
"string"
],
"users_updated": [
"string"
],
"users_removed": [
"string"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Users successfully removed. | update_organization_users_response |
400 | Bad Request | Error updating organization user. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
List Organization User Roles
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/roles',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/roles", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/roles HTTP/1.1
Accept: application/json
GET /api/v1/organizations/{org_code}/users/{user_id}/roles
Get roles for an organization user.
read:organization_user_roles
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The organization's code. |
user_id | path | string | true | The user's id. |
Example responses
200 Response
{
"code": "string",
"message": "string",
"roles": [
{
"id": "string",
"key": "string",
"name": "string"
}
],
"next_token": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A successful response with a list of user roles. | get_organizations_user_roles_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Add Organization User Role
Code samples
const inputBody = '{
"role_id": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/roles',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/roles", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/roles HTTP/1.1
Content-Type: application/json
Accept: application/json
POST /api/v1/organizations/{org_code}/users/{user_id}/roles
Add role to an organization user.
create:organization_user_roles
Body parameter
{
"role_id": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The organization's code. |
user_id | path | string | true | The user's id. |
body | body | object | true | Role details. |
» role_id | body | string | false | The role id. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Role successfully added. | success_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Delete Organization User Role
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/roles/{role_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/roles/{role_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/roles/{role_id} HTTP/1.1
Accept: application/json
DELETE /api/v1/organizations/{org_code}/users/{user_id}/roles/{role_id}
Delete role for an organization user.
delete:organization_user_roles
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The organization's code. |
user_id | path | string | true | The user's id. |
role_id | path | string | true | The role id. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | User successfully removed. | success_response |
400 | Bad Request | Error creating user. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
List Organization User Permissions
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/permissions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/permissions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/permissions HTTP/1.1
Accept: application/json
GET /api/v1/organizations/{org_code}/users/{user_id}/permissions
Get permissions for an organization user.
read:organization_user_permissions
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The organization's code. |
user_id | path | string | true | The user's id. |
expand | query | string | false | Specify additional data to retrieve. Use "roles". |
Example responses
200 Response
{
"code": "string",
"message": "string",
"permissions": [
{
"id": "string",
"key": "string",
"name": "string",
"description": "string",
"roles": [
{
"id": "string",
"key": "string"
}
]
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A successful response with a list of user permissions. | get_organizations_user_permissions_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Add Organization User Permission
Code samples
const inputBody = '{
"permission_id": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/permissions',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/permissions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/permissions HTTP/1.1
Content-Type: application/json
Accept: application/json
POST /api/v1/organizations/{org_code}/users/{user_id}/permissions
Add permission to an organization user.
create:organization_user_permissions
Body parameter
{
"permission_id": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The organization's code. |
user_id | path | string | true | The user's id. |
body | body | object | true | Permission details. |
» permission_id | body | string | false | The permission id. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | User permission successfully updated. | success_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Delete Organization User Permission
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/permissions/{permission_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/permissions/{permission_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}/permissions/{permission_id} HTTP/1.1
Accept: application/json
DELETE /api/v1/organizations/{org_code}/users/{user_id}/permissions/{permission_id}
Delete permission for an organization user.
delete:organization_user_permissions
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The organization's code. |
user_id | path | string | true | The user's id. |
permission_id | path | string | true | The permission id. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | User successfully removed. | success_response |
400 | Bad Request | Error creating user. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Remove Organization User
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/users/{user_id} HTTP/1.1
Accept: application/json
DELETE /api/v1/organizations/{org_code}/users/{user_id}
Remove user from an organization.
delete:organization_users
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The organization's code. |
user_id | path | string | true | The user's id. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | User successfully removed from organization | success_response |
400 | Bad Request | Error removing user | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
List Organization Feature Flags
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/feature_flags',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/feature_flags", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/feature_flags HTTP/1.1
Accept: application/json
GET /api/v1/organizations/{org_code}/feature_flags
Get all organization feature flags.
read:organization_feature_flags
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The identifier for the organization. |
Example responses
200 Response
{
"code": "string",
"message": "string",
"feature_flags": {
"property1": {
"type": "str",
"value": "string"
},
"property2": {
"type": "str",
"value": "string"
}
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Feature flag overrides successfully returned. | get_organization_feature_flags_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Delete Organization Feature Flag Overrides
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/feature_flags',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/feature_flags", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/feature_flags HTTP/1.1
Accept: application/json
DELETE /api/v1/organizations/{org_code}/feature_flags
Delete all organization feature flag overrides.
delete:organization_feature_flags
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The identifier for the organization. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Feature flag overrides successfully deleted. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Delete Organization Feature Flag Override
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/feature_flags/{feature_flag_key}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/feature_flags/{feature_flag_key}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/feature_flags/{feature_flag_key} HTTP/1.1
Accept: application/json
DELETE /api/v1/organizations/{org_code}/feature_flags/{feature_flag_key}
Delete organization feature flag override.
delete:organization_feature_flags
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The identifier for the organization. |
feature_flag_key | path | string | true | The identifier for the feature flag. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Feature flag override successfully deleted. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Update Organization Feature Flag Override
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/feature_flags/{feature_flag_key}?value=string',
{
method: 'PATCH',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/feature_flags/{feature_flag_key}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/feature_flags/{feature_flag_key}?value=string HTTP/1.1
Accept: application/json
PATCH /api/v1/organizations/{org_code}/feature_flags/{feature_flag_key}
Update organization feature flag override.
update:organization_feature_flags
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The identifier for the organization |
feature_flag_key | path | string | true | The identifier for the feature flag |
value | query | string | true | Override value |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Feature flag override successfully updated. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Update Organization Property value
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/properties/{property_key}?value=string',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/properties/{property_key}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/properties/{property_key}?value=string HTTP/1.1
Accept: application/json
PUT /api/v1/organizations/{org_code}/properties/{property_key}
Update organization property value.
update:organization_properties
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The identifier for the organization |
property_key | path | string | true | The identifier for the property |
value | query | string | true | The new property value |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Property successfully updated. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Get Organization Property Values
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/properties',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/properties", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/properties HTTP/1.1
Accept: application/json
GET /api/v1/organizations/{org_code}/properties
Gets properties for an organization by org code.
read:organization_properties
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The organization's code. |
Example responses
200 Response
{
"code": "string",
"message": "string",
"properties": [
{
"id": "prop_0192b7e8b4f8ca08110d2b22059662a8",
"name": "Town",
"description": "Where the entity is located",
"key": "kp_town",
"value": "West-side Staines massive"
}
],
"next_token": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Properties successfully retrieved. | get_property_values_response |
400 | Bad Request | Bad request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Update Organization Property values
Code samples
const inputBody = '{
"properties": {}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/properties',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/properties", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/organizations/{org_code}/properties HTTP/1.1
Content-Type: application/json
Accept: application/json
PATCH /api/v1/organizations/{org_code}/properties
Update organization property values.
update:organization_properties
Body parameter
{
"properties": {}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The identifier for the organization |
body | body | object | true | Properties to update. |
» properties | body | object | true | Property keys and values |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Properties successfully updated. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Delete organization handle
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/organization/{org_code}/handle',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/organization/{org_code}/handle", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/organization/{org_code}/handle HTTP/1.1
Accept: application/json
DELETE /api/v1/organization/{org_code}/handle
Delete organization handle
delete:organization_handles
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
org_code | path | string | true | The organization's code. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Handle successfully deleted. | success_response |
400 | Bad Request | Bad request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Permissions
List Permissions
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/permissions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/permissions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/permissions HTTP/1.1
Accept: application/json
GET /api/v1/permissions
The returned list can be sorted by permission name or permission ID in ascending or descending order. The number of records to return at a time can also be controlled using the page_size
query string parameter.
read:permissions
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
sort | query | string | false | Field and order to sort the result by. |
page_size | query | integer | false | Number of results per page. Defaults to 10 if parameter not sent. |
next_token | query | string | false | A string to get the next page of results if there are more results. |
Enumerated Values
Parameter | Value |
---|---|
sort | name_asc |
sort | name_desc |
sort | id_asc |
sort | id_desc |
Example responses
200 Response
{
"code": "string",
"message": "string",
"permissions": [
{
"id": "string",
"key": "string",
"name": "string",
"description": "string"
}
],
"next_token": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Permissions successfully retrieved. | get_permissions_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Create Permission
Code samples
const inputBody = '{
"name": "string",
"description": "string",
"key": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/permissions',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/permissions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/permissions HTTP/1.1
Content-Type: application/json
Accept: application/json; charset=utf-8
POST /api/v1/permissions
Create a new permission.
create:permissions
Body parameter
{
"name": "string",
"description": "string",
"key": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | false | Permission details. |
» name | body | string | false | The permission's name. |
» description | body | string | false | The permission's description. |
» key | body | string | false | The permission identifier to use in code. |
Example responses
201 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Permission successfully created | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Update Permission
Code samples
const inputBody = '{
"name": "string",
"description": "string",
"key": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/permissions/{permission_id}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/permissions/{permission_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/permissions/{permission_id} HTTP/1.1
Content-Type: application/json
Accept: application/json; charset=utf-8
PATCH /api/v1/permissions/{permission_id}
Update permission
update:permissions
Body parameter
{
"name": "string",
"description": "string",
"key": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
permission_id | path | integer | true | The identifier for the permission. |
body | body | object | false | Permission details. |
» name | body | string | false | The permission's name. |
» description | body | string | false | The permission's description. |
» key | body | string | false | The permission identifier to use in code. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Permission successfully updated | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Delete Permission
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/permissions/{permission_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/permissions/{permission_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/permissions/{permission_id} HTTP/1.1
Accept: application/json
DELETE /api/v1/permissions/{permission_id}
Delete permission
delete:permissions
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
permission_id | path | string | true | The identifier for the permission. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | permission successfully updated. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Properties
List properties
Code samples
const headers = {
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/properties',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/properties", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/properties HTTP/1.1
Accept: application/json; charset=utf-8
GET /api/v1/properties
Returns a list of properties
read:properties
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
page_size | query | integer | false | Number of results per page. Defaults to 10 if parameter not sent. |
starting_after | query | string | false | The ID of the property to start after. |
ending_before | query | string | false | The ID of the property to end before. |
context | query | string | false | Filter results by user, organization or application context |
Enumerated Values
Parameter | Value |
---|---|
context | usr |
context | org |
context | app |
Example responses
200 Response
{
"code": "string",
"message": "string",
"properties": [
{
"id": "string",
"key": "string",
"name": "string",
"is_private": true,
"description": "string",
"is_kinde_property": true
}
],
"has_more": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Properties successfully retrieved. | get_properties_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Create Property
Code samples
const inputBody = '{
"name": "string",
"description": "string",
"key": "string",
"type": "single_line_text",
"context": "org",
"is_private": true,
"category_id": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/properties',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/properties", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/properties HTTP/1.1
Content-Type: application/json
Accept: application/json
POST /api/v1/properties
Create property.
create:properties
Body parameter
{
"name": "string",
"description": "string",
"key": "string",
"type": "single_line_text",
"context": "org",
"is_private": true,
"category_id": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | Property details. |
» name | body | string | true | The name of the property. |
» description | body | string | false | Description of the property purpose. |
» key | body | string | true | The property identifier to use in code. |
» type | body | string | true | The property type. |
» context | body | string | true | The context that the property applies to. |
» is_private | body | boolean | true | Whether the property can be included in id and access tokens. |
» category_id | body | string | true | Which category the property belongs to. |
Enumerated Values
Parameter | Value |
---|---|
» type | single_line_text |
» type | multi_line_text |
» context | org |
» context | usr |
» context | app |
Example responses
201 Response
{
"message": "string",
"code": "string",
"property": {
"id": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Property successfully created | create_property_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Update Property
Code samples
const inputBody = '{
"name": "string",
"description": "string",
"is_private": true,
"category_id": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/properties/{property_id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://{subdomain}.kinde.com/api/v1/properties/{property_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT https://{subdomain}.kinde.com/api/v1/properties/{property_id} HTTP/1.1
Content-Type: application/json
Accept: application/json
PUT /api/v1/properties/{property_id}
Update property.
update:properties
Body parameter
{
"name": "string",
"description": "string",
"is_private": true,
"category_id": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
property_id | path | string | true | The unique identifier for the property. |
body | body | object | true | The fields of the property to update. |
» name | body | string | true | The name of the property. |
» description | body | string | false | Description of the property purpose. |
» is_private | body | boolean | true | Whether the property can be included in id and access tokens. |
» category_id | body | string | true | Which category the property belongs to. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Property successfully updated. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Delete Property
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/properties/{property_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/properties/{property_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/properties/{property_id} HTTP/1.1
Accept: application/json
DELETE /api/v1/properties/{property_id}
Delete property.
delete:properties
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
property_id | path | string | true | The unique identifier for the property. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Property successfully deleted. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Property Categories
List categories
Code samples
const headers = {
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/property_categories',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/property_categories", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/property_categories HTTP/1.1
Accept: application/json; charset=utf-8
GET /api/v1/property_categories
Returns a list of categories.
read:property_categories
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
page_size | query | integer | false | Number of results per page. Defaults to 10 if parameter not sent. |
starting_after | query | string | false | The ID of the category to start after. |
ending_before | query | string | false | The ID of the category to end before. |
context | query | string | false | Filter the results by User or Organization context |
Enumerated Values
Parameter | Value |
---|---|
context | usr |
context | org |
Example responses
200 Response
{
"code": "string",
"message": "string",
"categories": [
{
"id": "string",
"name": "string"
}
],
"has_more": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Categories successfully retrieved. | get_categories_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Create Category
Code samples
const inputBody = '{
"name": "string",
"context": "org"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/property_categories',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/property_categories", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/property_categories HTTP/1.1
Content-Type: application/json
Accept: application/json
POST /api/v1/property_categories
Create category.
create:property_categories
Body parameter
{
"name": "string",
"context": "org"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | Category details. |
» name | body | string | true | The name of the category. |
» context | body | string | true | The context that the category applies to. |
Enumerated Values
Parameter | Value |
---|---|
» context | org |
» context | usr |
» context | app |
Example responses
201 Response
{
"message": "string",
"code": "string",
"category": {
"id": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Category successfully created | create_category_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Update Category
Code samples
const inputBody = '{
"name": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/property_categories/{category_id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://{subdomain}.kinde.com/api/v1/property_categories/{category_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT https://{subdomain}.kinde.com/api/v1/property_categories/{category_id} HTTP/1.1
Content-Type: application/json
Accept: application/json
PUT /api/v1/property_categories/{category_id}
Update category.
update:property_categories
Body parameter
{
"name": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
category_id | path | string | true | The unique identifier for the category. |
body | body | object | true | The fields of the category to update. |
» name | body | string | false | The name of the category. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | category successfully updated. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Roles
List roles
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/roles',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/roles", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/roles HTTP/1.1
Accept: application/json
GET /api/v1/roles
The returned list can be sorted by role name or role ID in ascending or descending order. The number of records to return at a time can also be controlled using the page_size
query string parameter.
read:roles
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
sort | query | string | false | Field and order to sort the result by. |
page_size | query | integer | false | Number of results per page. Defaults to 10 if parameter not sent. |
next_token | query | string | false | A string to get the next page of results if there are more results. |
Enumerated Values
Parameter | Value |
---|---|
sort | name_asc |
sort | name_desc |
sort | id_asc |
sort | id_desc |
Example responses
200 Response
{
"code": "string",
"message": "string",
"roles": [
{
"id": "string",
"key": "string",
"name": "string",
"description": "string",
"is_default_role": true
}
],
"next_token": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Roles successfully retrieved. | get_roles_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Create role
Code samples
const inputBody = '{
"name": "string",
"description": "string",
"key": "string",
"is_default_role": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/roles',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/roles", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/roles HTTP/1.1
Content-Type: application/json
Accept: application/json
POST /api/v1/roles
Create role.
create:roles
Body parameter
{
"name": "string",
"description": "string",
"key": "string",
"is_default_role": true
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | false | Role details. |
» name | body | string | false | The role's name. |
» description | body | string | false | The role's description. |
» key | body | string | false | The role identifier to use in code. |
» is_default_role | body | boolean | false | Set role as default for new users. |
Example responses
201 Response
{
"code": "string",
"message": "string",
"role": {
"id": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Role successfully created | create_roles_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Get role
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/roles/{role_id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/roles/{role_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/roles/{role_id} HTTP/1.1
Accept: application/json
GET /api/v1/roles/{role_id}
Get a role
read:roles
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
role_id | path | string | true | The identifier for the role. |
Example responses
200 Response
{
"code": "string",
"message": "string",
"role": {
"id": "01929904-316d-bb2c-069f-99dfea4ac394",
"key": "admin",
"name": "Administrator",
"description": "Full access to all resources.",
"is_default_role": false
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Role successfully retrieved. | get_role_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Update role
Code samples
const inputBody = '{
"name": "string",
"description": "string",
"key": "string",
"is_default_role": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/roles/{role_id}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/roles/{role_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/roles/{role_id} HTTP/1.1
Content-Type: application/json
Accept: application/json
PATCH /api/v1/roles/{role_id}
Update a role
update:roles
Body parameter
{
"name": "string",
"description": "string",
"key": "string",
"is_default_role": true
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
role_id | path | string | true | The identifier for the role. |
body | body | object | false | Role details. |
» name | body | string | true | The role's name. |
» description | body | string | false | The role's description. |
» key | body | string | true | The role identifier to use in code. |
» is_default_role | body | boolean | false | Set role as default for new users. |
Example responses
201 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Role successfully updated | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Delete role
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/roles/{role_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/roles/{role_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/roles/{role_id} HTTP/1.1
Accept: application/json
DELETE /api/v1/roles/{role_id}
Delete role
delete:roles
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
role_id | path | string | true | The identifier for the role. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Role successfully deleted. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Get role permissions
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/roles/{role_id}/permissions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/roles/{role_id}/permissions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/roles/{role_id}/permissions HTTP/1.1
Accept: application/json
GET /api/v1/roles/{role_id}/permissions
Get permissions for a role.
read:role_permissions
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
role_id | path | string | true | The role's public id. |
sort | query | string | false | Field and order to sort the result by. |
page_size | query | integer | false | Number of results per page. Defaults to 10 if parameter not sent. |
next_token | query | string | false | A string to get the next page of results if there are more results. |
Enumerated Values
Parameter | Value |
---|---|
sort | name_asc |
sort | name_desc |
sort | id_asc |
sort | id_desc |
Example responses
200 Response
[
{
"id": "string",
"key": "string",
"name": "string",
"description": "string"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A list of permissions for a role | roles_permission_response |
400 | Bad Request | Error removing user | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Update role permissions
Code samples
const inputBody = '{
"permissions": [
{
"id": "string",
"operation": "string"
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/roles/{role_id}/permissions',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/roles/{role_id}/permissions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/roles/{role_id}/permissions HTTP/1.1
Content-Type: application/json
Accept: application/json
PATCH /api/v1/roles/{role_id}/permissions
Update role permissions.
update:role_permissions
Body parameter
{
"permissions": [
{
"id": "string",
"operation": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
role_id | path | string | true | The identifier for the role. |
body | body | object | true | none |
» permissions | body | [object] | false | Permissions to add or remove from the role. |
»» id | body | string | false | The permission id. |
»» operation | body | string | false | Optional operation, set to 'delete' to remove the permission from the role. |
Example responses
200 Response
{
"code": "string",
"message": "string",
"permissions_added": [
"string"
],
"permissions_removed": [
"string"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Permissions successfully updated. | update_role_permissions_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Remove role permission
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/roles/{role_id}/permissions/{permission_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/roles/{role_id}/permissions/{permission_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/roles/{role_id}/permissions/{permission_id} HTTP/1.1
Accept: application/json
DELETE /api/v1/roles/{role_id}/permissions/{permission_id}
Remove a permission from a role.
delete:role_permissions
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
role_id | path | string | true | The role's public id. |
permission_id | path | string | true | The permission's public id. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Permission successfully removed from role | success_response |
400 | Bad Request | Error removing user | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Subscribers
List Subscribers
Code samples
const headers = {
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/subscribers',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/subscribers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/subscribers HTTP/1.1
Accept: application/json; charset=utf-8
GET /api/v1/subscribers
The returned list can be sorted by full name or email address
in ascending or descending order. The number of records to return at a time can also be controlled using the page_size
query
string parameter.
read:subscribers
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
sort | query | string | false | Field and order to sort the result by. |
page_size | query | integer | false | Number of results per page. Defaults to 10 if parameter not sent. |
next_token | query | string | false | A string to get the next page of results if there are more results. |
Enumerated Values
Parameter | Value |
---|---|
sort | name_asc |
sort | name_desc |
sort | email_asc |
sort | email_desc |
Example responses
200 Response
{
"code": "string",
"message": "string",
"subscribers": [
{
"id": "string",
"email": "string",
"full_name": "string",
"first_name": "string",
"last_name": "string"
}
],
"next_token": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Subscriber successfully retrieved. | get_subscribers_response |
403 | Forbidden | Bad request. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Create Subscriber
Code samples
const headers = {
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/subscribers?first_name=string&last_name=string&email=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/subscribers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/subscribers?first_name=string&last_name=string&email=string HTTP/1.1
Accept: application/json; charset=utf-8
POST /api/v1/subscribers
Create subscriber.
create:subscribers
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
first_name | query | string | true | Subscriber's first name. |
last_name | query | string | true | Subscriber's last name. |
query | string | true | The email address of the subscriber. |
Example responses
201 Response
{
"subscriber": {
"subscriber_id": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Subscriber successfully created | create_subscriber_success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Get Subscriber
Code samples
const headers = {
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/subscribers/{subscriber_id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/subscribers/{subscriber_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/subscribers/{subscriber_id} HTTP/1.1
Accept: application/json; charset=utf-8
GET /api/v1/subscribers/{subscriber_id}
Retrieve a subscriber record.
read:subscribers
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
subscriber_id | path | string | true | The subscriber's id. |
Example responses
200 Response
{
"code": "string",
"message": "string",
"subscribers": [
{
"id": "string",
"preferred_email": "string",
"first_name": "string",
"last_name": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Subscriber successfully retrieved. | get_subscriber_response |
400 | Bad Request | Bad request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Users
Get users
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/users',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/users", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/users HTTP/1.1
Accept: application/json
GET /api/v1/users
The returned list can be sorted by full name or email address in ascending or descending order. The number of records to return at a time can also be controlled using the page_size
query string parameter.
read:users
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
page_size | query | integer | false | Number of results per page. Defaults to 10 if parameter not sent. |
user_id | query | string | false | ID of the user to filter by. |
next_token | query | string | false | A string to get the next page of results if there are more results. |
query | string | false | Filter the results by email address. The query string should be comma separated and url encoded. | |
username | query | string | false | Filter the results by username. The query string should be comma separated and url encoded. |
expand | query | string | false | Specify additional data to retrieve. Use "organizations" and/or "identities". |
has_organization | query | boolean | false | Filter the results by if the user has at least one organization assigned. |
Example responses
200 Response
{
"code": "string",
"message": "string",
"users": [
{
"id": "string",
"provided_id": "string",
"email": "string",
"username": "string",
"last_name": "string",
"first_name": "string",
"is_suspended": true,
"picture": "string",
"total_sign_ins": 0,
"failed_sign_ins": 0,
"last_signed_in": "string",
"created_on": "string",
"organizations": [
"string"
],
"identities": [
{
"type": "string",
"identity": "string"
}
]
}
],
"next_token": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Users successfully retrieved. | users_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Refresh User Claims and Invalidate Cache
Code samples
const headers = {
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/users/{user_id}/refresh_claims',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/users/{user_id}/refresh_claims", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/users/{user_id}/refresh_claims HTTP/1.1
Accept: application/json; charset=utf-8
POST /api/v1/users/{user_id}/refresh_claims
Refreshes the user's claims and invalidates the current cache.
update:user_refresh_claims
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
user_id | path | string | true | The id of the user whose claims needs to be updated. |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Claims successfully refreshed. | success_response |
400 | Bad Request | Bad request. | error_response |
403 | Forbidden | Bad request. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Get user
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/user?id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/user", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/user?id=string HTTP/1.1
Accept: application/json
GET /api/v1/user
Retrieve a user record.
read:users
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | query | string | true | The user's id. |
expand | query | string | false | Specify additional data to retrieve. Use "organizations" and/or "identities". |
Example responses
200 Response
{
"id": "string",
"provided_id": "string",
"preferred_email": "string",
"username": "string",
"last_name": "string",
"first_name": "string",
"is_suspended": true,
"picture": "string",
"total_sign_ins": 0,
"failed_sign_ins": 0,
"last_signed_in": "string",
"created_on": "string",
"organizations": [
"string"
],
"identities": [
{
"type": "string",
"identity": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | User successfully updated. | user |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Create user
Code samples
const inputBody = '{
"profile": {
"given_name": "string",
"family_name": "string",
"picture": "string"
},
"organization_code": "string",
"provided_id": "string",
"identities": [
{
"type": "email",
"details": {
"email": "email@email.com"
}
},
{
"type": "phone",
"details": {
"phone": "+61426148233",
"phone_country_id": "au"
}
},
{
"type": "username",
"details": {
"username": "myusername"
}
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/user',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/user", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/user HTTP/1.1
Content-Type: application/json
Accept: application/json
POST /api/v1/user
Creates a user record and optionally zero or more identities for the user. An example identity could be the email address of the user.
create:users
Body parameter
{
"profile": {
"given_name": "string",
"family_name": "string",
"picture": "string"
},
"organization_code": "string",
"provided_id": "string",
"identities": [
{
"type": "email",
"details": {
"email": "email@email.com"
}
},
{
"type": "phone",
"details": {
"phone": "+61426148233",
"phone_country_id": "au"
}
},
{
"type": "username",
"details": {
"username": "myusername"
}
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | false | The details of the user to create. |
» profile | body | object | false | Basic information required to create a user. |
»» given_name | body | string | false | User's first name. |
»» family_name | body | string | false | User's last name. |
»» picture | body | string | false | The user's profile picture. |
» organization_code | body | string | false | The unique code associated with the organization you want the user to join. |
» provided_id | body | string | false | An external id to reference the user. |
» identities | body | [object] | false | Array of identities to assign to the created user |
»» type | body | string | false | The type of identity to create, e.g. email, username, or phone. |
»» details | body | object | false | Additional details required to create the user. |
body | string | false | The email address of the user. | |
»»» phone | body | string | false | The phone number of the user. |
»»» phone_country_id | body | string | false | The country code for the phone number. |
»»» username | body | string | false | The username of the user. |
Enumerated Values
Parameter | Value |
---|---|
»» type | |
»» type | phone |
»» type | username |
Example responses
200 Response
{
"id": "string",
"created": true,
"identities": [
{
"type": "string",
"result": {
"created": true
}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | User successfully created. | create_user_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Update user
Code samples
const inputBody = '{
"given_name": "string",
"family_name": "string",
"picture": "string",
"is_suspended": true,
"is_password_reset_requested": true,
"provided_id": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/user?id=string',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/user", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/user?id=string HTTP/1.1
Content-Type: application/json
Accept: application/json
PATCH /api/v1/user
Update a user record.
update:users
Body parameter
{
"given_name": "string",
"family_name": "string",
"picture": "string",
"is_suspended": true,
"is_password_reset_requested": true,
"provided_id": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | query | string | true | The user's id. |
body | body | object | true | The user to update. |
» given_name | body | string | false | User's first name. |
» family_name | body | string | false | User's last name. |
» picture | body | string | false | The user's profile picture. |
» is_suspended | body | boolean | false | Whether the user is currently suspended or not. |
» is_password_reset_requested | body | boolean | false | Prompt the user to change their password on next sign in. |
» provided_id | body | string | false | An external id to reference the user. |
Example responses
200 Response
{
"id": "string",
"given_name": "string",
"family_name": "string",
"email": "string",
"is_suspended": true,
"is_password_reset_requested": true,
"picture": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | User successfully updated. | update_user_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Delete user
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/user?id=kp_c3143a4b50ad43c88e541d9077681782',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/user", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/user?id=kp_c3143a4b50ad43c88e541d9077681782 HTTP/1.1
Accept: application/json
DELETE /api/v1/user
Delete a user record.
delete:users
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | query | string | true | The user's id. |
is_delete_profile | query | boolean | false | Delete all data and remove the user's profile from all of Kinde, including the subscriber list |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | User successfully deleted. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Unauthorized - invalid credentials. | error_response |
429 | Too Many Requests | Too many requests. Request was throttled. | error_response |
Update User Feature Flag Override
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/users/{user_id}/feature_flags/{feature_flag_key}?value=string',
{
method: 'PATCH',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/users/{user_id}/feature_flags/{feature_flag_key}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/users/{user_id}/feature_flags/{feature_flag_key}?value=string HTTP/1.1
Accept: application/json
PATCH /api/v1/users/{user_id}/feature_flags/{feature_flag_key}
Update user feature flag override.
update:user_feature_flags
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
user_id | path | string | true | The identifier for the user |
feature_flag_key | path | string | true | The identifier for the feature flag |
value | query | string | true | Override value |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Feature flag override successfully updated. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Update Property value
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/users/{user_id}/properties/{property_key}?value=string',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://{subdomain}.kinde.com/api/v1/users/{user_id}/properties/{property_key}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT https://{subdomain}.kinde.com/api/v1/users/{user_id}/properties/{property_key}?value=string HTTP/1.1
Accept: application/json
PUT /api/v1/users/{user_id}/properties/{property_key}
Update property value.
update:user_properties
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
user_id | path | string | true | The identifier for the user |
property_key | path | string | true | The identifier for the property |
value | query | string | true | The new property value |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Property successfully updated. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Get property values
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/users/{user_id}/properties',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/users/{user_id}/properties", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/users/{user_id}/properties HTTP/1.1
Accept: application/json
GET /api/v1/users/{user_id}/properties
Gets properties for an user by ID.
read:user_properties
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
user_id | path | string | true | The user's ID. |
Example responses
200 Response
{
"code": "string",
"message": "string",
"properties": [
{
"id": "prop_0192b7e8b4f8ca08110d2b22059662a8",
"name": "Town",
"description": "Where the entity is located",
"key": "kp_town",
"value": "West-side Staines massive"
}
],
"next_token": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Properties successfully retrieved. | get_property_values_response |
400 | Bad Request | Bad request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Update Property values
Code samples
const inputBody = '{
"properties": {}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/users/{user_id}/properties',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/users/{user_id}/properties", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/users/{user_id}/properties HTTP/1.1
Content-Type: application/json
Accept: application/json
PATCH /api/v1/users/{user_id}/properties
Update property values.
update:user_properties
Body parameter
{
"properties": {}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
user_id | path | string | true | The identifier for the user |
body | body | object | true | Properties to update. |
» properties | body | object | true | Property keys and values |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Properties successfully updated. | success_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Set User password
Code samples
const inputBody = '{
"hashed_password": "string",
"hashing_method": "bcrypt",
"salt": "string",
"salt_position": "prefix",
"is_temporary_password": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/users/{user_id}/password',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://{subdomain}.kinde.com/api/v1/users/{user_id}/password", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT https://{subdomain}.kinde.com/api/v1/users/{user_id}/password HTTP/1.1
Content-Type: application/json
Accept: application/json
PUT /api/v1/users/{user_id}/password
Set user password.
update:user_passwords
Body parameter
{
"hashed_password": "string",
"hashing_method": "bcrypt",
"salt": "string",
"salt_position": "prefix",
"is_temporary_password": true
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
user_id | path | string | true | The identifier for the user |
body | body | object | true | Password details. |
» hashed_password | body | string | true | The hashed password. |
» hashing_method | body | string | false | The hashing method or algorithm used to encrypt the user’s password. Default is bcrypt. |
» salt | body | string | false | Extra characters added to passwords to make them stronger. Not required for bcrypt. |
» salt_position | body | string | false | Position of salt in password string. Not required for bcrypt. |
» is_temporary_password | body | boolean | false | The user will be prompted to set a new password after entering this one. |
Enumerated Values
Parameter | Value |
---|---|
» hashing_method | bcrypt |
» hashing_method | crypt |
» hashing_method | md5 |
» hashing_method | wordpress |
» salt_position | prefix |
» salt_position | suffix |
Example responses
200 Response
{
"message": "Success",
"code": "OK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | User successfully created. | success_response |
400 | Bad Request | Error creating user. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Get identities
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/users/{user_id}/identities',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/users/{user_id}/identities", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/users/{user_id}/identities HTTP/1.1
Accept: application/json
GET /api/v1/users/{user_id}/identities
Gets a list of identities for an user by ID.
read:user_identities
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
user_id | path | string | true | The user's ID. |
starting_after | query | string | false | The ID of the identity to start after. |
ending_before | query | string | false | The ID of the identity to end before. |
Example responses
200 Response
{
"code": "string",
"message": "string",
"identities": [
{
"id": "string",
"type": "string",
"is_confirmed": true,
"created_on": "string",
"last_login_on": "string",
"total_logins": 0,
"name": "string"
}
],
"has_more": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Identities successfully retrieved. | get_identities_response |
400 | Bad Request | Bad request. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Create identity
Code samples
const inputBody = '{
"value": "sally@example.com",
"type": "email",
"phone_country_id": "au",
"connection_id": "conn_019289347f1193da6c0e4d49b97b4bd2"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/users/{user_id}/identities',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/users/{user_id}/identities", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/users/{user_id}/identities HTTP/1.1
Content-Type: application/json
Accept: application/json
POST /api/v1/users/{user_id}/identities
Creates an identity for a user.
create:user_identities
Body parameter
{
"value": "sally@example.com",
"type": "email",
"phone_country_id": "au",
"connection_id": "conn_019289347f1193da6c0e4d49b97b4bd2"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
user_id | path | string | true | The user's ID. |
body | body | object | false | The identity details. |
» value | body | string | false | The email address, social identity, or username of the user. |
» type | body | string | false | The identity type |
» phone_country_id | body | string | false | The country code for the phone number, only required when identity type is 'phone'. |
» connection_id | body | string | false | The social connection ID, only required when identity type is 'social'. |
Enumerated Values
Parameter | Value |
---|---|
» type | |
» type | username |
» type | phone |
» type | enterprise |
» type | social |
Example responses
201 Response
{
"message": "string",
"code": "string",
"identity": {
"id": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Identity successfully created. | create_identity_response |
400 | Bad Request | Error creating identity. | error_response |
403 | Forbidden | Invalid credentials. | None |
429 | Too Many Requests | Request was throttled. | None |
Webhooks
Get Event
Code samples
const headers = {
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/events/{event_id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/events/{event_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/events/{event_id} HTTP/1.1
Accept: application/json; charset=utf-8
GET /api/v1/events/{event_id}
Returns an event
read:events
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
event_id | path | string | true | The event id. |
Example responses
200 Response
{
"code": "string",
"message": "string",
"event": {
"type": "string",
"source": "string",
"event_id": "string",
"timestamp": "string",
"data": {}
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Event successfully retrieved. | get_event_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
List Event Types
Code samples
const headers = {
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/event_types',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/event_types", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/event_types HTTP/1.1
Accept: application/json; charset=utf-8
GET /api/v1/event_types
Returns a list event type definitions
read:event_types
Example responses
200 Response
{
"code": "string",
"message": "string",
"event_types": [
{
"id": "string",
"code": "string",
"name": "string",
"origin": "string",
"schema": {}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Event types successfully retrieved. | get_event_types_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Delete Webhook
Code samples
const headers = {
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/webhooks/{webhook_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://{subdomain}.kinde.com/api/v1/webhooks/{webhook_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE https://{subdomain}.kinde.com/api/v1/webhooks/{webhook_id} HTTP/1.1
Accept: application/json; charset=utf-8
DELETE /api/v1/webhooks/{webhook_id}
Delete webhook
delete:webhooks
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
webhook_id | path | string | true | The webhook id. |
Example responses
200 Response
{
"code": "string",
"message": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Webhook successfully deleted. | delete_webhook_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
List Webhooks
Code samples
const headers = {
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/webhooks',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://{subdomain}.kinde.com/api/v1/webhooks", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET https://{subdomain}.kinde.com/api/v1/webhooks HTTP/1.1
Accept: application/json; charset=utf-8
GET /api/v1/webhooks
List webhooks
read:webhooks
Example responses
200 Response
{
"code": "string",
"message": "string",
"webhooks": [
{
"id": "string",
"name": "string",
"endpoint": "string",
"description": "string",
"event_types": [
"string"
],
"created_on": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Webhook list successfully returned. | get_webhooks_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Create a Webhook
Code samples
const inputBody = '{
"endpoint": "string",
"event_types": [
"string"
],
"name": "string",
"description": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/webhooks',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://{subdomain}.kinde.com/api/v1/webhooks", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST https://{subdomain}.kinde.com/api/v1/webhooks HTTP/1.1
Content-Type: application/json
Accept: application/json; charset=utf-8
POST /api/v1/webhooks
Create a webhook
create:webhooks
Body parameter
{
"endpoint": "string",
"event_types": [
"string"
],
"name": "string",
"description": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | Webhook request specification. |
» endpoint | body | string | true | The webhook endpoint url |
» event_types | body | [string] | true | Array of event type keys |
» name | body | string | true | The webhook name |
» description | body | string¦null | false | The webhook description |
Example responses
200 Response
{
"code": "string",
"message": "string",
"webhook": {
"id": "string",
"endpoint": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Webhook successfully created. | create_webhook_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Update a Webhook
Code samples
const inputBody = '{
"event_types": [
"string"
],
"name": "string",
"description": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json; charset=utf-8',
'Authorization':'Bearer {access-token}'
};
fetch('https://{subdomain}.kinde.com/api/v1/webhooks',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json; charset=utf-8"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://{subdomain}.kinde.com/api/v1/webhooks", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PATCH https://{subdomain}.kinde.com/api/v1/webhooks HTTP/1.1
Content-Type: application/json
Accept: application/json; charset=utf-8
PATCH /api/v1/webhooks
Update a webhook
update:webhooks
Body parameter
{
"event_types": [
"string"
],
"name": "string",
"description": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | Update webhook request specification. |
» event_types | body | [string] | false | Array of event type keys |
» name | body | string | false | The webhook name |
» description | body | string¦null | false | The webhook description |
Example responses
200 Response
{
"message": "string",
"code": "string",
"webhook": {
"id": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Webhook successfully updated. | update_webhook_response |
400 | Bad Request | Invalid request. | error_response |
403 | Forbidden | Invalid credentials. | error_response |
429 | Too Many Requests | Request was throttled. | None |
Schemas
success_response
{
"message": "Success",
"code": "OK"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | none |
code | string | false | none | none |
error
{
"code": "string",
"message": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Error code. |
message | string | false | none | Error message. |
error_response
{
"errors": [
{
"code": "string",
"message": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
errors | [error] | false | none | none |
not_found_response
{
"errors": {
"code": "ROUTE_NOT_FOUND",
"message": "The requested API route does not exist"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
errors | object | false | none | none |
» code | string | false | none | none |
» message | string | false | none | none |
get_apis_response
{
"code": "OK",
"message": "Success",
"next_token": "Njo5Om1hvWVfYXNj",
"apis": [
{
"id": "7ccd126599aa422a771abcb341596881",
"name": "Example API",
"audience": "https://api.example.com",
"is_management_api": false
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
next_token | string | false | none | Pagination token. |
apis | [object] | false | none | none |
» id | string | false | none | The unique ID for the API. |
» name | string | false | none | The API’s name. |
» audience | string | false | none | A unique identifier for the API - commonly the URL. This value will be used as the audience parameter in authorization claims. |
» is_management_api | boolean | false | none | Whether or not it is the Kinde management API. |
create_apis_response
{
"message": "Success",
"code": "OK",
"api": {
"id": "7ccd126599aa422a771abcb341596881"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | A Kinde generated message. |
code | string | false | none | A Kinde generated status code. |
api | object | false | none | none |
» id | string | false | none | The unique ID for the API. |
get_environment_variables_response
{
"code": "OK",
"message": "Success",
"has_more": true,
"environment_variables": [
{
"id": "env_var_0192b1941f125645fa15bf28a662a0b3",
"key": "MY_API_KEY",
"value": "some-secret",
"is_secret": false,
"created_on": "2021-01-01T00:00:00Z"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
has_more | boolean | false | none | Whether more records exist. |
environment_variables | [environment_variable] | false | none | none |
get_environment_variable_response
{
"code": "OK",
"message": "Success",
"environment_variable": {
"id": "env_var_0192b1941f125645fa15bf28a662a0b3",
"key": "MY_API_KEY",
"value": "some-secret",
"is_secret": false,
"created_on": "2021-01-01T00:00:00Z"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
environment_variable | environment_variable | false | none | none |
create_environment_variable_response
{
"message": "Environment variable created",
"code": "VARIABLE_CREATED",
"environment_variable": {
"id": "env_var_0192b194f6156fb7452fe38cfb144958"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | A Kinde generated message. |
code | string | false | none | A Kinde generated status code. |
environment_variable | object | false | none | none |
» id | string | false | none | The unique ID for the environment variable. |
update_environment_variable_response
{
"message": "Environment variable updated",
"code": "ENVIRONMENT_VARIABLE_UPDATED"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | A Kinde generated message. |
code | string | false | none | A Kinde generated status code. |
delete_environment_variable_response
{
"message": "Environment variable deleted",
"code": "ENVIRONMENT_VARIABLE_DELETED"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | A Kinde generated message. |
code | string | false | none | A Kinde generated status code. |
get_business_response
{
"code": "OK",
"message": "Success",
"business": {
"code": "bus_c69fb73b091",
"name": "Tailsforce Ltd",
"phone": "555-555-5555",
"email": "sally@example.com",
"industry": "Healthcare & Medical",
"timezone": "Los Angeles (Pacific Standard Time)",
"privacy_url": "https://example.com/privacy",
"terms_url": "https://example.com/terms"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
business | object | false | none | none |
» code | string | false | none | The unique ID for the business. |
» name | string | false | none | Your business's name. |
» phone | string¦null | false | none | Phone number associated with business. |
string¦null | false | none | Email address associated with business. | |
» industry | string¦null | false | none | The industry your business is in. |
» timezone | string¦null | false | none | The timezone your business is in. |
» privacy_url | string¦null | false | none | Your Privacy policy URL. |
» terms_url | string¦null | false | none | Your Terms and Conditions URL. |
get_industries_response
{
"code": "OK",
"message": "Success",
"industries": [
{
"key": "administration_office_support",
"name": "Administration & Office Support"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
industries | [object] | false | none | none |
» key | string | false | none | The unique key for the industry. |
» name | string | false | none | The display name for the industry. |
get_timezones_response
{
"code": "OK",
"message": "Success",
"timezones": [
{
"key": "london_greenwich_mean_time",
"name": "London (Greenwich Mean Time) [+01:00]"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
timezones | [object] | false | none | none |
» key | string | false | none | The unique key for the timezone. |
» name | string | false | none | The display name for the timezone. |
get_api_response
{
"code": "OK",
"message": "success_response",
"api": {
"id": "7ccd126599aa422a771abcb341596881",
"name": "Example API",
"audience": "https://api.example.com",
"is_management_api": false,
"applications": [
{
"id": "3b0b5c6c8fcc464fab397f4969b5f482",
"name": "My M2M app",
"type": "Machine to machine (M2M)",
"is_active": true
}
]
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
api | object | false | none | none |
» id | string | false | none | Unique ID of the API. |
» name | string | false | none | The API’s name. |
» audience | string | false | none | A unique identifier for the API - commonly the URL. This value will be used as the audience parameter in authorization claims. |
» is_management_api | boolean | false | none | Whether or not it is the Kinde management API. |
» applications | [object] | false | none | none |
»» id | string | false | none | The Client ID of the application. |
»» name | string | false | none | The application's name. |
»» type | string | false | none | The application's type. |
»» is_active | boolean¦null | false | none | Whether or not the application is authorized to access the API |
Enumerated Values
Property | Value |
---|---|
type | Machine to machine (M2M) |
type | Back-end web |
type | Front-end and mobile |
authorize_app_api_response
{
"message": "API applications updated",
"code": "API_APPLICATIONS_UPDATED",
"applications_disconnected": [
"string"
],
"applications_connected": [
"d2db282d6214242b3b145c123f0c123"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | none |
code | string | false | none | none |
applications_disconnected | [string] | false | none | none |
applications_connected | [string] | false | none | none |
delete_api_response
{
"message": "API successfully deleted",
"code": "API_DELETED"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | none |
code | string | false | none | none |
user
{
"id": "string",
"provided_id": "string",
"preferred_email": "string",
"username": "string",
"last_name": "string",
"first_name": "string",
"is_suspended": true,
"picture": "string",
"total_sign_ins": 0,
"failed_sign_ins": 0,
"last_signed_in": "string",
"created_on": "string",
"organizations": [
"string"
],
"identities": [
{
"type": "string",
"identity": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | Unique ID of the user in Kinde. |
provided_id | string | false | none | External ID for user. |
preferred_email | string | false | none | Default email address of the user in Kinde. |
username | string | false | none | Primary username of the user in Kinde. |
last_name | string | false | none | User's last name. |
first_name | string | false | none | User's first name. |
is_suspended | boolean | false | none | Whether the user is currently suspended or not. |
picture | string | false | none | User's profile picture URL. |
total_sign_ins | integer¦null | false | none | Total number of user sign ins. |
failed_sign_ins | integer¦null | false | none | Number of consecutive failed user sign ins. |
last_signed_in | string¦null | false | none | Last sign in date in ISO 8601 format. |
created_on | string¦null | false | none | Date of user creation in ISO 8601 format. |
organizations | [string] | false | none | Array of organizations a user belongs to. |
identities | [object] | false | none | Array of identities belonging to the user. |
» type | string | false | none | none |
» identity | string | false | none | none |
update_user_response
{
"id": "string",
"given_name": "string",
"family_name": "string",
"email": "string",
"is_suspended": true,
"is_password_reset_requested": true,
"picture": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | Unique ID of the user in Kinde. |
given_name | string | false | none | User's first name. |
family_name | string | false | none | User's last name. |
string | false | none | User's preferred email. | |
is_suspended | boolean | false | none | Whether the user is currently suspended or not. |
is_password_reset_requested | boolean | false | none | Whether a password reset has been requested. |
picture | string¦null | false | none | User's profile picture URL. |
users
[
{
"id": "string",
"provided_id": "string",
"preferred_email": "string",
"username": "string",
"last_name": "string",
"first_name": "string",
"is_suspended": true,
"picture": "string",
"total_sign_ins": 0,
"failed_sign_ins": 0,
"last_signed_in": "string",
"created_on": "string",
"organizations": [
"string"
],
"identities": [
{
"type": "string",
"identity": "string"
}
]
}
]
Array of users.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [user] | false | none | Array of users. |
users_response
{
"code": "string",
"message": "string",
"users": [
{
"id": "string",
"provided_id": "string",
"email": "string",
"username": "string",
"last_name": "string",
"first_name": "string",
"is_suspended": true,
"picture": "string",
"total_sign_ins": 0,
"failed_sign_ins": 0,
"last_signed_in": "string",
"created_on": "string",
"organizations": [
"string"
],
"identities": [
{
"type": "string",
"identity": "string"
}
]
}
],
"next_token": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
users | [object] | false | none | none |
» id | string | false | none | Unique ID of the user in Kinde. |
» provided_id | string | false | none | External ID for user. |
string | false | none | Default email address of the user in Kinde. | |
» username | string | false | none | Primary username of the user in Kinde. |
» last_name | string | false | none | User's last name. |
» first_name | string | false | none | User's first name. |
» is_suspended | boolean | false | none | Whether the user is currently suspended or not. |
» picture | string | false | none | User's profile picture URL. |
» total_sign_ins | integer¦null | false | none | Total number of user sign ins. |
» failed_sign_ins | integer¦null | false | none | Number of consecutive failed user sign ins. |
» last_signed_in | string¦null | false | none | Last sign in date in ISO 8601 format. |
» created_on | string¦null | false | none | Date of user creation in ISO 8601 format. |
» organizations | [string] | false | none | Array of organizations a user belongs to. |
» identities | [object] | false | none | Array of identities belonging to the user. |
»» type | string | false | none | none |
»» identity | string | false | none | none |
next_token | string | false | none | Pagination token. |
create_user_response
{
"id": "string",
"created": true,
"identities": [
{
"type": "string",
"result": {
"created": true
}
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | Unique ID of the user in Kinde. |
created | boolean | false | none | True if the user was successfully created. |
identities | [user_identity] | false | none | none |
create_organization_response
{
"message": "Success",
"code": "OK",
"organization": {
"code": "org_1ccfb819462"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | Response message. |
code | string | false | none | Response code. |
organization | object | false | none | none |
» code | string | false | none | The organization's unique code. |
user_identity
{
"type": "string",
"result": {
"created": true
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The type of identity object created. |
result | object | false | none | The result of the user creation operation. |
» created | boolean | false | none | True if the user identity was successfully created. |
create_property_response
{
"message": "string",
"code": "string",
"property": {
"id": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | none |
code | string | false | none | none |
property | object | false | none | none |
» id | string | false | none | The property's ID. |
create_identity_response
{
"message": "string",
"code": "string",
"identity": {
"id": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | none |
code | string | false | none | none |
identity | object | false | none | none |
» id | string | false | none | The identity's ID. |
get_identities_response
{
"code": "string",
"message": "string",
"identities": [
{
"id": "string",
"type": "string",
"is_confirmed": true,
"created_on": "string",
"last_login_on": "string",
"total_logins": 0,
"name": "string"
}
],
"has_more": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
identities | [identity] | false | none | none |
has_more | boolean | false | none | Whether more records exist. |
get_properties_response
{
"code": "string",
"message": "string",
"properties": [
{
"id": "string",
"key": "string",
"name": "string",
"is_private": true,
"description": "string",
"is_kinde_property": true
}
],
"has_more": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
properties | [property] | false | none | none |
has_more | boolean | false | none | Whether more records exist. |
get_property_values_response
{
"code": "string",
"message": "string",
"properties": [
{
"id": "prop_0192b7e8b4f8ca08110d2b22059662a8",
"name": "Town",
"description": "Where the entity is located",
"key": "kp_town",
"value": "West-side Staines massive"
}
],
"next_token": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
properties | [property_value] | false | none | none |
next_token | string | false | none | Pagination token. |
create_category_response
{
"message": "string",
"code": "string",
"category": {
"id": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | none |
code | string | false | none | none |
category | object | false | none | none |
» id | string | false | none | The category's ID. |
get_categories_response
{
"code": "string",
"message": "string",
"categories": [
{
"id": "string",
"name": "string"
}
],
"has_more": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
categories | [category] | false | none | none |
has_more | boolean | false | none | Whether more records exist. |
get_event_response
{
"code": "string",
"message": "string",
"event": {
"type": "string",
"source": "string",
"event_id": "string",
"timestamp": "string",
"data": {}
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
event | object | false | none | none |
» type | string | false | none | none |
» source | string | false | none | none |
» event_id | string | false | none | none |
» timestamp | string | false | none | Timestamp in ISO 8601 format. |
» data | object | false | none | Event specific data object. |
get_event_types_response
{
"code": "string",
"message": "string",
"event_types": [
{
"id": "string",
"code": "string",
"name": "string",
"origin": "string",
"schema": {}
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
event_types | [event_type] | false | none | none |
get_webhooks_response
{
"code": "string",
"message": "string",
"webhooks": [
{
"id": "string",
"name": "string",
"endpoint": "string",
"description": "string",
"event_types": [
"string"
],
"created_on": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
webhooks | [webhook] | false | none | none |
webhook
{
"id": "string",
"name": "string",
"endpoint": "string",
"description": "string",
"event_types": [
"string"
],
"created_on": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
name | string | false | none | none |
endpoint | string | false | none | none |
description | string | false | none | none |
event_types | [string] | false | none | none |
created_on | string | false | none | Created on date in ISO 8601 format. |
create_webhook_response
{
"code": "string",
"message": "string",
"webhook": {
"id": "string",
"endpoint": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
webhook | object | false | none | none |
» id | string | false | none | none |
» endpoint | string | false | none | none |
update_webhook_response
{
"message": "string",
"code": "string",
"webhook": {
"id": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | none |
code | string | false | none | none |
webhook | object | false | none | none |
» id | string | false | none | none |
create_connection_response
{
"message": "string",
"code": "string",
"connection": {
"id": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | none |
code | string | false | none | none |
connection | object | false | none | none |
» id | string | false | none | The connection's ID. |
get_connections_response
{
"code": "string",
"message": "string",
"connections": [
{
"id": "string",
"name": "string",
"display_name": "string",
"strategy": "string"
}
],
"has_more": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
connections | [connection] | false | none | none |
has_more | boolean | false | none | Whether more records exist. |
delete_webhook_response
{
"code": "string",
"message": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
event_type
{
"id": "string",
"code": "string",
"name": "string",
"origin": "string",
"schema": {}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
code | string | false | none | none |
name | string | false | none | none |
origin | string | false | none | none |
schema | object | false | none | none |
token_introspect
{
"active": true,
"aud": [
"string"
],
"client_id": "string",
"exp": "string",
"iat": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
active | boolean | false | none | Indicates the status of the token. |
aud | [string] | false | none | Array of intended token recipients. |
client_id | string | false | none | Identifier for the requesting client. |
exp | string | false | none | Token expiration timestamp. |
iat | string | false | none | Token issuance timestamp. |
token_error_response
{
"error": "string",
"error_description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
error | string | false | none | Error. |
error_description | string | false | none | The error description. |
user_profile_v2
{
"sub": "kp_c3143a4b50ad43c88e541d9077681782",
"provided_id": "some_external_id",
"name": "John Snow",
"given_name": "John",
"family_name": "Snow",
"updated_at": 1612345678,
"email": "john.snow@example.com",
"email_verified": true,
"picture": "https://example.com/john_snow.jpg",
"preferred_username": "john_snow",
"id": "kp_c3143a4b50ad43c88e541d9077681782"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
sub | string | false | none | Unique ID of the user in Kinde. |
provided_id | string¦null | false | none | Value of the user's ID in a third-party system when the user is imported into Kinde. |
name | string | false | none | User's first and last name separated by a space. |
given_name | string | false | none | User's first name. |
family_name | string | false | none | User's last name. |
updated_at | integer | false | none | Date the user was last updated at (In Unix time). |
string | false | none | User's email address if available. | |
email_verified | boolean | false | none | Whether the user's email address has been verified. |
picture | string¦null | false | none | URL that point's to the user's picture or avatar |
preferred_username | string¦null | false | none | User's preferred username. |
id | string | false | none | Unique ID of the user in Kinde |
organization_item_schema
{
"code": "org_1ccfb819462",
"name": "Acme Corp",
"handle": "acme_corp",
"is_default": false,
"external_id": "some1234",
"is_auto_membership_enabled": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | The unique identifier for the organization. |
name | string | false | none | The organization's name. |
handle | string¦null | false | none | A unique handle for the organization - can be used for dynamic callback urls. |
is_default | boolean | false | none | Whether the organization is the default organization. |
external_id | string¦null | false | none | The organization's external identifier - commonly used when migrating from or mapping to other systems. |
is_auto_membership_enabled | boolean | false | none | If users become members of this organization when the org code is supplied during authentication. |
get_organization_response
{
"code": "org_1ccfb819462",
"name": "Acme Corp",
"handle": "acme_corp",
"is_default": false,
"external_id": "some1234",
"is_auto_membership_enabled": true,
"logo": "string",
"link_color": {
"raw": "#0056F1",
"hex": "#0056F1",
"hsl": "hsl(220, 100%, 50%)"
},
"background_color": {
"raw": "#ffffff",
"hex": "#ffffff",
"hsl": "hsl(0, 0%, 100%)"
},
"button_color": {
"raw": "#0056F1",
"hex": "#0056F1",
"hsl": "hsl(220, 100%, 50%)"
},
"button_text_color": {
"raw": "#ffffff",
"hex": "#ffffff",
"hsl": "hsl(0, 0%, 100%)"
},
"link_color_dark": {
"raw": "#0056F1",
"hex": "#0056F1",
"hsl": "hsl(220, 100%, 50%)"
},
"background_color_dark": {
"raw": "#0056F1",
"hex": "#0056F1",
"hsl": "hsl(220, 100%, 50%)"
},
"button_text_color_dark": {
"raw": "#0056F1",
"hex": "#0056F1",
"hsl": "hsl(220, 100%, 50%)"
},
"button_color_dark": {
"raw": "#0056F1",
"hex": "#0056F1",
"hsl": "hsl(220, 100%, 50%)"
},
"is_allow_registrations": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | The unique identifier for the organization. |
name | string | false | none | The organization's name. |
handle | string¦null | false | none | A unique handle for the organization - can be used for dynamic callback urls. |
is_default | boolean | false | none | Whether the organization is the default organization. |
external_id | string¦null | false | none | The organization's external identifier - commonly used when migrating from or mapping to other systems. |
is_auto_membership_enabled | boolean | false | none | If users become members of this organization when the org code is supplied during authentication. |
logo | string¦null | false | none | none |
link_color | object¦null | false | none | none |
» raw | string | false | none | none |
» hex | string | false | none | none |
» hsl | string | false | none | none |
background_color | object¦null | false | none | none |
» raw | string | false | none | none |
» hex | string | false | none | none |
» hsl | string | false | none | none |
button_color | object¦null | false | none | none |
» raw | string | false | none | none |
» hex | string | false | none | none |
» hsl | string | false | none | none |
button_text_color | object¦null | false | none | none |
» raw | string | false | none | none |
» hex | string | false | none | none |
» hsl | string | false | none | none |
link_color_dark | object¦null | false | none | none |
» raw | string | false | none | none |
» hex | string | false | none | none |
» hsl | string | false | none | none |
background_color_dark | object¦null | false | none | none |
» raw | string | false | none | none |
» hex | string | false | none | none |
» hsl | string | false | none | none |
button_text_color_dark | object¦null | false | none | none |
» raw | string | false | none | none |
» hex | string | false | none | none |
» hsl | string | false | none | none |
button_color_dark | object¦null | false | none | none |
» raw | string | false | none | none |
» hex | string | false | none | none |
» hsl | string | false | none | none |
is_allow_registrations | boolean¦null | false | none | Deprecated - Use 'is_auto_membership_enabled' instead |
organization_user
{
"id": "string",
"email": "string",
"full_name": "string",
"last_name": "string",
"first_name": "string",
"picture": "string",
"roles": [
"string"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
string | false | none | none | |
full_name | string | false | none | none |
last_name | string | false | none | none |
first_name | string | false | none | none |
picture | string | false | none | none |
roles | [string] | false | none | none |
category
{
"id": "string",
"name": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
name | string | false | none | none |
connection
{
"id": "string",
"name": "string",
"display_name": "string",
"strategy": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
name | string | false | none | none |
display_name | string | false | none | none |
strategy | string | false | none | none |
environment_variable
{
"id": "env_var_0192b1941f125645fa15bf28a662a0b3",
"key": "MY_API_KEY",
"value": "some-secret",
"is_secret": false,
"created_on": "2021-01-01T00:00:00Z"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | The unique ID for the environment variable. |
key | string | false | none | The name of the environment variable. |
value | string¦null | false | none | The value of the environment variable. |
is_secret | boolean | false | none | Whether the environment variable is sensitive. |
created_on | string | false | none | The date the environment variable was created. |
identity
{
"id": "string",
"type": "string",
"is_confirmed": true,
"created_on": "string",
"last_login_on": "string",
"total_logins": 0,
"name": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
type | string | false | none | none |
is_confirmed | boolean | false | none | none |
created_on | string | false | none | Date of user creation in ISO 8601 format. |
last_login_on | string | false | none | Date of user creation in ISO 8601 format. |
total_logins | integer | false | none | none |
name | string | false | none | none |
property
{
"id": "string",
"key": "string",
"name": "string",
"is_private": true,
"description": "string",
"is_kinde_property": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
key | string | false | none | none |
name | string | false | none | none |
is_private | boolean | false | none | none |
description | string | false | none | none |
is_kinde_property | boolean | false | none | none |
property_value
{
"id": "prop_0192b7e8b4f8ca08110d2b22059662a8",
"name": "Town",
"description": "Where the entity is located",
"key": "kp_town",
"value": "West-side Staines massive"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
name | string | false | none | none |
description | string¦null | false | none | none |
key | string | false | none | none |
value | string¦null | false | none | none |
role
{
"id": "string",
"key": "string",
"name": "string",
"description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
key | string | false | none | none |
name | string | false | none | none |
description | string | false | none | none |
subscribers_subscriber
{
"id": "string",
"email": "string",
"full_name": "string",
"first_name": "string",
"last_name": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
string | false | none | none | |
full_name | string | false | none | none |
first_name | string | false | none | none |
last_name | string | false | none | none |
subscriber
{
"id": "string",
"preferred_email": "string",
"first_name": "string",
"last_name": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
preferred_email | string | false | none | none |
first_name | string | false | none | none |
last_name | string | false | none | none |
organization_user_role
{
"id": "string",
"key": "string",
"name": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
key | string | false | none | none |
name | string | false | none | none |
organization_user_role_permissions
{
"id": "string",
"role": "string",
"permissions": {
"key": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
role | string | false | none | none |
permissions | object | false | none | none |
» key | string | false | none | none |
organization_user_permission
{
"id": "string",
"key": "string",
"name": "string",
"description": "string",
"roles": [
{
"id": "string",
"key": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
key | string | false | none | none |
name | string | false | none | none |
description | string | false | none | none |
roles | [object] | false | none | none |
» id | string | false | none | none |
» key | string | false | none | none |
organization_users
[
{
"id": "string",
"email": "string",
"full_name": "string",
"last_name": "string",
"first_name": "string",
"picture": "string",
"roles": [
"string"
]
}
]
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [organization_user] | false | none | none |
get_subscriber_response
{
"code": "string",
"message": "string",
"subscribers": [
{
"id": "string",
"preferred_email": "string",
"first_name": "string",
"last_name": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
subscribers | [subscriber] | false | none | none |
get_subscribers_response
{
"code": "string",
"message": "string",
"subscribers": [
{
"id": "string",
"email": "string",
"full_name": "string",
"first_name": "string",
"last_name": "string"
}
],
"next_token": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
subscribers | [subscribers_subscriber] | false | none | none |
next_token | string | false | none | Pagination token. |
get_roles_response
{
"code": "string",
"message": "string",
"roles": [
{
"id": "string",
"key": "string",
"name": "string",
"description": "string",
"is_default_role": true
}
],
"next_token": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
roles | [roles] | false | none | none |
next_token | string | false | none | Pagination token. |
get_role_response
{
"code": "string",
"message": "string",
"role": {
"id": "01929904-316d-bb2c-069f-99dfea4ac394",
"key": "admin",
"name": "Administrator",
"description": "Full access to all resources.",
"is_default_role": false
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
role | object | false | none | none |
» id | string | false | none | The role's ID. |
» key | string | false | none | The role identifier to use in code. |
» name | string | false | none | The role's name. |
» description | string | false | none | The role's description. |
» is_default_role | boolean | false | none | Whether the role is the default role. |
create_roles_response
{
"code": "string",
"message": "string",
"role": {
"id": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
role | object | false | none | none |
» id | string | false | none | The role's ID. |
get_organizations_response
{
"code": "OK",
"message": "Success",
"organizations": [
{
"code": "org_1ccfb819462",
"name": "Acme Corp",
"handle": "acme_corp",
"is_default": false,
"external_id": "some1234",
"is_auto_membership_enabled": true
}
],
"next_token": "Mjo5Om1hbWVfYZNj"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
organizations | [organization_item_schema] | false | none | none |
next_token | string | false | none | Pagination token. |
get_organization_users_response
{
"code": "string",
"message": "string",
"organization_users": [
{
"id": "string",
"email": "string",
"full_name": "string",
"last_name": "string",
"first_name": "string",
"picture": "string",
"roles": [
"string"
]
}
],
"next_token": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
organization_users | [organization_user] | false | none | none |
next_token | string | false | none | Pagination token. |
get_organizations_user_roles_response
{
"code": "string",
"message": "string",
"roles": [
{
"id": "string",
"key": "string",
"name": "string"
}
],
"next_token": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
roles | [organization_user_role] | false | none | none |
next_token | string | false | none | Pagination token. |
get_organizations_user_permissions_response
{
"code": "string",
"message": "string",
"permissions": [
{
"id": "string",
"key": "string",
"name": "string",
"description": "string",
"roles": [
{
"id": "string",
"key": "string"
}
]
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
permissions | [organization_user_permission] | false | none | none |
get_organization_feature_flags_response
{
"code": "string",
"message": "string",
"feature_flags": {
"property1": {
"type": "str",
"value": "string"
},
"property2": {
"type": "str",
"value": "string"
}
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
feature_flags | object | false | none | The environment's feature flag settings. |
» additionalProperties | object | false | none | none |
»» type | string | false | none | none |
»» value | string | false | none | none |
Enumerated Values
Property | Value |
---|---|
type | str |
type | int |
type | bool |
get_environment_feature_flags_response
{
"code": "string",
"message": "string",
"feature_flags": {
"property1": {
"type": "str",
"value": "string"
},
"property2": {
"type": "str",
"value": "string"
}
},
"next_token": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
feature_flags | object | false | none | The environment's feature flag settings. |
» additionalProperties | object | false | none | none |
»» type | string | false | none | none |
»» value | string | false | none | none |
next_token | string | false | none | Pagination token. |
Enumerated Values
Property | Value |
---|---|
type | str |
type | int |
type | bool |
add_organization_users_response
{
"code": "string",
"message": "string",
"users_added": [
"string"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
users_added | [string] | false | none | none |
update_role_permissions_response
{
"code": "string",
"message": "string",
"permissions_added": [
"string"
],
"permissions_removed": [
"string"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | none |
message | string | false | none | none |
permissions_added | [string] | false | none | none |
permissions_removed | [string] | false | none | none |
update_organization_users_response
{
"message": "string",
"users_added": [
"string"
],
"users_updated": [
"string"
],
"users_removed": [
"string"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | none |
users_added | [string] | false | none | none |
users_updated | [string] | false | none | none |
users_removed | [string] | false | none | none |
connected_apps_auth_url
{
"url": "string",
"session_id": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
url | string | false | none | A URL that is used to authenticate an end-user against a connected app. |
session_id | string | false | none | A unique identifier for the login session. |
create_subscriber_success_response
{
"subscriber": {
"subscriber_id": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
subscriber | object | false | none | none |
» subscriber_id | string | false | none | A unique identifier for the subscriber. |
connected_apps_access_token
{
"access_token": "string",
"access_token_expiry": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
access_token | string | false | none | The access token to access a third-party provider. |
access_token_expiry | string | false | none | The date and time that the access token expires. |
api_result
{
"result": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
result | string | false | none | The result of the api operation. |
create_application_response
{
"code": "string",
"message": "string",
"application": {
"id": "string",
"client_id": "string",
"client_secret": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
application | object | false | none | none |
» id | string | false | none | The application's identifier. |
» client_id | string | false | none | The application's client ID. |
» client_secret | string | false | none | The application's client secret. |
get_application_response
{
"code": "string",
"message": "string",
"application": {
"id": "string",
"name": "string",
"type": "string",
"client_id": "string",
"client_secret": "string",
"login_uri": "string",
"homepage_uri": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
application | object | false | none | none |
» id | string | false | none | The application's identifier. |
» name | string | false | none | The application's name. |
» type | string | false | none | The application's type. |
» client_id | string | false | none | The application's client ID. |
» client_secret | string | false | none | The application's client secret. |
» login_uri | string | false | none | The default login route for resolving session issues. |
» homepage_uri | string | false | none | The homepage link to your application. |
applications
{
"id": "string",
"name": "string",
"type": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
name | string | false | none | none |
type | string | false | none | none |
get_applications_response
{
"code": "string",
"message": "string",
"applications": [
{
"id": "string",
"name": "string",
"type": "string"
}
],
"next_token": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
applications | [applications] | false | none | none |
next_token | string | false | none | Pagination token. |
redirect_callback_urls
{
"redirect_urls": [
"string"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
redirect_urls | [string] | false | none | An application's redirect URLs. |
get_redirect_callback_urls_response
{
"redirect_urls": [
{
"redirect_urls": [
"string"
]
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
redirect_urls | [redirect_callback_urls] | false | none | An application's redirect callback URLs. |
logout_redirect_urls
{
"logout_urls": [
"string"
],
"code": "OK",
"message": "Success"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
logout_urls | [string] | false | none | An application's logout URLs. |
code | string | false | none | Response code. |
message | string | false | none | Response message. |
get_permissions_response
{
"code": "string",
"message": "string",
"permissions": [
{
"id": "string",
"key": "string",
"name": "string",
"description": "string"
}
],
"next_token": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | Response code. |
message | string | false | none | Response message. |
permissions | [permissions] | false | none | none |
next_token | string | false | none | Pagination token. |
permissions
{
"id": "string",
"key": "string",
"name": "string",
"description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | The permission's ID. |
key | string | false | none | The permission identifier to use in code. |
name | string | false | none | The permission's name. |
description | string | false | none | The permission's description. |
roles
{
"id": "string",
"key": "string",
"name": "string",
"description": "string",
"is_default_role": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | The role's ID. |
key | string | false | none | The role identifier to use in code. |
name | string | false | none | The role's name. |
description | string¦null | false | none | The role's description. |
is_default_role | boolean | false | none | Whether the role is the default role. |
roles_permission_response
[
{
"id": "string",
"key": "string",
"name": "string",
"description": "string"
}
]
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
key | string | false | none | none |
name | string | false | none | none |
description | string | false | none | none |