uri | /guests/{domain} |
---|---|
description | Paginated listing of all guests for an organization's domain. |
http operation | GET |
success response | 200 |
error response | 403 authentication/authorization error associated with the requested domain |
Name | Description | Format |
---|---|---|
domain | Organization domain that owns the guests. | rfc1035 |
Name | Description | Format |
---|---|---|
offset | The number of records to offset the page in the response. | Numeric; Must be >= 0. |
limit | The number of records per page returned in the response. If a limit is not provided, a default limit of 500 per page will be returned. | Numeric; Must be >= 0. |
searchArg | An optional search parameter that allows searching over both the mail attribute and the surname attribute for the guest objects. | String |
linkGroup | An optional search parameter that allows searching by the assigned link group identifier. A valid linkGroupId provide by the /linkGroups API | Numeric; Must be >= 0 |
status |
An optional search parameter that allows searching by the current guest status. Allowable status values are:
|
String |
type |
An optional search parameter to return guests based on one of the associated time stamps specified by the value assigned to type. When used, requires the use of at least the "start" or "end" parameter. The available types are:
|
String |
start |
The start date-time of a window (in UTC) to return guest objects. If not provided, defaults to the current date-time. |
String; formatted in 'yyyy-mm-ddThh24:mi:ss' |
end |
The end date-time of a window (in UTC) to return guest objects. If not provided, defaults to the current date-time. |
String; formatted in 'yyyy-mm-ddThh24:mi:ss' and in UTC |
The following is a valid request which contains pagination parameters.
curl -i -u {api_key}:{api_secret} \
-d offset=10 \
-d limit=5 \
https://apps.cirrusidentity.com/console/api/v2/guests/{domain}
Here is the response that would be returned from the sample request. Note: For brevity, some of the guest records have been replaced by ellipsis.
HTTP/1.1 200
Cache-control: no-cache="set-cookie"
Content-Type: application/json;charset=UTF-8
Date: Fri, 05 Jan 2018 00:26:35 GMT
Set-Cookie: JSESSIONID=**REDACTED**
Set-Cookie: AWSELB=**REDACTED**
Content-Length: 3334
Connection: keep-alive
"href": "https://apps.cirrusidentity.com/console/api/v2/guests/athena-institute.net?offset=10&limit=5",
"totalCount": 59,
"offset": 10,
"limit": 5,
"count": 5,
"first": "https://apps.cirrusidentity.com/console/api/v2/guests/athena-institute.net?limit=5",
"next": "https://apps.cirrusidentity.com/console/api/v2/guests/athena-institute.net?offset=15&limit=5",
"prev": "https://apps.cirrusidentity.com/console/api/v2/guests/athena-institute.net?offset=5&limit=5",
"guests": [
{
"href": "https://apps.cirrusidentity.com/console/api/v2/guest/06e901d0-9d2d-418d-b757-3263aa3190e7",
"givenName": "PENDING_GUEST_FIRST_NAME",
"sn": "PENDING_GUEST_LAST_NAME",
"uid": "06e901d0-9d2d-418d-b757-3263aa3190e7",
"mail": null,
"domain": "athena-institute.net",
"status": "invited",
"expirationDate": "2018-11-28T23:53:00Z",
"createDate": "2017-11-29T00:50:55Z",
"modifyDate": "2017-11-29T00:50:55Z",
"eduPersonPrincipalName": null,
"customData": {},
"socialProvider": "",
"invitations": {
"href": "https://apps.cirrusidentity.com/console/api/v2/guest/06e901d0-9d2d-418d-b757-3263aa3190e7/invitations"
}
},
{
"href": "https://apps.cirrusidentity.com/console/api/v2/guest/82d84ccd-fa8f-407d-a01d-8739ed00d66d",
"givenName": "Cindy",
"sn": "Cirrus",
"uid": "82d84ccd-fa8f-407d-a01d-8739ed00d66d",
"mail": "cindy.cirrus@gmail.com",
"domain": "athena-institute.net",
"status": "valid",
"expirationDate": "2018-12-13T00:03:55Z",
"createDate": "2017-12-13T00:05:58Z",
"modifyDate": "2018-01-03T23:19:22Z",
"eduPersonPrincipalName": "123456789123456789123@google.com",
"customData": {
"cirrusId": "d9dd1d0f-73db-4e57-912f-ebd92037704a",
"orgUid": "88776655"
},
"socialProvider": "",
"invitations": {
"href": "https://apps.cirrusidentity.com/console/api/v2/guest/82d84ccd-fa8f-407d-a01d-8739ed00d66d/invitations"
}
},
...
]
}
The following is a valid request which contains all required and optional parameters.
curl -i -u {api_key}:{api_secret} \
https://apps.cirrusidentity.com/console/api/v2/guests/{domain}?offset=0&limit=3&searchArg=connie.contrail@gmail.com
Here is the response that would be returned from the sample request. Note: For brevity, some of the guest records have been replaced by ellipsis.
HTTP/1.1 200
Date: Wed, 19 Sep 2018 23:15:39 GMT
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: **REDACTED**
Set-Cookie: **REDACTED**
{
"href": "https://apps.cirrusidentity.com/console/api/v2/guests/athena-institute.net?limit=3",
"totalCount": 4,
"offset": 0,
"limit": 3,
"count": 3,
"first": "https://apps.cirrusidentity.com/console/api/v2/guests/athena-institute.net?limit=3",
"next": "https://apps.cirrusidentity.com/console/api/v2/guests/athena-institute.net?offset=3&limit=3",
"prev": null,
"guests": [
{
"href": "https://apps.cirrusidentity.com/console/api/v2/guest/215d784b-248a-4b79-80a9-626e888f4504",
"givenName": "Connie",
"sn": "Contrail",
"uid": "215d784b-248a-4b79-80a9-626e888f4504",
"mail": "connie.contrail@gmail.com",
"domain": "athena-institute.net",
"status": "valid",
"expirationDate": "2019-09-17T21:58:32Z",
"createDate": "2018-09-17T21:59:07Z",
"modifyDate": "2018-09-17T21:59:21Z",
"eduPersonPrincipalName": "100546218585243689914@google.com",
"customData": {},
"socialProvider": "google",
"invitations": {
"href": "https://apps.cirrusidentity.com/console/api/v2/guest/215d784b-248a-4b79-80a9-626e888f4504/invitations"
}
}...
Here is the response that would be returned from a request where the domain was not authorized by the API key. This error is returned rather than a HTTP-404 error if the incorrect domain is provided because the API key authorization fails.
HTTP/1.1 403
Cache-control: no-cache="set-cookie"
Content-Type: application/json;charset=UTF-8
Date: Fri, 05 Jan 2018 04:09:46 GMT
Set-Cookie: JSESSIONID=**REDACTED**
Set-Cookie: AWSELB=**REDACTED**
Content-Length: 111
Connection: keep-alive
{"errors":["{api_key} does not have domain authorization for domain: {domain}"]}
uri |
/guests/{domain}/byCustomAttribute |
---|---|
description | Get guests that have a specific customeData attribute name and value pair. |
http operation | GET |
success response | 200 |
error response | 403 authentication/authorization error associated with the requested domain |
Name | Description | Format |
---|---|---|
domain | Organization domain that owns the guests. | rfc1035 |
attributeName | The guest customeData attribute name to look for. | String |
attributeValue | The value for the customData attribute to look for. | String |
Name | Description | Format |
---|---|---|
None |
The following is a valid request which contains all required parameters.
curl -i -u {api_key}:{api_secret} \
-d attributeName='testId' \
-d attributeValue='A1234' \
https://apps.cirrusidentity.com/console/api/v2/guests/{domain}/byCustomAttribute
Here is the response that would be returned from the sample request.
HTTP/1.1 200
Cache-control: no-cache="set-cookie"
Content-Type: application/json;charset=UTF-8
Date: Fri, 05 Jan 2018 18:29:42 GMT
Set-Cookie: JSESSIONID=**REDACTED**
Set-Cookie: AWSELB=**REDACTED**
Content-Length: 763
Connection: keep-alive
{
"href": "https://apps.cirrusidentity.com/console/api/v2/guests/athena-institute.net/byCustomAttribute?attributeName=testId&attributeValue=A1234",
"totalCount": 1,
"count": 1,
"guests": [
{
"href": "https://apps.cirrusidentity.com/console/api/v2/guest/5d50e7d288554a5c98bdfad13cd69988",
"givenName": "Cindy",
"sn": "Cirrus",
"uid": "5d50e7d288554a5c98bdfad13cd69988",
"mail": "cindy.cirrus@gmail.com",
"domain": "athena-institute.net",
"status": "valid",
"expirationDate": "2018-03-12T23:59:59Z",
"createDate": "2017-04-19T21:39:42Z",
"modifyDate": "2018-01-05T18:00:23Z",
"eduPersonPrincipalName": "cindy.cirrus@gmail.com",
"customData": {
"testId": "A1234"
},
"socialProvider": "",
"invitations": {
"href": "https://apps.cirrusidentity.com/console/api/v2/guest/5d50e7d288554a5c98bdfad13cd69988/invitations"
}
}
]
}
Here is the response that would be returned from a request where the attribute name is not found.
HTTP/1.1 200
Cache-control: no-cache="set-cookie"
Content-Type: application/json;charset=UTF-8
Date: Fri, 05 Jan 2018 18:58:19 GMT
Set-Cookie: JSESSIONID=**REDACTED**
Set-Cookie: AWSELB=**REDACTED**
Content-Length: 192
Connection: keep-alive
{"href":"https://apps.cirrusidentity.com/console/api/v2/guests/athena-institute.net/byCustomAttribute?attributeName=testId-dummy&attributeValue=A1234","totalCount":0,"count":0,"guests":[]}
Here is the response that would be returned from a request where the attribute value is not found.
HTTP/1.1 200
Cache-control: no-cache="set-cookie"
Content-Type: application/json;charset=UTF-8
Date: Fri, 05 Jan 2018 19:00:05 GMT
Set-Cookie: JSESSIONID=**REDACTED**
Set-Cookie: AWSELB=**REDACTED**
Content-Length: 192
Connection: keep-alive
{"href":"https://apps.cirrusidentity.com/console/api/v2/guests/athena-institute.net/byCustomAttribute?attributeName=testId&attributeValue=A1234-dummy","totalCount":0,"count":0,"guests":[]}
Here is the response that would be returned from a request where the domain was not authorized by the API key. This error is returned rather than a HTTP-404 error if the incorrect domain is provided because the API key authorization fails.
HTTP/1.1 403
Cache-control: no-cache="set-cookie"
Content-Type: application/json;charset=UTF-8
Date: Fri, 05 Jan 2018 04:09:46 GMT
Set-Cookie: JSESSIONID=**REDACTED**
Set-Cookie: AWSELB=**REDACTED**
Content-Length: 111
Connection: keep-alive
{"errors":["{api_key} does not have domain authorization for domain: {domain}"]}
uri | /guest/{uid} |
---|---|
description | Return the attributes for a guest. |
http operation | GET |
success response | 200 |
error response | 403 authentication/authorization error 404 UID not found |
Name | Description | Format |
---|---|---|
UID | The uid assigned to the guest record. | string |
Name | Description | Format |
---|---|---|
None |
The following is a valid request which contains all required and optional parameters.
curl -i -u {api_key}:{api_secret} \
https://apps.cirrusidentity.com/console/api/v2/guest/{uid}
Sample Response
Here is the response that would be returned from the sample request.
HTTP/1.1 200
Cache-control: no-cache="set-cookie"
Content-Type: application/json;charset=UTF-8
Date: Wed, 17 Jan 2018 20:56:00 GMT
Set-Cookie: JSESSIONID=***REDACT***
Set-Cookie: AWSELB=***REDACT***
Content-Length: 615
Connection: keep-alive
{
"href": "https://apps.cirrusidentity.com/console/api/v2/guest/2666957e-b1de-4e16-a301-a32bacfaa091",
"givenName": "Connie",
"sn": "Contrail",
"uid": "2666957e-b1de-4e16-a301-a32bacfaa091",
"mail": "connie.contrail@gmail.com",
"domain": "athena-institute.net",
"status": "valid",
"expirationDate": "2019-01-17T20:44:02Z",
"createDate": "2018-01-17T20:44:20Z",
"modifyDate": "2018-01-17T20:45:51Z",
"eduPersonPrincipalName": "11223344556677889@facebook.com",
"customData": {},
"socialProvider": "facebook",
"invitations": {
"href": "https://apps.cirrusidentity.com/console/api/v2/guest/2666957e-b1de-4e16-a301-a32bacfaa091/invitations"
}
}
Here is the response that would be returned from a request where the UID is not found.
HTTP/1.1 404
Cache-control: no-cache="set-cookie"
Content-Type: application/json;charset=UTF-8
Date: Wed, 17 Jan 2018 21:10:27 GMT
Set-Cookie: JSESSIONID=***REDACTED***
Set-Cookie: AWSELB=***REDACTED***
Content-Length: 83
Connection: keep-alive
{
"errors": [
"Guest not found for uid: 2666957e-b1de-4e16-a301-a32bacfaa091-dummy."
]
}
uri | /guest/{uid}/invitations |
---|---|
description | Return the invitations currently held by a guest. |
http operation | GET |
success response | 200 |
error response | 403 authentication/authorization error 404 UID not found |
Name | Description | Format |
---|---|---|
UID | The uid assigned to the guest record. | string |
Name | Description | Format |
---|---|---|
None |
The following is a valid request which contains all required and optional parameters.
curl -i -u {api_key}:{api_secret} \
https://apps.cirrusidentity.com/console/api/v2/guest/{uid}/invitations
Here is the response that would be returned from the sample request.
HTTP/1.1 200
Cache-control: no-cache="set-cookie"
Content-Type: application/json;charset=UTF-8
Date: Wed, 17 Jan 2018 21:16:04 GMT
Set-Cookie: JSESSIONID=***REDACTED***
Set-Cookie: AWSELB=***REDACTED***
Content-Length: 956
Connection: keep-alive
{
"href": "https://apps.cirrusidentity.com/console/api/v2/guest/2666957e-b1de-4e16-a301-a32bacfaa091/invitations",
"totalCount": 1,
"invitations": [
{
"href": "https://apps.cirrusidentity.com/console/api/v2/invitation/ac80d916-7918-4887-a9df-d158416a5601",
"uid": "ac80d916-7918-4887-a9df-d158416a5601",
"createDate": "2018-01-17T20:44:02Z",
"modifyDate": "2018-01-17T20:45:51Z",
"mailForInvite": "connie.contrail@gmail.com",
"status": "claimed",
"invitationDate": "2018-01-17T20:44:02Z",
"invitationAcceptedDate": "2018-01-17T20:45:51Z",
"expirationDate": "2019-01-17T20:44:02Z",
"validityPeriod": 3,
"givenName": "",
"sn": "",
"customData": {
"course": "Course1",
"section": "Section1"
},
"spEntityID": "https://research.athena-institute.net/shibboleth",
"sponsor": {
"href": "https://apps.cirrusidentity.com/console/api/v2/sponsor/11aa22bb33cc44dd55ee66ff77aa88bb"
},
"guest": {
"href": "https://apps.cirrusidentity.com/console/api/v2/guest/2666957e-b1de-4e16-a301-a32bacfaa091"
}
}
]
}
Here is the response that would be returned from a request where the UID is not found.
HTTP/1.1 404
Cache-control: no-cache="set-cookie"
Content-Type: application/json;charset=UTF-8
Date: Wed, 17 Jan 2018 21:10:27 GMT
Set-Cookie: JSESSIONID=***REDACTED***
Set-Cookie: AWSELB=***REDACTED***
Content-Length: 83
Connection: keep-alive
{
"errors": [
"Guest not found for uid: 2666957e-b1de-4e16-a301-a32bacfaa091-dummy."
]
}
uri |
/guest/{uid}/customData |
---|---|
description | Update the customeData name-value pairs for a guest. |
http operation | PUT |
success response | 200 |
error response | 403 authentication/authorization error associated with the requested domain 404 uid not found or used HTTP-POST instead of HTTP-PUT |
Name | Description | Format |
---|---|---|
uid | The uid assigned to the guest record. | String |
new customData | The body of the PUT should be a JSON document with a content-type of "application/json" containing the new customData name-value pairs. For example the document may look like the following: {"customData": { "foo" : "bar", "fu" : "baz"}} |
JSON Document |
Name | Description | Format |
---|---|---|
None |
The following is a valid request which contains all required parameters. In this request, we are adding the "sampleId" to the customData and retaining the existing "testId" entry.
curl -i -u {api_key}:{api_secret} \
-X PUT \
-H 'Content-Type: application/json' \
-d '{ "customData": {"testId": "A1234", "sampleId": "S-9876"}}' \
https://apps.cirrusidentity.com/console/api/v2/guest/2666957e-b1de-4e16-a301-a32bacfaa091/customData
Here is the response that would be returned from the previous request.
HTTP/1.1 200
Cache-control: no-cache="set-cookie"
Content-Type: application/json;charset=UTF-8
Date: Wed, 17 Jan 2018 21:25:45 GMT
Set-Cookie: JSESSIONID=***REDACTED***
Set-Cookie: AWSELB=***REDACTED***
Content-Length: 651
Connection: keep-alive
{
"href": "https://apps.cirrusidentity.com/console/api/v2/guest/2666957e-b1de-4e16-a301-a32bacfaa091",
"givenName": "Connie",
"sn": "Contrail",
"uid": "2666957e-b1de-4e16-a301-a32bacfaa091",
"mail": "connie.contrail@gmail.com",
"domain": "athena-institute.net",
"status": "valid",
"expirationDate": "2019-01-17T20:44:02Z",
"createDate": "2018-01-17T20:44:20Z",
"modifyDate": "2018-01-17T21:25:45Z",
"eduPersonPrincipalName": "11223344556677889@facebook.com",
"customData": {
"testId": "A1234",
"sampleId": "S-9876"
},
"socialProvider": "facebook",
"invitations": {
"href": "https://apps.cirrusidentity.com/console/api/v2/guest/2666957e-b1de-4e16-a301-a32bacfaa091/invitations"
}
}
Here is the response that would be returned from a request where the UID was not found
HTTP/1.1 404
Cache-control: no-cache="set-cookie"
Content-Type: application/json;charset=UTF-8
Date: Wed, 17 Jan 2018 21:27:51 GMT
Set-Cookie: JSESSIONID=***REDACTED***
Set-Cookie: AWSELB=***REDACTED***
Content-Length: 83
Connection: keep-alive
{
"errors": [
"Guest not found for uid: 2666957e-b1de-4e16-a301-a32bacfaa091-dummy."
]
}
uri | /guests |
---|---|
description | Create a guest in a linkGroup. You can use this as an anchor for different providerAttributes -- this is used to support authentication based account linking |
http operation | POST |
success response | 201 |
error response | 403 authentication/authorization error |
Name | Description | Format |
---|---|---|
givenName | The given name for the guest | String |
sn | The surname for the guest | String |
The email address for the guest | RFC 4524 | |
linkGroup | A valid linkGroupId provide by the /linkGroups API | Numeric; Must be >= 0 |
Name | Description | Format |
---|---|---|
None |
The following is a valid request which contains all required parameters.
curl --location --request POST "https://apps.cirrusidentity.com/console/api/v2/guests" \
--header "Content-Type: application/json" \
--data "{
\"givenName\": \"Alice\",
\"sn\": \"Arcus\",
\"mail\": \"alice.arcus@outlook.com\",
\"linkGroup\": {
\"id\": \"99991\"
}
}"
Here is the response that would be returned from the previous request.
HTTP/1.1 201 Created
Date: Fri, 21 Dec 2018 20:38:36 GMT
Content-Type: application/json;charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: AWSALB=REDACTED
X-Application-Context: REDACTED
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Location: https://apps.cirrusidentity.com/console/api/v2/guest/aaaaaaa-bbbb-4444-cccc-111111111111
Set-Cookie: JSESSIONID=REDACTED
{
"href": "https://apps.cirrusidentity.com/console/api/v2/guest/aaaaaaa-bbbb-4444-cccc-111111111111",
"givenName": "Alice",
"sn": "Arcus",
"uid": "aaaaaaa-bbbb-4444-cccc-111111111111",
"mail": "alice.arcus@outlook.com",
"domain": "athena-institute.net",
"status": "valid",
"expirationDate": null,
"createDate": "2018-12-21T20:38:36Z",
"modifyDate": "2018-12-21T20:38:36Z",
"eduPersonPrincipalName": null,
"customData": {},
"socialProvider": "",
"invitations": {
"href": "https://apps.cirrusidentity.com/console/api/v2/guest/aaaaaaa-bbbb-4444-cccc-111111111111/invitations"
}
}
uri | /guest/{uid} |
---|---|
description | Delete a guest object |
http operation | DELETE |
success response | 200 |
error response | 403 authentication/authorization error 404 UID not found or delete not allowed |
Name | Description | Format |
---|---|---|
UID | The uid assigned to the guest record. | string |
Name | Description | Format |
---|---|---|
None |
The following is a valid request which contains all required and optional parameters.
curl -i -u {api_key}:{api_secret} -X DELETE \
https://apps.cirrusidentity.com/console/api/v2/guest/{uid}
The API will return errors if there is are either active invitation or provider attribute (linking) records
attached to the guest.
{
"errors": [
"Guest has linked provider attributes and cannot be deleted."
]
}
{
"errors": [
"Guest has existing invitation(s) and cannot be deleted."
]
}
uri | /sponsor/{uid} |
---|---|
description | Return the attributes for a sponsor. |
http operation | GET |
success response | 200 |
error response | 403 authentication/authorization error 404 UID not found |
Name | Description | Format |
---|---|---|
UID | The uid assigned to the sponsor record. | string |
Name | Description | Format |
---|---|---|
None |
The following is a valid request which contains all required and optional parameters.
curl -i -u {api_key}:{api_secret} \
https://apps.cirrusidentity.com/console/api/v2/sponsor/{uid}
Here is the response that would be returned from the sample request.
HTTP/1.1 200
Cache-control: no-cache="set-cookie"
Content-Type: application/json;charset=UTF-8
Date: Wed, 17 Jan 2018 21:29:42 GMT
Set-Cookie: JSESSIONID=***REDACT***
Set-Cookie: AWSELB=***REDACT***
Content-Length: 316
Connection: keep-alive
{
"href": "https://apps.cirrusidentity.com/console/api/v2/sponsor/11aa22bb33cc44dd55ee66ff77aa88bb",
"givenName": "Someone",
"sn": "Sponsor",
"uid": "11aa22bb33cc44dd55ee66ff77aa88bb",
"mail": "someone.sponsor@athena-institute.net",
"eppn": "someone.sponsor@athena-institute.net",
"createDate": "2017-04-19T21:38:50Z",
"modifyDate": "2018-01-16T14:16:00Z"
}
Here is the response that would be returned from a request where the UID is not found.
HTTP/1.1 404
Cache-control: no-cache="set-cookie"
Content-Type: application/json;charset=UTF-8
Date: Wed, 17 Jan 2018 21:36:33 GMT
Set-Cookie: JSESSIONID=***REDACTED**
Set-Cookie: AWSELB=***REDACTED***
Content-Length: 81
Connection: keep-alive
{
"errors": [
"Sponsor not found for uid: 11aa22bb33cc44dd55ee66ff77aa88bb-dummy."
]
}
© Copyright Cirrus Identity, Inc.