API Authentication
All Rulex APIs require an authentication token, which can be obtained through two different types of authentication:
Client ID & Secret
Signed JWT (JSON Web Token).
The authentication is requested through a dedicated API call, which a specific structure
POST /api/auth/token
The call does not require any headers, and its parameters depend on the type of authentication selected.
For details on the auth/token call see Auth Token.
Sample authentication request
The following is an example in cURL of an API request, using client-secret authentication
## Auth Token Example with cURL: ``` curl --location --request POST 'your_rulex_cloud_url' \ --header 'Content-Type: application/json' \ --data-raw '{ "auth_type": "client-secret", "clientId": "<yourClientId>", "clientSecret": "<yourClientSecret>" }' ````
Authentication Responses
As with other API calls, the Auth API includes:
a status code, which is 200 if the request is successful.
response headers, which include the ID of the request, its timestamp, and the content type of the body, which should be JSON
response body, which includes information such as the requested token and its expiration, the refresh token and its expiration.
Sample authentication response
The following is an example of the response to the above API request, using client-secret authentication
Response ``` 200 X-Rulex-Request-Id: "b737fddf-5a1a-485c-bdc3-f0c23604bfac" X-Rulex-Response-Timestamp: "2022-07-08T17:02:46.179894Z+02:00" Content-Type: "application/json" { "access_token": "<token>", "expires_in": 300, "refresh_expires_in": 7200, "refresh_token": "<refreshToken>", "token_type": "Bearer", "not-before-policy": 0, "session_state": "a2447e88-2706-463f-8527-40fd126b97b4", "scope": "email profile" } ```