Query a status

Track the uptime of our products with the Status API.

Our Status API exposes the availability and error rates of the TrueLayer Data API, Payment API, and Payouts API in JSON format.

The returned error rates are broken down by provider and by internal or external error (for example, TrueLayer or provider error). You can use them to determine whether a certain product is offering degraded service or we are experiencing difficulty contacting a third-party reliably and are still offering a good service with other providers.

We calculate availability as percentage of total requests within a given hour that completed successfully. As such, when there have not been sufficient requests we cannot calculate availability. You may notice this if requesting the status of a product, provider or country that is in beta.

You can see the Status API in action in the TrueLayer Service Status page.

For updates on availability of our services you can check out our TrueLayer Status Twitter feed.

Get a product status

GET requests to /{product}/status retrieve the status of one of our products grouped by hour, provider and endpoint. product must be one of:

NameFunction
authConnecting to (or reauthenticating) an account using our Data API.
dataRetrieving data from a connected account through our Data API
paymentsInitiating a payment with our Payments API
payoutsInitiating a payout from our legacy Payouts API (only available in sandbox).

You should now make payouts through the /v3/payouts endpoint instead.

🚧

Where the concept of a provider is not relevant (for example, when initiating a payout), the Status API returns the provider as N/A.

The following is a list of optional query string parameters to use when calling the Status API.

NameExampleDescription
fromfrom=2019-01-07T10:00:00A timestamp that specifies the date and time data should be fetched from. This defaults to 24 hours. Results are rounded down to the nearest hour.
toto=2019-01-07T14:00:00 A timestamp that specifies the date and time data should be fetched until. This defaults the current time. Results are rounded down to the nearest hour.
providersproviders=hsbc,oauth-monzo,ob-barclaysA comma-separated list of providers, only data related to the supplied providers will be returned
endpointsendpoints=data/v1/accounts,data/v1/infoA comma-separated list of endpoints, only data related to the supplied endpoints will be returned
environmentenvironment=sandboxA string that specifies the desired environment from which to fetch availability. Can be sandbox or production. Defaults to production

📘

Note that the from date can be a maximum of seven days before the current date.

curl 'https://status-api.truelayer.com/api/v1/data/status?from=2023-10-22T12:00:00&to=2023-10-24T15:00:00&providers=ob-barclays,ob-monzo&endpoints=data/v1/accounts'

You get a response that contains the following:

NameDescription
resultsA JSON array containing data bucket objects
provider_idA string containing the provider id
timestampThe start of a one-hour time bucket
endpointsA comma-separated list of endpoints, only data related to the supplied endpoints will be returned
latency_percentilesA dictionary with percentiles as keys and latencies as values (in milliseconds). For example, a latency of 128 milliseconds on the 50th percentiles means that half of the requests directed to that endpoint completed in 128 milliseconds or less.
availabilityThe percentage of successful requests for a provider's endpoint represented as a float value between 0-100
provider_errorThe percentage of unsuccessful requests (that we know are on the provider side) for a provider's endpoint represented as a float value between 0-100
truelayer_errorThe percentage of unsuccessful requests (due to TrueLayer) for a provider's endpoint represented as a float value between 0-100
{
  "status": "ok",
  "results": [
    {
      "timestamp": "2019-06-20T12:00:00.0000000",
      "providers": [
        {
          "provider_id": "barclays",
          "endpoints": [
            {
              "endpoint": "accounts",
              "availability": 93.68421052631578,
              "provider_error": 3.1578947368421053,
              "truelayer_error": 3.1578947368421053,
              "latency_percentiles": {
                "50": 15,
                "75": 74,
                "90": 78.2,
                "95": 140,
                "99": 1401.5,
              }
            }
          ],
          "availability": 93.68421052631578,
          "provider_error": 3.1578947368421053,
          "truelayer_error": 3.1578947368421053
        },
        {
          "provider_id": "oauth-monzo",
          "endpoints": [
            {
              "endpoint": "accounts",
              "availability": 100,
              "provider_error": 0,
              "truelayer_error": 0,
              "latency_percentiles": {
                "50": 17,
                "75": 74.3,
                "90": 73.2,
                "95": 240,
                "99": 1401.5,
              }
            }
          ],
          "availability": 100,
          "provider_error": 0,
          "truelayer_error": 0
        }
      ],
      "availability": 94.39252336448598,
      "provider_error": 2.803738317757009,
      "truelayer_error": 2.803738317757009
    }
  ]
}