Get Your API Key

Before an application can communicate with INNORIX, it must first authenticate. Exacoola authenticates using an access token (JWT) issued at login. The base URL is https://app.innorix.com.

  • Login (POST /api/auth/login) — Sign in with an account to receive an access token and refresh token.
  • Issue API key (POST /api/auth/api-keys) — Issues a general user API key. Use it in the x-api-key header. (The external trigger key dedicated to command automation is issued separately through GET /api/command/generate-api-key — see Automate File Transfers.)

For API calls that require authentication, send the following two headers together.

http
Authorization: Bearer <ACCESS_TOKEN>
x-workspace-id: <WORKSPACE_ID>

Login

POST /api/auth/login — User login

bash
curl -X POST https://app.innorix.com/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "<YOUR_EMAIL>",
    "password": "<YOUR_PASSWORD>"
  }'

Response:

json
{
  "status_code": 200,
  "message": "success",
  "data": {
    "user": {
      "email": "user@example.com",
      "userName": "User Name",
      "userId": "usr_abc123",
      "state": "1",
      "accessToken": "<ACCESS_TOKEN>",
      "refreshToken": "<REFRESH_TOKEN>"
    }
  }
}

Use data.user.accessToken in the Authorization: Bearer header for subsequent requests. When the access token expires, issue a new token through POST /api/auth/token/refresh.

Issue API Key (for Command Automation)

POST /api/auth/api-keys — Create an API key for the signed-in user

bash
curl -X POST https://app.innorix.com/api/auth/api-keys \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "x-workspace-id: <WORKSPACE_ID>"

Response:

json
{
  "status_code": 200,
  "message": "success",
  "data": {
    "apiKey": "a3f2c1..."
  }
}

Use the issued apiKey in the x-api-key header for command automation trigger requests. To revoke a key, call DELETE /api/auth/api-keys with body { "apiKey": "a3f2c1..." }.

Token Refresh · Session Management

When the access token expires, use the refresh token to issue a new token. Send the refresh token in the X-Refresh-Token header.

POST /api/auth/token/refresh — Refresh session tokens

bash
curl -X POST https://app.innorix.com/api/auth/token/refresh \
  -H "X-Refresh-Token: <REFRESH_TOKEN>"

Response:

json
{
  "status_code": 200,
  "message": "success",
  "data": {
    "accessToken": "<NEW_ACCESS_TOKEN>",
    "refreshToken": "<NEW_REFRESH_TOKEN>",
    "expiresIn": 3600,
    "userId": "usr_abc123",
    "email": "user@example.com",
    "userName": "User Name"
  }
}

Other session management endpoints:

PurposeMethod · Path
Refresh session tokens (deprecated alias)POST /api/auth/token
LogoutPOST /api/auth/logout (header: X-Refresh-Token)
Revoke API keyDELETE /api/auth/api-keys (body: { "apiKey": "a3f2c1..." })