Health API

When to choose Health API

Choose Health API when your monitoring system needs to check whether EZITXT APIs are available before sending production traffic; use product-specific APIs when you need to send messages or retrieve message records.

Overview

Connect to EZITXT Health API to monitor in a near real-time fashion whether our individual APIs are available and healthy to take requests.

We poll the health of each of these services every minute, from an external geographically distributed provider, independent of our own infrastructure. Status information is cached, we will retrieve status information once per minute.

What the API can do

  • Return service health information for selected EZITXT APIs
  • Query one or more services in a single request
  • Provide near real-time status based on checks performed every 60 seconds
  • Support unauthenticated monitoring from external systems

How it works

In practice, the API follows a simple workflow:

  1. Choose the service names you want to monitor.
  2. Submit a GET request to /rest/services/v1/status with one or more service query parameters.
  3. Read the returned health status for each requested service.
  4. Poll no more frequently than the one-minute status refresh interval.

When to use Health API

Use Health API when your integration needs operational visibility into whether an API is available and healthy to take requests. It is useful for uptime checks, alerting, failover decisions, and operational dashboards.

This API does not send messages and does not replace delivery receipts or message reporting from the individual messaging APIs.

Before you start

Before making your first request, confirm the following:

  1. You know which service names your monitoring system should query.
  2. Your monitoring interval accounts for the one-minute cache period.
  3. Your application handles unknown for unsupported or incorrectly cased service names.

First successful request path

For most implementations, the fastest way to validate connectivity and configuration is:

  1. Submit a GET request with two known services, for example rest and smpp.
  2. Confirm the response includes a health result for each requested service.
  3. Add the services your integration depends on.
  4. Connect the response handling to your monitoring or alerting workflow.

Authentication

No authentication is required to utilise this service.

OpenAPI Specification

OpenAPI Specification

Checking Service Health

You must elect which service(s) you wish to receive health information about, eg:

GET /rest/services/v1/status?service=rest&service=smpp

Get Service Status Example

These examples retrieve health information for the rest and smpp services.

curl "https://{apiDomainName}/rest/services/v1/status?service=rest&service=smpp"
const params = new URLSearchParams();
params.append("service", "rest");
params.append("service", "smpp");

const response = await fetch(`https://{apiDomainName}/rest/services/v1/status?${params}`);
const status = await response.json();
import requests

response = requests.get(
    "https://{apiDomainName}/rest/services/v1/status",
    params=[
        ("service", "rest"),
        ("service", "smpp"),
    ],
)

status = response.json()
<?php
$query = "service=rest&service=smpp";

$ch = curl_init("https://{apiDomainName}/rest/services/v1/status?" . $query);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
?>
require "json"
require "net/http"
require "uri"

uri = URI("https://{apiDomainName}/rest/services/v1/status")
uri.query = URI.encode_www_form([
  ["service", "rest"],
  ["service", "smpp"]
])

response = Net::HTTP.get_response(uri)
status = JSON.parse(response.body)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://{apiDomainName}/rest/services/v1/status?service=rest&service=smpp"))
    .GET()
    .build();

HttpResponse<String> response = HttpClient.newHttpClient()
    .send(request, HttpResponse.BodyHandlers.ofString());
using var client = new HttpClient();

var response = await client.GetAsync("https://{apiDomainName}/rest/services/v1/status?service=rest&service=smpp");
var responseBody = await response.Content.ReadAsStringAsync();

The full list of services which can be queried includes:

  • email2sms

  • https

  • rest

  • restv2

  • smpp

  • soap

  • eziapi

Values are case sensitive, providing a service outside of this list will always provide an “unknown” status.