The Health service is designed to allow you to both validate and monitor that your Appwrite instance and all of its internal components are up and responsive.
https://cloud.appwrite.io/v1
GET /health
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.get(new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
}));
GET /health/anti-virus
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getAntivirus(new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
}));
Get cache
Check the Appwrite in-memory cache servers are up and connection is successful.
Response
200
GET /health/cache
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getCache(new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
}));
Get the SSL certificate for a domain
Get the SSL certificate for a domain
Request
domain string
Response
GET /health/certificate
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getCertificate(
"", // domain (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
})
);
GET /health/db
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getDB(new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
}));
GET /health/pubsub
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getPubSub(new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
}));
Get queue
Check the Appwrite queue messaging servers are up and connection is successful.
Response
200
GET /health/queue
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getQueue(new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
}));
Get builds queue
Get the number of builds that are waiting to be processed in the Appwrite internal queue server.
Request
threshold Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
Response
200
GET /health/queue/builds
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getQueueBuilds(
0, // threshold (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
})
);
Get certificates queue
Get the number of certificates that are waiting to be issued against Letsencrypt in the Appwrite internal queue server.
Request
threshold Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
Response
200
GET /health/queue/certificates
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getQueueCertificates(
0, // threshold (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
})
);
Get databases queue
Get the number of database changes that are waiting to be processed in the Appwrite internal queue server.
Request
name Queue name for which to check the queue size
threshold Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
Response
200
GET /health/queue/databases
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getQueueDatabases(
"<NAME>", // name (optional)
0, // threshold (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
})
);
Get deletes queue
Get the number of background destructive changes that are waiting to be processed in the Appwrite internal queue server.
Request
threshold Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
Response
200
GET /health/queue/deletes
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getQueueDeletes(
0, // threshold (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
})
);
Get number of failed queue jobs
Returns the amount of failed jobs in a given queue.
Request
name requiredThe name of the queue
threshold Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
Response
200
GET /health/queue/failed/{name}
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
import io.appwrite.enums.Name;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getFailedJobs(
.V1_DATABASE, // name
0, // threshold (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
})
);
Get functions queue
Get the number of function executions that are waiting to be processed in the Appwrite internal queue server.
Request
threshold Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
Response
200
GET /health/queue/functions
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getQueueFunctions(
0, // threshold (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
})
);
Get logs queue
Get the number of logs that are waiting to be processed in the Appwrite internal queue server.
Request
threshold Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
Response
200
GET /health/queue/logs
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getQueueLogs(
0, // threshold (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
})
);
Get mails queue
Get the number of mails that are waiting to be processed in the Appwrite internal queue server.
Request
threshold Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
Response
200
GET /health/queue/mails
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getQueueMails(
0, // threshold (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
})
);
Get messaging queue
Get the number of messages that are waiting to be processed in the Appwrite internal queue server.
Request
threshold Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
Response
200
GET /health/queue/messaging
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getQueueMessaging(
0, // threshold (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
})
);
Get migrations queue
Get the number of migrations that are waiting to be processed in the Appwrite internal queue server.
Request
threshold Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
Response
200
GET /health/queue/migrations
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getQueueMigrations(
0, // threshold (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
})
);
Get usage queue
Get the number of metrics that are waiting to be processed in the Appwrite internal queue server.
Request
threshold Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
Response
200
GET /health/queue/usage
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getQueueUsage(
0, // threshold (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
})
);
Get usage dump queue
Get the number of projects containing metrics that are waiting to be processed in the Appwrite internal queue server.
Request
threshold Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
Response
200
GET /health/queue/usage-dump
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getQueueUsageDump(
0, // threshold (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
})
);
Get webhooks queue
Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.
Request
threshold Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
Response
200
GET /health/queue/webhooks
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getQueueWebhooks(
0, // threshold (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
})
);
GET /health/storage
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getStorage(new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
}));
Get local storage
Check the Appwrite local storage device is up and connection is successful.
Response
200
GET /health/storage/local
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getStorageLocal(new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
}));
Get time
Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The Network Time Protocol (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.
Response
200
GET /health/time
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Health;
Client client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setKey("<YOUR_API_KEY>"); // Your secret API key
Health health = new Health(client);
health.getTime(new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
}));