Overview

HTTP verbs

RESTful notes tries to adhere as closely as possible to standard HTTP and REST conventions in its use of HTTP verbs.

Verb Usage

GET

Used to retrieve a resource

POST

Used to create a new resource

PATCH

Used to update an existing resource, including partial updates

DELETE

Used to delete an existing resource

HTTP status codes

RESTful notes tries to adhere as closely as possible to standard HTTP and REST conventions in its use of HTTP status codes.

Status code Usage

200 OK

The request completed successfully

201 Created

A new resource has been created successfully. The resource’s URI is available from the response’s Location header

204 No Content

An update to an existing resource has been applied successfully

400 Bad Request

The request was malformed. The response body will include an error providing further information

404 Not Found

The requested resource did not exist

Errors

Whenever an error response (status code >= 400) is returned, the body will contain a JSON object that describes the problem. The error object has the following structure:

Resources

Users

User model is aligned with SCIM2 Core.

User Rest API is aligned with SCIM2 Protocol.

Retrieve User List

A GET request is used to retrieve a list of all existing users.

HTTP request
GET /api/Users HTTP/1.1
Host: localhost:9090
HTTPie request
$ http GET 'http://localhost:9090/api/Users'
Curl request
$ curl 'http://localhost:9090/api/Users' -i -X GET
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 467

[ {
  "schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:User" ],
  "meta" : {
    "resourceType" : "User",
    "version" : "1",
    "location" : "http://localhost:9090/api/Users/5ef50f43-c018-4d1f-aa59-9317fee8c100"
  },
  "identifier" : "5ef50f43-c018-4d1f-aa59-9317fee8c100",
  "externalId" : "5ef50f43-c018-4d1f-aa59-9317fee8c100",
  "userName" : "mmuster",
  "familyName" : "Muster",
  "givenName" : "Max",
  "active" : true,
  "displayName" : "Max Muster"
} ]

Retrieve Single User

A GET request is used to retrieve a single user.

HTTP request
GET /api/Users/d4def7ff-5673-4b4e-930b-f3d30d9c241d HTTP/1.1
Host: localhost:9090
HTTPie request
$ http GET 'http://localhost:9090/api/Users/d4def7ff-5673-4b4e-930b-f3d30d9c241d'
Curl request
$ curl 'http://localhost:9090/api/Users/d4def7ff-5673-4b4e-930b-f3d30d9c241d' -i -X GET
HTTP response
HTTP/1.1 200 OK
Location: http://localhost:9090/api/Users/d4def7ff-5673-4b4e-930b-f3d30d9c241d
Content-Type: application/json
Content-Length: 910

{
  "schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:User" ],
  "meta" : {
    "resourceType" : "User",
    "version" : "1",
    "location" : "http://localhost:9090/api/Users/d4def7ff-5673-4b4e-930b-f3d30d9c241d"
  },
  "identifier" : "d4def7ff-5673-4b4e-930b-f3d30d9c241d",
  "externalId" : "d4def7ff-5673-4b4e-930b-f3d30d9c241d",
  "userName" : "mmuster",
  "familyName" : "Muster",
  "givenName" : "Max",
  "active" : true,
  "emails" : [ {
    "value" : "test@example.com",
    "type" : "work",
    "primary" : true
  } ],
  "phoneNumbers" : [ ],
  "ims" : [ ],
  "photos" : [ ],
  "addresses" : [ ],
  "groups" : [ {
    "value" : "a8416bb2-b7a1-4fb9-a578-2b7d68a245d4",
    "display" : "test_group",
    "$ref" : "http://localhost:9090/api/Groups/a8416bb2-b7a1-4fb9-a578-2b7d68a245d4"
  } ],
  "entitlements" : [ ],
  "roles" : [ "USER" ],
  "x509Certificates" : [ ],
  "displayName" : "Max Muster"
}

Create User

A POST request is used to create a new user.

HTTP request
POST /api/Users HTTP/1.1
Content-Type: application/json
Content-Length: 635
Host: localhost:9090

{
  "schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:User" ],
  "meta" : {
    "resourceType" : "User",
    "version" : "0"
  },
  "identifier" : "d01ce9de-be27-4958-91ef-b89e59e1dabf",
  "externalId" : "d01ce9de-be27-4958-91ef-b89e59e1dabf",
  "userName" : "mmuster",
  "familyName" : "Muster",
  "givenName" : "Max",
  "active" : true,
  "emails" : [ {
    "value" : "test@example.com",
    "type" : "work",
    "primary" : true
  } ],
  "groups" : [ {
    "value" : "4e0b83cd-4bb7-46ab-ad2f-53152a6e7a44",
    "display" : "test_group"
  } ],
  "roles" : [ "USER" ],
  "password" : "secret4test",
  "displayName" : "Max Muster"
}
HTTPie request
$ echo '{
  "schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:User" ],
  "meta" : {
    "resourceType" : "User",
    "version" : "0"
  },
  "identifier" : "d01ce9de-be27-4958-91ef-b89e59e1dabf",
  "externalId" : "d01ce9de-be27-4958-91ef-b89e59e1dabf",
  "userName" : "mmuster",
  "familyName" : "Muster",
  "givenName" : "Max",
  "active" : true,
  "emails" : [ {
    "value" : "test@example.com",
    "type" : "work",
    "primary" : true
  } ],
  "groups" : [ {
    "value" : "4e0b83cd-4bb7-46ab-ad2f-53152a6e7a44",
    "display" : "test_group"
  } ],
  "roles" : [ "USER" ],
  "password" : "secret4test",
  "displayName" : "Max Muster"
}' | http POST 'http://localhost:9090/api/Users' \
    'Content-Type:application/json'
Curl request
$ curl 'http://localhost:9090/api/Users' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{
  "schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:User" ],
  "meta" : {
    "resourceType" : "User",
    "version" : "0"
  },
  "identifier" : "d01ce9de-be27-4958-91ef-b89e59e1dabf",
  "externalId" : "d01ce9de-be27-4958-91ef-b89e59e1dabf",
  "userName" : "mmuster",
  "familyName" : "Muster",
  "givenName" : "Max",
  "active" : true,
  "emails" : [ {
    "value" : "test@example.com",
    "type" : "work",
    "primary" : true
  } ],
  "groups" : [ {
    "value" : "4e0b83cd-4bb7-46ab-ad2f-53152a6e7a44",
    "display" : "test_group"
  } ],
  "roles" : [ "USER" ],
  "password" : "secret4test",
  "displayName" : "Max Muster"
}'
HTTP response
HTTP/1.1 200 OK
Location: http://localhost:9090/api/Users/d01ce9de-be27-4958-91ef-b89e59e1dabf
Content-Type: application/json
Content-Length: 910

{
  "schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:User" ],
  "meta" : {
    "resourceType" : "User",
    "version" : "1",
    "location" : "http://localhost:9090/api/Users/d01ce9de-be27-4958-91ef-b89e59e1dabf"
  },
  "identifier" : "d01ce9de-be27-4958-91ef-b89e59e1dabf",
  "externalId" : "d01ce9de-be27-4958-91ef-b89e59e1dabf",
  "userName" : "mmuster",
  "familyName" : "Muster",
  "givenName" : "Max",
  "active" : true,
  "emails" : [ {
    "value" : "test@example.com",
    "type" : "work",
    "primary" : true
  } ],
  "phoneNumbers" : [ ],
  "ims" : [ ],
  "photos" : [ ],
  "addresses" : [ ],
  "groups" : [ {
    "value" : "4e0b83cd-4bb7-46ab-ad2f-53152a6e7a44",
    "display" : "test_group",
    "$ref" : "http://localhost:9090/api/Groups/4e0b83cd-4bb7-46ab-ad2f-53152a6e7a44"
  } ],
  "entitlements" : [ ],
  "roles" : [ "USER" ],
  "x509Certificates" : [ ],
  "displayName" : "Max Muster"
}

Update User

A PUT request is used to update a user.

HTTP request
PUT /api/Users/5dbc0aa6-9a21-4846-b50b-543f9d94d6fb HTTP/1.1
Content-Type: application/json
Content-Length: 905
Host: localhost:9090

{
  "schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:User" ],
  "meta" : {
    "resourceType" : "User",
    "version" : "1",
    "location" : "http://localhost:9090/api/Users/5dbc0aa6-9a21-4846-b50b-543f9d94d6fb"
  },
  "identifier" : "5dbc0aa6-9a21-4846-b50b-543f9d94d6fb",
  "externalId" : "5dbc0aa6-9a21-4846-b50b-543f9d94d6fb",
  "userName" : "mmuster",
  "familyName" : "Muster",
  "givenName" : "Max",
  "active" : true,
  "emails" : [ {
    "value" : "test@example.com",
    "type" : "work",
    "primary" : true
  } ],
  "phoneNumbers" : [ ],
  "ims" : [ ],
  "photos" : [ ],
  "addresses" : [ ],
  "groups" : [ {
    "value" : "95ad5486-be09-49bb-ab7d-ff9a770f637e",
    "display" : "test_group",
    "$ref" : "http://localhost/api/Groups/95ad5486-be09-49bb-ab7d-ff9a770f637e"
  } ],
  "entitlements" : [ ],
  "roles" : [ "USER" ],
  "x509Certificates" : [ ],
  "displayName" : "Max Muster"
}
HTTPie request
$ echo '{
  "schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:User" ],
  "meta" : {
    "resourceType" : "User",
    "version" : "1",
    "location" : "http://localhost:9090/api/Users/5dbc0aa6-9a21-4846-b50b-543f9d94d6fb"
  },
  "identifier" : "5dbc0aa6-9a21-4846-b50b-543f9d94d6fb",
  "externalId" : "5dbc0aa6-9a21-4846-b50b-543f9d94d6fb",
  "userName" : "mmuster",
  "familyName" : "Muster",
  "givenName" : "Max",
  "active" : true,
  "emails" : [ {
    "value" : "test@example.com",
    "type" : "work",
    "primary" : true
  } ],
  "phoneNumbers" : [ ],
  "ims" : [ ],
  "photos" : [ ],
  "addresses" : [ ],
  "groups" : [ {
    "value" : "95ad5486-be09-49bb-ab7d-ff9a770f637e",
    "display" : "test_group",
    "$ref" : "http://localhost/api/Groups/95ad5486-be09-49bb-ab7d-ff9a770f637e"
  } ],
  "entitlements" : [ ],
  "roles" : [ "USER" ],
  "x509Certificates" : [ ],
  "displayName" : "Max Muster"
}' | http PUT 'http://localhost:9090/api/Users/5dbc0aa6-9a21-4846-b50b-543f9d94d6fb' \
    'Content-Type:application/json'
Curl request
$ curl 'http://localhost:9090/api/Users/5dbc0aa6-9a21-4846-b50b-543f9d94d6fb' -i -X PUT \
    -H 'Content-Type: application/json' \
    -d '{
  "schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:User" ],
  "meta" : {
    "resourceType" : "User",
    "version" : "1",
    "location" : "http://localhost:9090/api/Users/5dbc0aa6-9a21-4846-b50b-543f9d94d6fb"
  },
  "identifier" : "5dbc0aa6-9a21-4846-b50b-543f9d94d6fb",
  "externalId" : "5dbc0aa6-9a21-4846-b50b-543f9d94d6fb",
  "userName" : "mmuster",
  "familyName" : "Muster",
  "givenName" : "Max",
  "active" : true,
  "emails" : [ {
    "value" : "test@example.com",
    "type" : "work",
    "primary" : true
  } ],
  "phoneNumbers" : [ ],
  "ims" : [ ],
  "photos" : [ ],
  "addresses" : [ ],
  "groups" : [ {
    "value" : "95ad5486-be09-49bb-ab7d-ff9a770f637e",
    "display" : "test_group",
    "$ref" : "http://localhost/api/Groups/95ad5486-be09-49bb-ab7d-ff9a770f637e"
  } ],
  "entitlements" : [ ],
  "roles" : [ "USER" ],
  "x509Certificates" : [ ],
  "displayName" : "Max Muster"
}'
HTTP response
HTTP/1.1 200 OK
Location: http://localhost:9090/api/Users/5dbc0aa6-9a21-4846-b50b-543f9d94d6fb
Content-Type: application/json
Content-Length: 910

{
  "schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:User" ],
  "meta" : {
    "resourceType" : "User",
    "version" : "1",
    "location" : "http://localhost:9090/api/Users/5dbc0aa6-9a21-4846-b50b-543f9d94d6fb"
  },
  "identifier" : "5dbc0aa6-9a21-4846-b50b-543f9d94d6fb",
  "externalId" : "5dbc0aa6-9a21-4846-b50b-543f9d94d6fb",
  "userName" : "mmuster",
  "familyName" : "Muster",
  "givenName" : "Max",
  "active" : true,
  "emails" : [ {
    "value" : "test@example.com",
    "type" : "work",
    "primary" : true
  } ],
  "phoneNumbers" : [ ],
  "ims" : [ ],
  "photos" : [ ],
  "addresses" : [ ],
  "groups" : [ {
    "value" : "95ad5486-be09-49bb-ab7d-ff9a770f637e",
    "display" : "test_group",
    "$ref" : "http://localhost:9090/api/Groups/95ad5486-be09-49bb-ab7d-ff9a770f637e"
  } ],
  "entitlements" : [ ],
  "roles" : [ "USER" ],
  "x509Certificates" : [ ],
  "displayName" : "Max Muster"
}

Delete User

A DELETE request is used to delete a user.

HTTP request
DELETE /api/Users/372de205-1297-46e8-9389-cc120dc42f5e HTTP/1.1
Host: localhost:9090
HTTPie request
$ http DELETE 'http://localhost:9090/api/Users/372de205-1297-46e8-9389-cc120dc42f5e'
Curl request
$ curl 'http://localhost:9090/api/Users/372de205-1297-46e8-9389-cc120dc42f5e' -i -X DELETE
HTTP response
HTTP/1.1 204 No Content

Groups

Group model is aligned with SCIM2 Core.

Group Rest API is aligned with SCIM2 Protocol.

Retrieve Group List

A GET request is used to retrieve a list of all existing groups.

HTTP request
GET /api/Groups HTTP/1.1
Host: localhost:9090
HTTPie request
$ http GET 'http://localhost:9090/api/Groups'
Curl request
$ curl 'http://localhost:9090/api/Groups' -i -X GET
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 342

[ {
  "schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:Group" ],
  "meta" : {
    "resourceType" : "Group",
    "version" : "1",
    "location" : "http://localhost:9090/api/Groups/6f054be3-909c-47f1-957a-afb907befae3"
  },
  "identifier" : "6f054be3-909c-47f1-957a-afb907befae3",
  "externalId" : "123",
  "displayName" : "test_group"
} ]

Retrieve Single Group

A GET request is used to retrieve a single group.

HTTP request
GET /api/Groups/dbe8d36f-663a-4670-b122-d393b9cb5c6d HTTP/1.1
Host: localhost:9090
HTTPie request
$ http GET 'http://localhost:9090/api/Groups/dbe8d36f-663a-4670-b122-d393b9cb5c6d'
Curl request
$ curl 'http://localhost:9090/api/Groups/dbe8d36f-663a-4670-b122-d393b9cb5c6d' -i -X GET
HTTP response
HTTP/1.1 200 OK
Location: http://localhost:9090/api/Groups/dbe8d36f-663a-4670-b122-d393b9cb5c6d
Content-Type: application/json
Content-Length: 357

{
  "schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:Group" ],
  "meta" : {
    "resourceType" : "Group",
    "version" : "1",
    "location" : "http://localhost:9090/api/Groups/dbe8d36f-663a-4670-b122-d393b9cb5c6d"
  },
  "identifier" : "dbe8d36f-663a-4670-b122-d393b9cb5c6d",
  "externalId" : "123",
  "displayName" : "test_group",
  "members" : [ ]
}

Create Group

A POST request is used to create a new group.

HTTP request
POST /api/Groups HTTP/1.1
Content-Type: application/json
Content-Length: 357
Host: localhost:9090

{
  "schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:Group" ],
  "meta" : {
    "resourceType" : "Group",
    "version" : "1",
    "location" : "http://localhost:9090/api/Groups/79d4c31a-3df4-450c-9a6c-15d3c5674dba"
  },
  "identifier" : "79d4c31a-3df4-450c-9a6c-15d3c5674dba",
  "externalId" : "123",
  "displayName" : "test_group",
  "members" : [ ]
}
HTTPie request
$ echo '{
  "schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:Group" ],
  "meta" : {
    "resourceType" : "Group",
    "version" : "1",
    "location" : "http://localhost:9090/api/Groups/79d4c31a-3df4-450c-9a6c-15d3c5674dba"
  },
  "identifier" : "79d4c31a-3df4-450c-9a6c-15d3c5674dba",
  "externalId" : "123",
  "displayName" : "test_group",
  "members" : [ ]
}' | http POST 'http://localhost:9090/api/Groups' \
    'Content-Type:application/json'
Curl request
$ curl 'http://localhost:9090/api/Groups' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{
  "schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:Group" ],
  "meta" : {
    "resourceType" : "Group",
    "version" : "1",
    "location" : "http://localhost:9090/api/Groups/79d4c31a-3df4-450c-9a6c-15d3c5674dba"
  },
  "identifier" : "79d4c31a-3df4-450c-9a6c-15d3c5674dba",
  "externalId" : "123",
  "displayName" : "test_group",
  "members" : [ ]
}'
HTTP response
HTTP/1.1 200 OK
Location: http://localhost:9090/api/Groups/79d4c31a-3df4-450c-9a6c-15d3c5674dba
Content-Type: application/json
Content-Length: 357

{
  "schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:Group" ],
  "meta" : {
    "resourceType" : "Group",
    "version" : "1",
    "location" : "http://localhost:9090/api/Groups/79d4c31a-3df4-450c-9a6c-15d3c5674dba"
  },
  "identifier" : "79d4c31a-3df4-450c-9a6c-15d3c5674dba",
  "externalId" : "123",
  "displayName" : "test_group",
  "members" : [ ]
}

Delete Group

A DELETE request is used to delete a group.

HTTP request
DELETE /api/Groups/6d977a5b-91ce-4b72-9dd2-f5e3c747ea32 HTTP/1.1
Host: localhost:9090
HTTPie request
$ http DELETE 'http://localhost:9090/api/Groups/6d977a5b-91ce-4b72-9dd2-f5e3c747ea32'
Curl request
$ curl 'http://localhost:9090/api/Groups/6d977a5b-91ce-4b72-9dd2-f5e3c747ea32' -i -X DELETE
HTTP response
HTTP/1.1 204 No Content

Add a member to Group

A PUT request is used to add a member to a group.

HTTP request
PUT /api/Groups/e5a8d675-7da4-442c-b39c-6ec42283adf4/members/bb762592-4e64-498c-88a7-9c4f4ec278de HTTP/1.1
Content-Type: application/json
Host: localhost:9090
HTTPie request
$ http PUT 'http://localhost:9090/api/Groups/e5a8d675-7da4-442c-b39c-6ec42283adf4/members/bb762592-4e64-498c-88a7-9c4f4ec278de' \
    'Content-Type:application/json'
Curl request
$ curl 'http://localhost:9090/api/Groups/e5a8d675-7da4-442c-b39c-6ec42283adf4/members/bb762592-4e64-498c-88a7-9c4f4ec278de' -i -X PUT \
    -H 'Content-Type: application/json'
HTTP response
HTTP/1.1 204 No Content

Remove a member from Group

A PUT request is used to remove a member from a group.

HTTP request
PUT /api/Groups/e5a8d675-7da4-442c-b39c-6ec42283adf4/members/bb762592-4e64-498c-88a7-9c4f4ec278de HTTP/1.1
Content-Type: application/json
Host: localhost:9090
HTTPie request
$ http PUT 'http://localhost:9090/api/Groups/e5a8d675-7da4-442c-b39c-6ec42283adf4/members/bb762592-4e64-498c-88a7-9c4f4ec278de' \
    'Content-Type:application/json'
Curl request
$ curl 'http://localhost:9090/api/Groups/e5a8d675-7da4-442c-b39c-6ec42283adf4/members/bb762592-4e64-498c-88a7-9c4f4ec278de' -i -X PUT \
    -H 'Content-Type: application/json'
HTTP response
HTTP/1.1 204 No Content

Registered Clients

Registered clients are required to configure valid clients interacting with the authorization server. Currently, only static is supported. Dynamic registration is not yet supported.

Table 1. Registered Client Attributes
Name Description

clientId

Client ID

clientSecret

Client secret, only needed for confidential clients

confidential

true=Confidential, false=Public client. If Public Client it requires PKCE but no clientSecret, Confidential Client requires clientSecret

accessTokenFormat

JWT=JSON Web Token format, OPAQUE=Opaque (reference) Token format

grantTypes

Valid grant types: AUTHORIZATION_CODE,PASSWORD,CLIENT_CREDENTIALS,REFRESH_TOKEN,TOKEN_EXCHANGE

redirectUris

List of valid redirect URIs (no wildcards allowed)

corsUris

List of valid CORS URIs (no wildcards allowed)

Retrieve Client List

A GET request is used to retrieve a list of all existing clients.

HTTP request
GET /api/clients HTTP/1.1
Host: localhost:9090
HTTPie request
$ http GET 'http://localhost:9090/api/clients'
Curl request
$ curl 'http://localhost:9090/api/clients' -i -X GET
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 251

[ {
  "identifier" : "72e50920-e4ce-45b9-9a35-8ac14ac627be",
  "clientId" : "clientid",
  "confidential" : true,
  "accessTokenFormat" : "JWT",
  "grantTypes" : [ "AUTHORIZATION_CODE" ],
  "redirectUris" : [ "redirect" ],
  "corsUris" : [ "cors" ]
} ]

Retrieve Single Client

A GET request is used to retrieve a single client.

HTTP request
GET /api/clients/90a0617d-dabb-47b9-a55e-b3287acf49c9 HTTP/1.1
Host: localhost:9090
HTTPie request
$ http GET 'http://localhost:9090/api/clients/90a0617d-dabb-47b9-a55e-b3287acf49c9'
Curl request
$ curl 'http://localhost:9090/api/clients/90a0617d-dabb-47b9-a55e-b3287acf49c9' -i -X GET
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 247

{
  "identifier" : "c891cdf6-1246-4e97-ad49-79d08cb10037",
  "clientId" : "clientid",
  "confidential" : true,
  "accessTokenFormat" : "JWT",
  "grantTypes" : [ "AUTHORIZATION_CODE" ],
  "redirectUris" : [ "redirect" ],
  "corsUris" : [ "cors" ]
}

Register new Client

A POST request is used to register a new client.

HTTP request
POST /api/clients HTTP/1.1
Content-Type: application/json
Content-Length: 282
Host: localhost:9090

{
  "identifier" : "1abc6292-e536-4710-96a6-b18e2f36f6f3",
  "clientId" : "clientid",
  "confidential" : true,
  "accessTokenFormat" : "JWT",
  "grantTypes" : [ "AUTHORIZATION_CODE" ],
  "redirectUris" : [ "redirect" ],
  "corsUris" : [ "cors" ],
  "clientSecret" : "clientsecret"
}
HTTPie request
$ echo '{
  "identifier" : "1abc6292-e536-4710-96a6-b18e2f36f6f3",
  "clientId" : "clientid",
  "confidential" : true,
  "accessTokenFormat" : "JWT",
  "grantTypes" : [ "AUTHORIZATION_CODE" ],
  "redirectUris" : [ "redirect" ],
  "corsUris" : [ "cors" ],
  "clientSecret" : "clientsecret"
}' | http POST 'http://localhost:9090/api/clients' \
    'Content-Type:application/json'
Curl request
$ curl 'http://localhost:9090/api/clients' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{
  "identifier" : "1abc6292-e536-4710-96a6-b18e2f36f6f3",
  "clientId" : "clientid",
  "confidential" : true,
  "accessTokenFormat" : "JWT",
  "grantTypes" : [ "AUTHORIZATION_CODE" ],
  "redirectUris" : [ "redirect" ],
  "corsUris" : [ "cors" ],
  "clientSecret" : "clientsecret"
}'
HTTP response
HTTP/1.1 201 Created
Location: http://localhost:9090/api/clients/1abc6292-e536-4710-96a6-b18e2f36f6f3
Content-Type: application/json
Content-Length: 247

{
  "identifier" : "1abc6292-e536-4710-96a6-b18e2f36f6f3",
  "clientId" : "clientid",
  "confidential" : true,
  "accessTokenFormat" : "JWT",
  "grantTypes" : [ "AUTHORIZATION_CODE" ],
  "redirectUris" : [ "redirect" ],
  "corsUris" : [ "cors" ]
}

Update Client

A PUT request is used to update a client.

HTTP request
PUT /api/clients/7865062f-a091-4857-8222-1ea089d8ffc5 HTTP/1.1
Content-Type: application/json
Content-Length: 282
Host: localhost:9090

{
  "identifier" : "7865062f-a091-4857-8222-1ea089d8ffc5",
  "clientId" : "clientid",
  "confidential" : true,
  "accessTokenFormat" : "JWT",
  "grantTypes" : [ "AUTHORIZATION_CODE" ],
  "redirectUris" : [ "redirect" ],
  "corsUris" : [ "cors" ],
  "clientSecret" : "clientsecret"
}
HTTPie request
$ echo '{
  "identifier" : "7865062f-a091-4857-8222-1ea089d8ffc5",
  "clientId" : "clientid",
  "confidential" : true,
  "accessTokenFormat" : "JWT",
  "grantTypes" : [ "AUTHORIZATION_CODE" ],
  "redirectUris" : [ "redirect" ],
  "corsUris" : [ "cors" ],
  "clientSecret" : "clientsecret"
}' | http PUT 'http://localhost:9090/api/clients/7865062f-a091-4857-8222-1ea089d8ffc5' \
    'Content-Type:application/json'
Curl request
$ curl 'http://localhost:9090/api/clients/7865062f-a091-4857-8222-1ea089d8ffc5' -i -X PUT \
    -H 'Content-Type: application/json' \
    -d '{
  "identifier" : "7865062f-a091-4857-8222-1ea089d8ffc5",
  "clientId" : "clientid",
  "confidential" : true,
  "accessTokenFormat" : "JWT",
  "grantTypes" : [ "AUTHORIZATION_CODE" ],
  "redirectUris" : [ "redirect" ],
  "corsUris" : [ "cors" ],
  "clientSecret" : "clientsecret"
}'
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 247

{
  "identifier" : "7865062f-a091-4857-8222-1ea089d8ffc5",
  "clientId" : "clientid",
  "confidential" : true,
  "accessTokenFormat" : "JWT",
  "grantTypes" : [ "AUTHORIZATION_CODE" ],
  "redirectUris" : [ "redirect" ],
  "corsUris" : [ "cors" ]
}

Delete Client

A DELETE request is used to delete a client.

HTTP request
DELETE /api/clients/e1c1618b-1ad8-49d5-b423-0a6e4c786d38 HTTP/1.1
Host: localhost:9090
HTTPie request
$ http DELETE 'http://localhost:9090/api/clients/e1c1618b-1ad8-49d5-b423-0a6e4c786d38'
Curl request
$ curl 'http://localhost:9090/api/clients/e1c1618b-1ad8-49d5-b423-0a6e4c786d38' -i -X DELETE
HTTP response
HTTP/1.1 204 No Content