{
  "openapi": "3.0.1",
  "info": {
    "title": "OpenAPI Specification",
    "version": "1.0.0",
    "description": "This is the documentation for the Team API, that allows querying data for a Celonis Platform team."
  },
  "servers": [
    {
      "description": "Default Server URL",
      "url": "/"
    }
  ],
  "tags": [
    {
      "description": "Allows you to query and export a list of all members assigned to a Celonis Platform team.",
      "name": "Members API"
    },
    {
      "description": "Allows you to query the Login History for a team and export it for use with external monitoring tools to capture and monitor platform login events.",
      "name": "Login History API"
    },
    {
      "description": "Reads uplink registrations, including connection status, based on the team permissions granted in the OAuth client.",
      "name": "Uplink Registration"
    }
  ],
  "security": [
    {
      "Authorization": []
    }
  ],
  "paths": {
    "/api/external/authentication-events": {
      "get": {
        "description": "Login History events can be filtered by specifying a date interval.<br> Maximum number of events that will be received by page is 200. <br> The OAuth 2.0 scope to use is <tt>team.login-history:read</tt>.<br> If there would be more events on the specified date interval total number of pages will be returned for further querying.",
        "operationId": "findAllAuthenticationEvents",
        "parameters": [
          {
            "description": "Page number to be retrieved, starts with 0",
            "example": 0,
            "in": "query",
            "name": "pageNumber",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0,
              "minimum": 0
            }
          },
          {
            "description": "Limit of results per page",
            "example": 200,
            "in": "query",
            "name": "pageSize",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 200,
              "maximum": 200,
              "minimum": 1
            }
          },
          {
            "description": "Date Time ISO 8601 yyyy-MM-ddTHH:mm:ss",
            "example": "2022-01-01T09:00:00",
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "description": "Date Time ISO 8601 yyyy-MM-ddTHH:mm:ss",
            "example": "2022-01-31T09:00:00",
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageTransportAuthenticationEventExternalTransport"
                }
              }
            },
            "description": "A list of Login History events"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {},
            "description": "Bad Request. Please check the response contents for an explanation of the cause."
          },
          "401": {
            "description": "Unauthorized. Check whether your API key or application key has sufficient permissions. In case you are unsure, please refer the documentation on [application keys](https://docs.celonis.com/en/creating-api-keys.html) and [permissions](https://docs.celonis.com/en/creating-and-granting-permissions-to-application-keys.html)."
          },
          "403": {
            "description": "Forbidden"
          },
          "405": {
            "description": "Method Not Allowed"
          },
          "500": {
            "content": {},
            "description": "An internal error happened. Please forward the associated error ID along with any helpful information to [our support](https://www.celopeers.com/s/support?language=en_US)"
          }
        },
        "summary": "List Login History",
        "tags": [
          "Login History API"
        ]
      }
    },
    "/api/external/members": {
      "get": {
        "description": "Maximum number of members that will be received by page is 200.<br> The OAuth 2.0 scope to use is <tt>team.user-group-info:read</tt>.<br>",
        "operationId": "getMemberProfileExternalTransport",
        "parameters": [
          {
            "description": "Page number to be retrieved. Starts with 0.",
            "example": 0,
            "in": "query",
            "name": "pageNumber",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0,
              "minimum": 0
            }
          },
          {
            "description": "Limit of results per page",
            "example": 200,
            "in": "query",
            "name": "pageSize",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 200,
              "maximum": 200,
              "minimum": 1
            }
          },
          {
            "description": "A boolean parameter to show internal or external members",
            "example": true,
            "in": "query",
            "name": "includeInternal",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageTransportMemberProfileExternalTransport"
                }
              }
            },
            "description": "A list of Members"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {},
            "description": "Bad Request. Check the response contents for an explanation of the cause."
          },
          "401": {
            "description": "Unauthorized. Check whether your API key or application key has sufficient permissions. If you are unsure, refer the documentation on [application keys](https://docs.celonis.com/en/creating-api-keys.html) and [permissions](https://docs.celonis.com/en/creating-and-granting-permissions-to-application-keys.html)."
          },
          "403": {
            "description": "Forbidden"
          },
          "405": {
            "description": "Method Not Allowed"
          },
          "500": {
            "content": {},
            "description": "An internal error happened. Forward the associated error ID along with any helpful information to [our support](https://www.celopeers.com/s/support?language=en_US)"
          }
        },
        "summary": "List of all members",
        "tags": [
          "Members API"
        ]
      }
    },
    "/api/uplink-registration": {
      "get": {
        "description": "The Manage Uplink Integrations permission is required to use this endpoint.<br> When authenticating with OAuth 2.0, the required scope is <tt>team.uplink-integration:read</tt>.<br> The response includes all uplink registration metadata exposed by this endpoint, including connected/lastConnected status.<br> This is not a status-only response.<br>",
        "operationId": "findAll",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UplinkRegistrationTransport"
                  }
                }
              }
            },
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method Not Allowed"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionReference"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Read uplink registrations",
        "tags": [
          "Uplink Registration"
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AuthenticationEventExternalTransport": {
        "type": "object",
        "properties": {
          "authenticationEventType": {
            "$ref": "#/components/schemas/AuthenticationEventType"
          },
          "email": {
            "type": "string",
            "description": "Email associated with Login History request",
            "example": "email@example.com"
          },
          "success": {
            "type": "boolean",
            "description": "Result of the Login History Event",
            "example": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time when event occurred in ISO 8601 UTC format",
            "example": "2021-01-08T16:36:29.003Z"
          }
        }
      },
      "AuthenticationEventType": {
        "type": "string",
        "description": "Category of the Login History Event",
        "enum": [
          "LOGIN",
          "LOGIN_SSO",
          "LOGIN_CELONIS_ID",
          "LOGIN_OIDC",
          "LOGOUT",
          "ACCOUNT_TEMPORARILY_LOCKED",
          "ACCOUNT_NOT_CONFIRMED",
          "ACCOUNT_NOT_ACTIVE",
          "NOT_MEMBER_OF_TEAM",
          "TEAM_MEMBERSHIP_NOT_ACTIVE",
          "TEAM_MEMBERSHIP_NOT_CONFIRMED",
          "BAD_CREDENTIALS",
          "INVALID_2FA_TOKEN",
          "INVALID_PROVIDER"
        ],
        "example": "LOGIN"
      },
      "ExceptionReference": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          },
          "reference": {
            "type": "string"
          },
          "shortMessage": {
            "type": "string"
          }
        },
        "required": [
          "message",
          "reference",
          "shortMessage"
        ]
      },
      "ExternalGroupTransport": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the group",
            "example": "Sample Group"
          },
          "teamRole": {
            "type": "string",
            "description": "Role assigned to group",
            "example": "ANALYST"
          }
        }
      },
      "MemberProfileExternalTransport": {
        "type": "object",
        "properties": {
          "group": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalGroupTransport"
            }
          },
          "inactivityPeriod": {
            "type": "integer",
            "format": "int64",
            "description": "Number of days in which the user has not logged in.",
            "example": 14
          },
          "lastLogin": {
            "type": "string",
            "description": "Date and time when of member last login in UTC format",
            "example": "12/10/2023, 6:49:07 AM UTC"
          },
          "nameAndEmail": {
            "type": "string",
            "description": "Name and email address of member",
            "example": "Lorem Ipsum (email@example.com)"
          },
          "status": {
            "type": "string",
            "description": "Current status of member in his team",
            "example": "Active"
          },
          "userId": {
            "type": "string",
            "description": "Unique identifier of a member",
            "example": "8161c24e-2b32-44eb-bedb-ede2267be989"
          },
          "userRole": {
            "type": "string",
            "description": "Role of the member in the Celonis Platform",
            "example": "MEMBER"
          }
        }
      },
      "PageTransportAuthenticationEventExternalTransport": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuthenticationEventExternalTransport"
            }
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "PageTransportMemberProfileExternalTransport": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MemberProfileExternalTransport"
            }
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "UplinkRegistrationTransport": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string"
          },
          "clientSecret": {
            "type": "string"
          },
          "connected": {
            "type": "boolean"
          },
          "connectorVersion": {
            "type": "string"
          },
          "createdBy": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "lastConnected": {
            "type": "string",
            "format": "date-time"
          },
          "locked": {
            "type": "boolean"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "type": {
            "$ref": "#/components/schemas/UplinkRegistrationType"
          }
        },
        "required": [
          "clientId",
          "clientSecret",
          "connected",
          "connectorVersion",
          "createdBy",
          "id",
          "lastConnected",
          "locked",
          "name",
          "type"
        ]
      },
      "UplinkRegistrationType": {
        "type": "string",
        "enum": [
          "CELONIS4",
          "CONNECTOR",
          "CONNECTOR_WITH_OAUTH"
        ]
      }
    },
    "securitySchemes": {
      "Authorization": {
        "description": "Prefix the Token with \"AppKey \" or \"Bearer \" (word and space) to indicate the Authorization type",
        "in": "header",
        "name": "Authorization",
        "type": "apiKey"
      }
    }
  }
}