Test authentication
Confirm that your credentials work and see the account, market, currency, permissions and expiry they carry.
This authenticated check returns your credential details without exposing any trading data.
How this call works
3 STEPSYour server
Send both credential headers
GET /pingCLIENT-KEY and CLIENT-SECRET on an HTTPS request. There is no token exchange and no session to establish first. A connected app sends its bearer token instead.
Cru
Cru identifies the credential
The hostname decides which market the credential is being used against, so a credential restricted to other markets is refused here too, with AUTH_STORE_NOT_ALLOWED.
Your server
Check scopes and expiry before anything else
A 200 means the credential works. Read client.scopes to confirm it can do what your integration needs, and client.expires_at to find out whether it will still work next month.
KEEP
client.scopes, client.expires_at, client.currency
Request parameters
This endpoint takes no query or body parameters. Send your credentials with it: the two authentication headers, or a connected app’s bearer token.
Response fields
200 OKFields returned in the data object.
pongboolean
Always true on success.
client.environmentstring
live on production, test everywhere else.
client.key_prefixstring | null
The start of the client key that called, such as cru_live_ABCD... Null for a connected app.
client.organisationstring | null
The account the credential acts for.
client.labelstring | null
The credential’s label, or the connected app’s registered name.
client.marketstring
The market you called, such as uk.
client.currencystring
ISO 4217 currency prices are quoted in on this market.
client.scopesarray<string>
The scopes granted.
client.expires_atdatetime | null
When the credential expires, or null if it does not. For a connected app, when the access token expires.
Errors
Missing or invalid credentials return AUTH_INVALID_CREDENTIALS / 401. A credential without meta:read gets AUTH_INSUFFICIENT_SCOPE / 403. View all error codes →