delphiAx / Postman API / Update User Information
Back to Collection Items
var
http: TChilkatHttp;
success: Integer;
json: TChilkatJsonObject;
sbRequestBody: TChilkatStringBuilder;
resp: IChilkatHttpResponse;
begin
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http := TChilkatHttp.Create(Self);
// Use this online tool to generate code from sample JSON: Generate Code to Create JSON
// The following JSON is sent in the request body.
// {
// "schemas": [
// "urn:ietf:params:scim:schemas:core:2.0:User"
// ],
// "userName": "{{userEmail}}",
// "name": {
// "givenName": "Test",
// "familyName": "User"
// },
// "externalId": "23123123",
// "locale": "en-US",
// "groups": [
// ],
// "active": true
// }
json := TChilkatJsonObject.Create(Self);
json.UpdateString('schemas[0]','urn:ietf:params:scim:schemas:core:2.0:User');
json.UpdateString('userName','{{userEmail}}');
json.UpdateString('name.givenName','Test');
json.UpdateString('name.familyName','User');
json.UpdateString('externalId','23123123');
json.UpdateString('locale','en-US');
json.UpdateNewArray('groups');
json.UpdateBool('active',1);
http.SetRequestHeader('Authorization','{{apiKey}}');
http.SetRequestHeader('X-API-Key','{{postman_api_key}}');
sbRequestBody := TChilkatStringBuilder.Create(Self);
json.EmitSb(sbRequestBody.ControlInterface);
resp := http.PTextSb('PUT','https://api.getpostman.com/scim/v2/Users/{{id}}',sbRequestBody.ControlInterface,'utf-8','application/json',0,0);
if (http.LastMethodSuccess = 0) then
begin
Memo1.Lines.Add(http.LastErrorText);
Exit;
end;
Memo1.Lines.Add(IntToStr(resp.StatusCode));
Memo1.Lines.Add(resp.BodyStr);
Curl Command
curl -X PUT
-H "X-API-Key: {{postman_api_key}}"
-H "Authorization: {{apiKey}}"
-d '{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"userName": "{{userEmail}}",
"name": {
"givenName": "Test",
"familyName": "User"
},
"externalId": "23123123",
"locale": "en-US",
"groups": [],
"active": true
}'
https://api.getpostman.com/scim/v2/Users/{{id}}
Postman Collection Item JSON
{
"name": "Update User Information",
"request": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "{{apiKey}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n \"userName\": \"{{userEmail}}\",\n \"name\": {\n \"givenName\": \"Test\",\n \"familyName\": \"User\"\n },\n \"externalId\": \"23123123\",\n \"locale\": \"en-US\",\n \"groups\": [],\n \"active\": true\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://api.getpostman.com/scim/v2/Users/{{id}}",
"protocol": "https",
"host": [
"api",
"getpostman",
"com"
],
"path": [
"scim",
"v2",
"Users",
"{{id}}"
]
},
"description": "Updates a user’s first and last name in Postman. \n\n> Only updates made to the user’s given and family name via the SCIM API will be pushed to Postman. No other user attributes can be updated in Postman using the SCIM API."
},
"response": [
{
"name": "200",
"originalRequest": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "{{apikey}}",
"type": "text"
},
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n \"userName\": \"{{userEmail}}\",\n \"name\": {\n \"givenName\": \"Test\",\n \"familyName\": \"User\"\n },\n \"externalId\": \"23123123\",\n \"locale\": \"en-US\",\n \"groups\": [],\n \"active\": true\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{url}}/Users/405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99",
"host": [
"{{url}}"
],
"path": [
"Users",
"405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": null,
"cookie": [
],
"body": "{\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:User\"\n ],\n \"id\": \"405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99\",\n \"userName\": \"test.user@okta.local\",\n \"name\": {\n \"givenName\": \"Test\",\n \"familyName\": \"User\"\n },\n \"externalId\": \"23123123\",\n \"active\": true,\n \"meta\": {\n \"resourceType\": \"User\",\n \"created\": \"2021-02-22T04:24:13.000Z\",\n \"lastModified\": \"2021-02-22T04:24:13.000Z\"\n }\n}"
},
{
"name": "400 - Can't update username",
"originalRequest": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "{{apiKey}}",
"type": "text"
},
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n \"userName\": \"{{userEmail}}\",\n \"name\": {\n \"givenName\": \"Test\",\n \"familyName\": \"User\"\n },\n \"emails\": [{\n \"primary\": true,\n \"value\": \"{{userEmail}}\",\n \"type\": \"work\"\n }],\n \"displayName\": \"Test User\",\n \"locale\": \"en-US\",\n \"groups\": [],\n \"active\": true\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{url}}/Users/405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99",
"host": [
"{{url}}"
],
"path": [
"Users",
"405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99"
]
}
},
"status": "Bad Request",
"code": 400,
"_postman_previewlanguage": "json",
"header": null,
"cookie": [
],
"body": "{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:Error\"\n ],\n \"detail\": \"Couldn’t update this team member’s username. Try again — it should work next time around.\",\n \"status\": \"400\"\n}"
},
{
"name": "400 - Invalid team",
"originalRequest": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "{{apiKey}}",
"type": "text"
},
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n \"userName\": \"{{userEmail}}\",\n \"name\": {\n \"givenName\": \"Test\",\n \"familyName\": \"User\"\n },\n \"emails\": [{\n \"primary\": true,\n \"value\": \"{{userEmail}}\",\n \"type\": \"work\"\n }],\n \"displayName\": \"Test User\",\n \"locale\": \"en-US\",\n \"groups\": [],\n \"active\": true\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{url}}/Users/405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99",
"host": [
"{{url}}"
],
"path": [
"Users",
"405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99"
]
}
},
"status": "Bad Request",
"code": 400,
"_postman_previewlanguage": "json",
"header": null,
"cookie": [
],
"body": "{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:Error\"\n ],\n \"detail\": \"This Postman team doesn’t exist anymore.\",\n \"status\": \"400\"\n}"
},
{
"name": "401 - Invalid API key",
"originalRequest": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "invalidApiKey",
"type": "text"
},
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n \"userName\": \"{{userEmail}}\",\n \"name\": {\n \"givenName\": \"Test\",\n \"familyName\": \"User\"\n },\n \"emails\": [{\n \"primary\": true,\n \"value\": \"{{userEmail}}\",\n \"type\": \"work\"\n }],\n \"displayName\": \"Test User\",\n \"locale\": \"en-US\",\n \"groups\": [],\n \"active\": true\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{url}}/Users/405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99",
"host": [
"{{url}}"
],
"path": [
"Users",
"405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99"
]
}
},
"status": "Unauthorized",
"code": 401,
"_postman_previewlanguage": "json",
"header": null,
"cookie": [
],
"body": "{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:Error\"\n ],\n \"detail\": \"Unable to access the team. Check if you have entered a valid API key.\",\n \"status\": \"401\"\n}"
},
{
"name": "403 - Admin Team Mismatch",
"originalRequest": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "{{apiKey}}",
"type": "text"
},
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n \"userName\": \"{{userEmail}}\",\n \"name\": {\n \"givenName\": \"Test\",\n \"familyName\": \"User\"\n },\n \"emails\": [{\n \"primary\": true,\n \"value\": \"{{userEmail}}\",\n \"type\": \"work\"\n }],\n \"displayName\": \"Test User\",\n \"locale\": \"en-US\",\n \"groups\": [],\n \"active\": true\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{url}}/Users/405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99",
"host": [
"{{url}}"
],
"path": [
"Users",
"405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99"
]
}
},
"status": "Forbidden",
"code": 403,
"_postman_previewlanguage": "json",
"header": null,
"cookie": [
],
"body": "{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:Error\"\n ],\n \"detail\": \"Your API key was generated by a Team Admin who is no longer on your team. Use an API key generated by a Team Admin.\",\n \"status\": \"403\"\n}"
},
{
"name": "400 - Invalid payload",
"originalRequest": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "{{apiKey}}",
"type": "text"
},
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n \"userName\": \"{{userEmail}}\",\n \"name\": {\n \"givenName\": \"Test\",\n \"familyName\": \"User\"\n },\n \"locale\": \"en-US\",\n \"groups\": [],\n \"active\": true\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{url}}/Users/405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99",
"host": [
"{{url}}"
],
"path": [
"Users",
"405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99"
]
}
},
"status": "Bad Request",
"code": 400,
"_postman_previewlanguage": "json",
"header": null,
"cookie": [
],
"body": "{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:Error\"\n ],\n \"scimType\": \"invalidSyntax\",\n \"detail\": \"The request body seems to be incomplete or have unsupported characters.\",\n \"status\": \"400\"\n}"
},
{
"name": "403 - Admin action not allowed",
"originalRequest": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "{{apiKey}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n \"userName\": \"{{userEmail}}\",\n \"name\": {\n \"givenName\": \"Test\",\n \"familyName\": \"User\"\n },\n \"externalId\": \"23123123\",\n \"locale\": \"en-US\",\n \"groups\": [],\n \"active\": true\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{url}}/Users/405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99",
"host": [
"{{url}}"
],
"path": [
"Users",
"405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99"
]
}
},
"status": "Forbidden",
"code": 403,
"_postman_previewlanguage": "json",
"header": null,
"cookie": [
],
"body": "{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:Error\"\n ],\n \"detail\": \"The admin is not allowed to perform this action.\",\n \"status\": \"403\"\n}"
},
{
"name": "403 - User not in Team",
"originalRequest": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "{{apiKey}}",
"type": "text"
},
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n \"userName\": \"{{userEmail}}\",\n \"name\": {\n \"givenName\": \"Test\",\n \"familyName\": \"User\"\n },\n \"emails\": [{\n \"primary\": true,\n \"value\": \"{{userEmail}}\",\n \"type\": \"work\"\n }],\n \"displayName\": \"Test User\",\n \"locale\": \"en-US\",\n \"groups\": [],\n \"active\": true\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{url}}/Users/405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99",
"host": [
"{{url}}"
],
"path": [
"Users",
"405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99"
]
}
},
"status": "Forbidden",
"code": 403,
"_postman_previewlanguage": "json",
"header": null,
"cookie": [
],
"body": "{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:Error\"\n ],\n \"detail\": \"This person isn’t a member of the team.\",\n \"status\": \"403\"\n}"
},
{
"name": "404 - User Not Found",
"originalRequest": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "{{apiKey}}",
"type": "text"
},
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n \"userName\": \"{{userEmail}}\",\n \"name\": {\n \"givenName\": \"Test\",\n \"familyName\": \"User\"\n },\n \"emails\": [{\n \"primary\": true,\n \"value\": \"{{userEmail}}\",\n \"type\": \"work\"\n }],\n \"displayName\": \"Test User\",\n \"locale\": \"en-US\",\n \"groups\": [],\n \"active\": true\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{url}}/Users/405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99",
"host": [
"{{url}}"
],
"path": [
"Users",
"405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99"
]
}
},
"status": "Not Found",
"code": 404,
"_postman_previewlanguage": "json",
"header": null,
"cookie": [
],
"body": "{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:Error\"\n ],\n \"detail\": \"This person isn’t a member of the team.\",\n \"status\": \"404\"\n}"
},
{
"name": "429 - Rate limit exceeded",
"originalRequest": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "{{apiKey}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n \"userName\": \"{{userEmail}}\",\n \"name\": {\n \"givenName\": \"Test\",\n \"familyName\": \"User\"\n },\n \"externalId\": \"23123123\",\n \"locale\": \"en-US\",\n \"groups\": [],\n \"active\": true\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{url}}/Users/405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99",
"host": [
"{{url}}"
],
"path": [
"Users",
"405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99"
]
}
},
"code": 429,
"_postman_previewlanguage": "json",
"header": null,
"cookie": [
],
"body": "{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:Error\"\n ],\n \"detail\": \"That’s 180 attempts in less than a minute. Wait for a minute and then try again.\",\n \"status\": 429\n}"
},
{
"name": "500 - Something went wrong",
"originalRequest": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "{{apiKey}}",
"type": "text"
},
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n \"userName\": \"{{userEmail}}\",\n \"name\": {\n \"givenName\": \"Test\",\n \"familyName\": \"User\"\n },\n \"emails\": [{\n \"primary\": true,\n \"value\": \"{{userEmail}}\",\n \"type\": \"work\"\n }],\n \"displayName\": \"Test User\",\n \"locale\": \"en-US\",\n \"groups\": [],\n \"active\": true\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{url}}/Users/405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99",
"host": [
"{{url}}"
],
"path": [
"Users",
"405775fe15ed41872a8eea4c8aa2b38cda9749812cc55c99"
]
}
},
"status": "Internal Server Error",
"code": 500,
"_postman_previewlanguage": "json",
"header": null,
"cookie": [
],
"body": "{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:Error\"\n ],\n \"detail\": \"Couldn’t update this team member’s information. Try again — it should work next time around.\",\n \"status\": \"500\"\n}"
}
]
}