- Person API
- API 1 Create a person
- API 2 Fetch person info
- API 3 Update a person
- API 4 Delete a person
- API 5 Invite a person
- API 6 Block a person
- API 7 Unblock a person
- API 8 Set custom person attribute
- API 9 Update custom person attributes (or merge with ADD)
- API 10 Delete custom person attributes
- API 11 Trigger a password reset for a person
- API 12 Search Persons
- API 13 Reset a person
- API 14 Sign up a person
- API 15 Change password for person
- API 16 Create person and automatically signup
- API 17 Couple account with External IDP
- API 18 Fetch person profile
- API 19 Fetch multiple persons profiles
Person API
This document describes the API operations for a person. A person is basically a user account in Onegini IDP. Some of the operations should typically be used by a helpdesk or a CRM application.
API 1 Create a person
Endpoint: POST /api/persons
The body includes a Profile
object as defined in the Onegini Java SDK. The table below denotes the required fields:
Param | Default value | Required |
---|---|---|
gender | U | No |
name | - | Depends on attributes configuration in admin panel. See description below. |
date_of_birth | - | Depends on attributes configuration in admin panel. See description below. |
email_addresses | - | Yes, at least one with a value |
phone_numbers | - | Depends on attributes configuration in admin panel. See description below. |
addresses | - | Depends on attributes configuration in admin panel. See description below. |
preferred_locale | Organization locale | No |
custom_attributes | - | No |
Information
Admin panel contains additional configuration options that can influence to described fields.
- Invitation email is sent after creating a person so each fields selected in section
Configuration -> Invitation verification
is required during create person api call, eg. birth date, mobile number or addresses.- Admin can check some fields as required in section
Configuration -> Attributes mandatory on person creation
, eg. mobile number.
When a person was successfully created an HTTP 201 CREATED
message is returned with a JSON body including the reference_id of the user within Onegini IDP.
{
"reference_id":"1234567890ABC"
}
Error messages do have an error code plus a small description. The following errors can occur.
HTTP ERROR | Error Code | Description |
---|---|---|
503 | 1001 | Registration via the API is currently not available. |
400 | 1002 | One or more required fields is missing |
409 | 1003 | Email address already in use |
400 | 1018 | Email address is empty or has an invalid format |
API 2 Fetch person info
Details of a person can be fetched via its person_id.
Endpoint: GET /api/persons/{person_id}
When a person was found for the provided identifier an HTTP 200 OK
message is returned with the below denoted response body. The Profile
object in the API is used from the Onegini Java SDK.
{
"person_id": "08f831ab-a22f-4159-a851-15eec46c3717",
"profile": {
"gender": "M",
"name": {
"first_name": "John",
"last_name": "Doe",
"initials": "J",
"display_name": "John J Doe Jr, MSc"
},
"date_of_birth": "1995-05-24",
"email_addresses": [
{
"primary": true,
"value": "[email protected]"
},
{
"primary": false,
"value": "[email protected]",
"tag": "BUSINESS"
},
{
"primary": false,
"value": "[email protected]",
"verified": true
}
],
"phone_numbers": [
{
"primary": true,
"value": "+12125551234",
"tag": "MOBILE"
},
{
"primary": false,
"value": "+3160123456"
}
],
"addresses": [
{
"primary": true,
"tag": "ALTERNATIVE",
"street_name": "Pompmolenlaan",
"house_number": 9,
"house_number_addition": "2nd floor",
"postal_code": "3447 GK",
"city": "Woerden",
"region": "Utrecht",
"country_code": "NL",
"company_name": "Onegini",
"attention": "John Doe"
},
{
"primary": false,
"street_name": "Main Street",
"house_number": 1,
"postal_code": "01A A34",
"city": "Mytown",
"country_code": "GB"
}
],
"custom_attributes": [
{
"name": "myCRM",
"value": "ABC123DEF456"
}
],
"preferred_locale": "en_GB"
},
"events": [
{
"occurred": 1409145076543,
"event_type": "person.PersonCreatedEvent",
"event_name": "Person Created",
"person_id": "08f831ab-a22f-4159-a851-15eec46c3717",
"client_ip": "192.168.10.30",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Firefox/31.0"
},
{
"occurred": 1409145080692,
"event_type": "person.PinStoredEvent",
"event_name": "PIN created",
"person_id": "08f831ab-a22f-4159-a851-15eec46c3717",
"client_ip": "192.168.10.30",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Firefox/31.0"
}
],
"creation_date": 1409143076543,
"status": "BLOCKED",
"blocked_reason": "Reason why person is blocked",
"last_login": 1409145076543,
"logins ": 25,
"identity_providers": [
{
"name": "Username & Password",
"status": "ACTIVATED",
"last_login": 1409145076543
},
{
"name": "Google",
"status": "ACTIVATED",
"last_login": 1409145074367
}
]
}
Below are extra details about some of the fields from the response:
Field | Example value | Explanation |
---|---|---|
creation_date | 1409145076543 | The time that this person was created. epoch from 1-1-1970 |
status | BLOCKED | The status of this person or identity provider. Possible values: CREATED, INVITED, ACTIVATED, BLOCKED |
blocked_reason | Reason why person is blocked | This is the reason specified when the person is blocked. When the person is not blocked or no reason is set the field will not be included in the message. |
last_dashboard_login | 1409145076543 | The time that the user last logged in to the Onegini IDP dashboard. epoch from 1-1-1970 |
last_organisation_login | 1409145076543 | The time that the user last logged in to a connected organisation or service provider. |
event_type | person.PersonCreatedEvent | The type of event that happened |
event_name | Person Created | A more descriptive name that denotes what kind of event happened. |
user_agent | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Firefox/31.0 | The full user_agent header coming from the browser of the end-user. |
gender | M | The gender of this person. Possible values: M, F, U |
The following errors can occur
HTTP ERROR | Error Code | Description |
---|---|---|
503 | 1001 | The registration API used to fetch person information is currently not available |
404 | 1006 | No person can be found based on the specified identifier |
API 3 Update a person
A person can be updated via its person_id
Endpoint: PUT /api/persons/{person_id}
The body of the request contains a profile object with the updated fields. For example to update a name:
{
"name": {
"first_name": "My",
"last_name": "New Name",
"initials": "N"
}
}
Only fields mentioned in the profile object are updated. When updating email, phone number or addresses only the primary is updated. For custom_attributes the complete collection will be replaced.
The following fields can be updated:
- Gender
- Name
- Date of Birth
- Addresses (collection)
- Preferred Locale
- Email addresses (collection)
- Phone numbers (collection)
- Custom attributes (collection)
For a successful update request an HTTP 204 No Content
response is returned.
The following errors can occur
HTTP ERROR | Error Code | Description |
---|---|---|
503 | 1001 | The registration API used to update person information is currently not available |
404 | 1006 | No person can be found based on the specified identifier |
400 | 1002 | One or more required fields is missing |
409 | 1004 | Email address is used by another user |
API 4 Delete a person
A person can be deleted via its person_id.
Endpoint: DELETE /api/persons/{person_id}
Optionally a reason can be specified why the person is deleted. This is done via a json object in the body of the request.
{
"reason": "Reason why person is deleted"
}
The response will be an HTTP 204 No Content
when the person was successfully removed.
The following errors can occur
HTTP ERROR | Error Code | Description |
---|---|---|
503 | 1001 | The registration API used to delete a person is currently not available |
404 | 1006 | No person can be found based on the specified identifier |
API 5 Invite a person
A person can be invited by its person_id. The method used to send the invitation is already set for a person.
Endpoint: POST /api/persons/{person_id}/invite
The response will be an HTTP 201 CREATED
with a JSON response including a profile object with only the reference_id of the person the invitation was sent to.
{
"reference_id": "08f831ab-a22f-4159-a851-15eec46c3717"
}
The following errors can occur
HTTP ERROR | Error Code | Description |
---|---|---|
503 | 1001 | The registration API used to invite a person is currently not available |
404 | 1006 | No person can be found based on the specified identifier |
503 | 1008 | Failed to send the invitation |
404 | 1009 | The person is blocked |
409 | 1010 | The person already has connected identities |
404 | 1011 | The person is missing one or more required attributes to send an invitation |
API 6 Block a person
Endpoint: POST /api/persons/{person_id}/block
Optionally a reason can be specified why the person is blocked. This is done via a json object in the body of the request. When no reason is specified an empty JSON body is expected.
{
"reason": "Reason why person is blocked"
}
The response will be an HTTP 204 No Content
when the person was successfully blocked.
The following errors can occur
HTTP ERROR | Error Code | Description |
---|---|---|
503 | 1001 | The registration API used to delete an identifier for a person is currently not available |
404 | 1006 | No person can be found based on the specified identifier |
409 | 1014 | Person is already blocked |
API 7 Unblock a person
Endpoint: POST /api/persons/{person_id}/unblock
The response will be an HTTP 204 No Content
when the person was successfully blocked.
The following errors can occur
HTTP ERROR | Error Code | Description |
---|---|---|
503 | 1001 | The registration API used to delete an identifier for a person is currently not available |
404 | 1006 | No person can be found based on the specified identifier |
409 | 1015 | Person is not blocked |
API 8 Set custom person attribute
Identifiers for external systems are stored in the custom attributes container. A custom attributes objects contains a name and a value.
Endpoint: POST /api/persons/{person_id}/custom-attributes
The request has a JSON body containing a custom attribute object.
{
"name":"myCRM",
"value":"ABC123DEF456"
}
The response will be an HTTP 204 No Content
when the identifier was successfully added.
The following errors can occur
HTTP ERROR | Error Code | Description |
---|---|---|
503 | 1001 | The registration API used to add an identifier for a person is currently not available |
404 | 1006 | No person can be found based on the specified identifier |
409 | 1004 | This attribute already exists for this person |
400 | 1002 | On of the required parameters is missing or empty |
API 9 Update custom person attributes (or merge with ADD)
Endpoint: PUT /api/persons/{person_id}/custom-attributes
The request has a JSON body
{
"name":"myCRM",
"value":"ABC123DEF456"
}
The response will be an HTTP 204 No Content
when the identifier was successfully updated.
The following errors can occur
HTTP ERROR | Error Code | Description |
---|---|---|
503 | 1001 | The registration API used to update an identifier for a person is currently not available |
404 | 1006 | No person can be found based on the specified identifier |
400 | 1002 | On of the required parameters is missing or empty |
API 10 Delete custom person attributes
To delete an identifier the system name is used to identify the custom attribute within the users custom attributes.
Endpoint: DELETE /api/persons/{person_id}/custom-attributes/{attribute_name}
The response will be an HTTP 204 No Content
when the identifier was successfully added.
The following errors can occur
HTTP ERROR | Error Code | Description |
---|---|---|
503 | 1001 | The registration API used to delete an identifier for a person is currently not available |
404 | 1006 | No person can be found based on the specified identifier |
API 11 Trigger a password reset for a person
Endpoint: POST /api/persons/{person_id}/password-reset
The response will be an HTTP 204 No Content
when the password reset was successfully triggered.
The request may contain optional JSON body
{
"redirect_url": "http://example.com"
}
If the reset password request contains a redirect_url parameter, the user will be redirected to this URL after finishing the password reset procedure
Error messages do have an error code plus a small description. The following errors can occur
HTTP ERROR | Error Code | Description |
---|---|---|
503 | 1001 | The support API is currently not available |
404 | 1006 | The requested person was not found |
409 | 1012 | This person does not have a password |
API 12 Search Persons
Endpoint: GET /api/persons/search
The response will be an HTTP 200 OK
even if no persons are found.
The endpoint allows to search for users using two methods:
- search by email address
- search by custom attribute
Error messages do have an error code plus a small description. The following errors can occur:
HTTP ERROR | Error Code | Description |
---|---|---|
400 | 2001 | No or too many request parameters in this request |
400 | 2002 | Name of the custom attribute is missing in request parameter |
400 | 2003 | Search term is missing in the request |
Search by email address
Users can be found via their email address.
Param | Required | Default | Description |
---|---|---|---|
email_address | yes | - | Email or part of email address to search on |
partial_match | no | false | Option to indicate a search on a part of the email is required |
limit | no | 10 | Max number of items in the result |
offset | no | 0 | Index of the first item in the result |
Exact match
Example: /api/persons/search?email_address=johndoe%40bar.com
Searching on an exact email address can return at most 1 person in the search result.
Partial match
Set the partial_match
request parameter to true
for advanced lookup of a user.
Example: /api/persons/search?email_address=johndoe&partial_match=true&offset=0&limit50
This method will first look up the person for the given email_address
. If no person is found, it searches for all persons that have an email address that
starts with the given email_address
.
For search term johndoe
it returns the users with email addresses [email protected]
or [email protected]
but not [email protected]
.
This method can return multiple persons in the search result.
Search by phone number
Users can be found via their phone number.
Param | Required | Default | Description |
---|---|---|---|
phone_number | yes | - | Phone number search on |
Example: /api/persons/search?phone_number=%2B311234567890
Phone number must be normalized according to E.164 standard. Phone number must not contain spaces, dashes and any other additional characters. Phone number must contain country code and must start with +
sign decoded for URL into %2B
.
This method may return multiple profiles in the search result.
Search by custom attribute
Search by custom attribute takes the following form:
/api/persons/search?custom_attribute:foo=bar
This will search for all persons with a custom attribute that has the name foo and value bar.
Custom attributes are not unique, and therefore multiple persons can be returned.
Search by last modification date
Person search API gives possibility to search by last modification date:
Param | Examples | Description |
---|---|---|
last_modified | last_modified=1481010950 | Unix timestamp used to return attributes that have been changed after specified date. |
email_address | [email protected] email_address=%company.com% |
Email address to search by. May contain wildcards (%), eg. email_address=%company.com% will return all profiles that email address contains company.com in the address. |
It is also possible to use additional properties for customization:
Param | Default | Description |
---|---|---|
limit | 10 | Max number of items in the result |
offset | 0 | Index of the first item in the result |
By default response contain email address and reference id (person id) attributes but it is possible to return only part of it by using following property:
Param | Examples | Description |
---|---|---|
include_fields | include_fields=reference_id,email_addresses include_fields=reference_id |
Comma delimited list of attributes that should be returned in the result. Possible values:
|
Example requests:
GET /api/persons/[email protected]
will return persons that exactly match email address[email protected]
GET /api/persons/[email protected]&last_modified=1481010950
will return persons that match email address[email protected]
and last modified after1477958400
(11/01/2016 @ 12:00am)GET /api/persons/search?last_modified=1481010950&include_fields=reference_id,email_addresses
will return persons that were last modified after1477958400
(11/01/2016 @ 12:00am) and include only person id and email addresses in the result
Restricitons
Request that contains
last_modified
parameter will return only email addresses and reference id. Other attributes likename
,phone_numbers
, etc. are not currently supported by this parameter and will not be returned.
Result
{
"resultSet": [
{
"name": {
"first_name": "John",
"last_name": "Snow",
"display_name": "John Snow"
},
"email_addresses": [
{
"primary": true,
"tag": "",
"verified": false,
"value": "[email protected]"
}
],
"phone_numbers": [
{
"primary": true,
"tag": "MOBILE",
"value": "+49712129815"
}
],
"custom_attributes": [
{
"name":"foo",
"value":"bar"
}
],
"preferred_locale": "nl",
"reference_id": "3ba13d11-2e4b-49fa-ade6-5a18e448ae2b"
}
],
"pagination": {
"totalResults": 1,
"offset": 0,
"pageSize": 0
}
}
API 13 Reset a person
A person which already has an activated account can be deactivated via the reset person functionality. After a person is reset a new invitation can be send. The existing identities of the person will be removed.
Endpoint: POST /api/persons/{person_id}/reset
The response will be a HTTP 204 NO CONTENT
when the operation was successful.
The following errors can occur
HTTP ERROR | Error Code | Description |
---|---|---|
503 | 1001 | The person API used to reset a person is currently not available |
404 | 1006 | No person can be found based on the specified identifier |
409 | 1009 | The person is blocked |
409 | 1016 | The person is not activated |
409 | 1017 | The person does not have a birthday which is required to invite the person again |
API 14 Sign up a person
After creating a person via API 1 Create Person, the account is not ready to use. In this Sign up call, the person's credentials are set and the account is activated. The mechanism to encrypt the password is described in the documentation of the Password Encryption.
Endpoint: POST /api/persons/{person_id}/sign-up
The request has a JSON body
{
"password": "+V7wn+NyMG7cVelxIIiJYrUkqJiNDJRsqw==",
"encryption_parameter": "+V7wNOIFDSYo8yhsfdhSAh9asdfDJRsqw=="
}
The response will be a HTTP 204 NO CONTENT
when the operation was successful.
The following errors can occur
HTTP ERROR | Error Code | Description |
---|---|---|
503 | 1001 | The person API used to sign up a person is currently not available |
503 | 3010 | Username password IdP is not enabled |
404 | 1006 | No person can be found based on the specified identifier |
409 | 1009 | The person is blocked |
409 | 1010 | The person is already activated |
400 | 3001 | A required parameter is missing to set the password |
400 | 3002 | Invalid parameter encryption |
400 | 6001 | Password policy: Digit count rule violation |
400 | 6002 | Password policy: Lower case char count rule violation |
400 | 6003 | Password policy: Max password length rule violation |
400 | 6004 | Password policy: Min password length rule violation |
400 | 6005 | Password policy: Special char count rule violation |
400 | 6006 | Password policy: Upper case char count rule violation |
API 15 Change password for person
There are two actions which can be used in order to change user's password. First one, change password, requires user's current as well as new passwords to be provided within the API call. Second, set password, requires only new password and is intended to be used for service purposes by superusers.
Change password with current password verification
Password can be changed by sending json request with these parameters:
password
: current user password (should be sent in encrypted form)new_password
: new user password (should be sent in encrypted form)encrypted_parameter
: initialization vector used by encryption algorithm
Endpoint: POST /api/persons/{person_id}/password-change
The request has a JSON body
{
"password": "+V7wn+NyMG7cVelxIIiJYrUkqJiNDJRsqw==",
"new_password": "+V7wn+NNOIFDxIIiJYrUkqJNOIFDD==",
"encryption_parameter": "+V7wNOIFDSYo8yhsfdhSAh9asdfDJRsqw=="
}
The response will be a HTTP 204 NO CONTENT
when the operation was successful.
The following custom error may occurs
HTTP ERROR | Error Code | Description |
---|---|---|
401 | 1019 | Incorrect current user password |
Change password without current password verification
Password can be set by sending json request with these parameters:
password
: new password (should be sent in encrypted form)encrypted_parameter
: initialization vector used by encryption algorithm
Endpoint: POST /api/persons/{person_id}/set-password
The request has a JSON body
{
"password": "+V7wn+NyMG7cVelxIIiJYrUkqJiNDJRsqw==",
"encryption_parameter": "+V7wNOIFDSYo8yhsfdhSAh9asdfDJRsqw=="
}
The response will be a HTTP 204 NO CONTENT
when the operation was successful.
Password encryption
The mechanism to encrypt the password is described in the documentation of the Password Encryption.
Common errors on password change
The following common errors can occur on password change
HTTP ERROR | Error Code | Description |
---|---|---|
404 | 1006 | No person can be found based on the specified identifier |
400 | 3001 | A required parameter is missing to set the password |
400 | 3002 | Invalid parameter encryption |
400 | 6001 | Password policy: Digit count rule violation |
400 | 6002 | Password policy: Lower case char count rule violation |
400 | 6003 | Password policy: Max password length rule violation |
400 | 6004 | Password policy: Min password length rule violation |
400 | 6005 | Password policy: Special char count rule violation |
400 | 6006 | Password policy: Upper case char count rule violation |
API 16 Create person and automatically signup
Endpoint: POST /api/persons/activated
API allows to create a new signed-up user by executing a single request. It can be achieved by calling /api/persons/activated
endpoint.
The body includes json object that is composed from Profile
and EncryptedPassword
objects as defined in the Onegini Java SDK
The mechanism to encrypt the password is described in the documentation of the Password Encryption. The table below denotes the required fields:
Param | Default value | Required |
---|---|---|
profile.gender | U | No |
profile.name | - | Depends on attributes configuration in admin panel. See description below. |
profile.date_of_birth | - | Depends on attributes configuration in admin panel. See description below. |
profile.email_addresses | - | Yes, at least one with a value |
profile.phone_numbers | - | Depends on attributes configuration in admin panel. See description below. |
profile.addresses | - | Depends on attributes configuration in admin panel. See description below. |
profile.preferred_locale | Organization locale | No |
profile.custom_attributes | - | No |
encrypted_password.password | - | Yes |
encrypted_password.encryption_parameter | - | Yes |
When a person was successfully created and signup an HTTP 201 CREATED
message is returned with a JSON body including the reference_id of the user within Onegini IDP.
The following errors can occur
HTTP ERROR | Error Code | Description |
---|---|---|
503 | 1001 | The person API used to sign up a person is currently not available |
400 | 1002 | One or more required fields is missing |
409 | 1003 | Email address already in use |
400 | 1018 | Email address is empty or has an invalid format |
400 | 3001 | A required parameter is missing to set the password |
400 | 3002 | Invalid parameter encryption |
503 | 3010 | Username password IdP is not enabled |
400 | 6001 | Password policy: Digit count rule violation |
400 | 6002 | Password policy: Lower case char count rule violation |
400 | 6003 | Password policy: Max password length rule violation |
400 | 6004 | Password policy: Min password length rule violation |
400 | 6005 | Password policy: Special char count rule violation |
400 | 6006 | Password policy: Upper case char count rule violation |
Example request:
POST /api/persons/activated HTTP/1.1
Host: example.org
Content-Type: application/json
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
{
"encrypted_password":
{
"password": "o/MCR6uS/RAmOse1+3ngU6gjf/+r8h4xWw==",
"encryption_parameter": "BVLdWx//evkFUt1bH/96+Q==",
"new_password": "o/MCR6uS/RAmOse1+3ngU6gjf/+r8h4xWw=="
},
"profile":
{
"email_addresses":[
{
"primary": true,
"tag": "",
"verified": false,
"value": "[email protected]"
}
]
}
}
Example response:
HTTP 201
{"reference_id":"0cd77022-4111-41eb-8c1c-e0f46c8a30ae"}
API 17 Couple account with External IDP
API allows to couple idp account with external IDP. It requires to pass person id in the url and external idp data required for coupling.
Endpoint: POST /api/persons/{person_id}/couple
The request is a JSON body:
{
"idp_type": "kerberos",
"external_idp_id": "12345-12345-12345-12345"
}
Body parameters:
Parameter | Description |
---|---|
idp_type | Idp type that should be coupled with account. It should have one of the idp types added in admin panel (Configuration -> Identity Providers ), eg. google , facebook , kerberos . |
external_idp_id | Identifier of external IDP that should be coupled with Onegini IDP. |
Response on success:
HTTP 201 Created
is returned on success without additional information in body.
Response on error:
Error response contains error code and description. Example:
{
"error_code": "1006"
"error_message": "No person can be found based on the specified identifier."
}
The following errors may occur:
HTTP ERROR | Error Code | Description |
---|---|---|
404 | 1006 | No person can be found based on the specified identifier. |
404 | 1020 | No idp can be found based on the specified type. |
409 | 1021 | External idp already linked with another user. |
API 18 Fetch person profile
Fetching person profile is possible by calling /api/persons/{person_id}/profile
endpoint and providing person_id
variables within the request path:
Endpoint: GET /api/persons/{person_id}/profile
When a person with specified identifier is found an HTTP 200 OK
is returned with the below denoted response body. The Profile
object in the API is used from
the Onegini Java SDK.
{
"gender": "M",
"name": {
"first_name": "John",
"last_name": "Doe",
"initials": "J",
"display_name": "John J Doe Jr, MSc"
},
"date_of_birth": "1995-05-24",
"email_addresses": [
{
"primary": true,
"value": "[email protected]"
},
{
"primary": false,
"value": "[email protected]",
"tag": "BUSINESS"
},
{
"primary": false,
"value": "[email protected]",
"verified": true
}
],
"phone_numbers": [
{
"primary": true,
"value": "+12125551234",
"tag": "MOBILE"
},
{
"primary": false,
"value": "+3160123456"
}
],
"addresses": [
{
"primary": true,
"tag": "ALTERNATIVE",
"street_name": "Pompmolenlaan",
"house_number": 9,
"house_number_addition": "2nd floor",
"postal_code": "3447 GK",
"city": "Woerden",
"region": "Utrecht",
"country_code": "NL",
"company_name": "Onegini",
"attention": "John Doe"
},
{
"primary": false,
"street_name": "Main Street",
"house_number": 1,
"postal_code": "01A A34",
"city": "Mytown",
"country_code": "GB"
}
],
"custom_attributes": [
{
"name": "myCRM",
"value": "ABC123DEF456"
}
],
"preferred_locale": "en_GB"
]
}
The following errors can occur:
HTTP ERROR | Error Code | Description |
---|---|---|
503 | 1001 | The registration API used to fetch person information is currently not available |
404 | 1006 | No person can be found based on the specified identifier |
API 19 Fetch multiple persons profiles
Fetching profiles objects for multiple persons is possible by calling /api/persons/bulk/{person_id}/profile
endpoint and providing multiple, comma delimited
person_id
variables within the request path:
Endpoint: GET /api/persons/bulk/{person_id},{another_person_id}/profile
When all person were found for the provided identifiers an HTTP 200 OK
is returned with the below denoted response body. The Profile
object in the API is
used from the Onegini Java SDK.
{
"resultSet": [
{
"gender": "M",
"name": {
"first_name": "John",
"last_name": "Doe",
"initials": "J",
"display_name": "John J Doe Jr, MSc"
},
"date_of_birth": "1995-05-24",
"email_addresses": [
{
"primary": true,
"value": "[email protected]"
},
{
"primary": false,
"value": "[email protected]",
"tag": "BUSINESS"
},
{
"primary": false,
"value": "[email protected]",
"verified": true
}
],
"phone_numbers": [
{
"primary": true,
"value": "+12125551234",
"tag": "MOBILE"
},
{
"primary": false,
"value": "+3160123456"
}
],
"addresses": [
{
"primary": true,
"tag": "ALTERNATIVE",
"street_name": "Pompmolenlaan",
"house_number": 9,
"house_number_addition": "2nd floor",
"postal_code": "3447 GK",
"city": "Woerden",
"region": "Utrecht",
"country_code": "NL",
"company_name": "Onegini",
"attention": "John Doe"
},
{
"primary": false,
"street_name": "Main Street",
"house_number": 1,
"postal_code": "01A A34",
"city": "Mytown",
"country_code": "GB"
}
],
"custom_attributes": [
{
"name": "myCRM",
"value": "ABC123DEF456"
}
],
"preferred_locale": "en_GB"
]
},
{
"name": {
"first_name": "Test",
"last_name": "User",
"display_name": "Test User"
},
"email_addresses": [
{
"primary": true,
"tag": "",
"verified": false,
"value": "[email protected]"
}
],
"phone_numbers": [
{
"primary": true,
"tag": "MOBILE",
"value": "+01123456789"
}
],
"preferred_locale": "nl"
}
],
"pagination": {
"totalResults": 2,
"offset": 0,
"pageSize": 0,
"rangeStart": 1,
"rangeEnd": 0,
"firstPage": true,
"lastPage": true,
"numberOfPages": 0,
"visiblePages": []
}
}
The following errors can occur:
HTTP ERROR | Error Code | Description |
---|---|---|
503 | 1001 | The registration API used to fetch person information is currently not available |
404 | 1006 | No person can be found based on the specified identifier |
400 | 1021 | The request query is limited to 100 persons identifiers |