Skip to main content
POST
/
v1
/
auth
/
jwt
cURL
curl --request POST \
  --url https://public.api.live.turrisfi.com/v1/auth/jwt \
  --header 'Content-Type: application/json' \
  --data '
{
  "clientId": "m2m-client-abc123",
  "clientSecret": "your-client-secret"
}
'
{
  "data": {
    "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
    "expiresIn": 3600,
    "tokenType": "Bearer"
  },
  "requestId": "dev-2c5e7cf2-9acf-4c8c-ab2f-b81f39d775a8",
  "timestamp": "2025-11-12T20:49:03.293Z"
}
Exchange your client ID and client secret for a JWT access token that can be used to authenticate subsequent API requests.
Rate Limited: This endpoint is rate-limited. You should cache the returned token and reuse it until it expires (60 minutes).

Token Lifecycle

  1. Request a token using your client credentials
  2. Use the token in the Authorization: Bearer <token> header
  3. Token expires after 60 minutes
  4. Request a new token before expiration

Example Usage

const response = await fetch('https://public.api.live.turrisfi.com/v1/auth/jwt', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    client_id: 'your-client-id',
    client_secret: 'your-client-secret'
  })
});

const { access_token } = await response.json();

Body

application/json
clientId
string
required

Your API client ID

Example:

"m2m-client-abc123"

clientSecret
string
required

Your API client secret

Example:

"your-client-secret"

Response

JWT access token response

data
object
required
requestId
string
required

Unique request identifier

Example:

"dev-2c5e7cf2-9acf-4c8c-ab2f-b81f39d775a8"

timestamp
string
required

Response timestamp

Example:

"2025-11-12T20:49:03.293Z"