curl --request GET \
--url "https://rtb.example.com/v1/health" \
--header "Authorization: <api-key>"
import requests
response = requests.get(
"https://rtb.example.com/v1/health",
headers={"Authorization": "<api-key>"},
)
health = response.json()
const response = await fetch("https://rtb.example.com/v1/health", {
headers: { Authorization: "<api-key>" },
});
const health = await response.json();
{
"status": "ok",
"time": "2026-09-29T02:05:30+09:00",
"api_version": "1",
"model_version": "m0924-1",
"weights_version": "w-1",
"last_cycle_id": "20260929T0205",
"last_cycle_received_at": "2026-09-29T02:05:03+09:00"
}
Operations
Health
Service state, versions in use and the last cycle received.
GET
/
v1
/
health
curl --request GET \
--url "https://rtb.example.com/v1/health" \
--header "Authorization: <api-key>"
import requests
response = requests.get(
"https://rtb.example.com/v1/health",
headers={"Authorization": "<api-key>"},
)
health = response.json()
const response = await fetch("https://rtb.example.com/v1/health", {
headers: { Authorization: "<api-key>" },
});
const health = await response.json();
{
"status": "ok",
"time": "2026-09-29T02:05:30+09:00",
"api_version": "1",
"model_version": "m0924-1",
"weights_version": "w-1",
"last_cycle_id": "20260929T0205",
"last_cycle_received_at": "2026-09-29T02:05:03+09:00"
}
Overview
The Health API returns the state of the service, the model and weights in use, and the last cycle call we received. It is not needed for scoring: DCinside can use it for its own monitoring, for example to check that the last cycle arrived.Surf’s own watchdog does not rely on this endpoint. It watches the arrival time of the latest cycle call on a separate schedule, and posts to Slack if no call arrives for 15 minutes.
Response Attributes
string
required
degraded means the service is up but something needs a look, for example scoring is slower than usual. One of ok, degraded.string
required
Our clock.
string
required
API major version.
string
required
Model in use.
string
required
Weights in force.
string | null
required
The last cycle call received, or
null before the first.string | null
required
When that call arrived, or
null before the first.curl --request GET \
--url "https://rtb.example.com/v1/health" \
--header "Authorization: <api-key>"
import requests
response = requests.get(
"https://rtb.example.com/v1/health",
headers={"Authorization": "<api-key>"},
)
health = response.json()
const response = await fetch("https://rtb.example.com/v1/health", {
headers: { Authorization: "<api-key>" },
});
const health = await response.json();
{
"status": "ok",
"time": "2026-09-29T02:05:30+09:00",
"api_version": "1",
"model_version": "m0924-1",
"weights_version": "w-1",
"last_cycle_id": "20260929T0205",
"last_cycle_received_at": "2026-09-29T02:05:03+09:00"
}
Authorizations
The API key issued for the environment, sent as the whole header value. Two keys are valid during a rotation.
Response
Service state.
degraded means the service is up but something needs a look, for example scoring is slower than usual.
Available options:
ok, degraded Example:
"ok"
Our clock.
Pattern:
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+09:00$Example:
"2026-09-29T02:05:30+09:00"
API major version.
Example:
"1"
Model in use.
Example:
"m0924-1"
Weights in force.
Example:
"w-1"
The last cycle call received, or null before the first.
Example:
"20260929T0205"
When that call arrived, or null before the first.
Pattern:
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+09:00$Example:
"2026-09-29T02:05:03+09:00"