DomainCat REST API
DomainCat provides a simple read-only REST API for querying your SSL certificate and domain expiry data. It is designed for integration with monitoring dashboards such as Grafana. No login required — just an API key.
https://domaincat.app/apiAuthentication
All API requests require an API key passed as the api_key query parameter.
Generate your API key from Settings → API Access.
curl "https://domaincat.app/api/status?api_key=YOUR_API_KEY"
GET /status
Returns a summary of your monitored domains — counts by expiry state. Useful for stat panels in dashboards.
Example request
curl "https://domaincat.app/api/status?api_key=YOUR_API_KEY"
Response
{
"total": 12,
"expiring_soon": 2,
"ssl_expired": 0,
"domain_expiring_soon": 1,
"domain_expired": 0,
"unchecked": 0
}| Field | Type | Description |
|---|---|---|
| total | number | Total domains in your account |
| expiring_soon | number | SSL certs expiring within 30 days |
| ssl_expired | number | SSL certs already expired |
| domain_expiring_soon | number | Domain registrations expiring within 30 days |
| domain_expired | number | Domain registrations already expired |
| unchecked | number | Domains not yet checked |
GET /domains
Returns an array of all domains in your account with SSL and registration details. Useful for table panels showing per-domain status.
Example request
curl "https://domaincat.app/api/domains?api_key=YOUR_API_KEY"
Response
[
{
"id": 42,
"hostname": "example.com",
"label": "Main site",
"group_name": "Clients",
"issuer": "Let's Encrypt",
"days_remaining": 24,
"valid_to": "2026-04-01T00:00:00.000Z",
"registrar": "Namecheap",
"domain_expiry": "2027-05-15T00:00:00.000Z",
"last_checked_at": "2026-03-07T10:00:00.000Z"
}
]| Field | Type | Description |
|---|---|---|
| id | number | Internal domain ID |
| hostname | string | Domain name (e.g. example.com) |
| label | string | null | User-assigned label |
| group_name | string | null | Group the domain belongs to |
| issuer | string | null | SSL certificate issuer |
| days_remaining | number | null | Days until SSL expiry (negative = expired) |
| valid_to | ISO 8601 | null | SSL certificate expiry date |
| registrar | string | null | Domain registrar |
| domain_expiry | ISO 8601 | null | Domain registration expiry date |
| last_checked_at | ISO 8601 | null | When the domain was last checked |
Grafana Integration
DomainCat works with the Infinity datasource plugin (yesoreyeram-infinity-datasource), which can query any JSON REST API.
Setup steps
- In Grafana, go to Plugins and install the Infinity datasource plugin.
- Add a new datasource of type Infinity. Name it
DomainCat API. No additional configuration needed — the URLs are set per panel. - Import the DomainCat dashboard template (JSON) via Dashboards → Import.
- When prompted, select your DomainCat API datasource and enter your API key in the
API_KEYvariable.
Manual panel configuration
If you prefer to build panels manually, use these settings in the Infinity query editor:
| Setting | Value |
|---|---|
| Type | JSON |
| Source | URL |
| Method | GET |
| URL (domains) | https://domaincat.app/api/domains?api_key=YOUR_KEY |
| URL (status) | https://domaincat.app/api/status?api_key=YOUR_KEY |
| Format | Table |
| Root selector | (leave empty) |
Dashboard Template
Download the pre-built Grafana dashboard JSON. It includes 6 stat panels (total, expiring soon, expired counts) and a full domain table with color-coded SSL expiry thresholds.
Download grafana-dashboard.jsonRequires Grafana 10+ and the Infinity datasource plugin (v2.0+).