> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Healthcheck

> Public unauthenticated liveness probe. Returns `HTTP 200` with `{status: "ok", timestamp}` when service, DB, cache, and broker are healthy.

export const AgentPromptAccordion = ({prompt, title = "AI Agent Integration Prompt"}) => {
  const [copied, setCopied] = React.useState(false);
  const handleCopy = e => {
    e.stopPropagation();
    if (!prompt) return;
    navigator.clipboard.writeText(prompt.trim()).then(() => {
      setCopied(true);
      setTimeout(() => setCopied(false), 2000);
    });
  };
  const agents = ["Claude Code", "Codex", "Cursor", "Devin", "Windsurf", "GitHub Copilot"];
  return <div className="didit-agent-card">
      {}
      <div className="didit-agent-titlebar">
        <div className="didit-agent-dots" aria-hidden="true">
          <span className="didit-agent-dot didit-agent-dot-red"></span>
          <span className="didit-agent-dot didit-agent-dot-yellow"></span>
          <span className="didit-agent-dot didit-agent-dot-green"></span>
        </div>
        <span className="didit-agent-filename">{title}</span>
        <button type="button" className={`didit-agent-copy ${copied ? "didit-agent-copy-copied" : ""}`} onClick={handleCopy} title="Copy prompt to clipboard" aria-label={copied ? "Copied!" : "Copy prompt to clipboard"}>
          {copied ? <>
              <svg width="13" height="13" viewBox="0 0 16 16" fill="none">
                <path d="M3 8.5l3.5 3.5L13 4" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
              </svg>
              <span>Copied</span>
            </> : <>
              <svg width="13" height="13" viewBox="0 0 16 16" fill="none">
                <rect x="5" y="5" width="9" height="9" rx="1.5" stroke="currentColor" strokeWidth="1.5" />
                <path d="M11 5V3.5A1.5 1.5 0 0 0 9.5 2h-6A1.5 1.5 0 0 0 2 3.5v6A1.5 1.5 0 0 0 3.5 11H5" stroke="currentColor" strokeWidth="1.5" />
              </svg>
              <span>Copy</span>
            </>}
        </button>
      </div>

      {}
      <pre className="didit-agent-body"><code>{prompt.trim()}</code></pre>

      {}
      <div className="didit-agent-footer">
        <span className="didit-agent-footer-label">Paste into</span>
        <div className="didit-agent-chips">
          {agents.map(name => <span key={name} className="didit-agent-chip">{name}</span>)}
        </div>
      </div>
    </div>;
};

<AgentPromptAccordion
  title="Healthcheck Prompt"
  prompt={`Probe Didit's public health endpoint.

GET https://verification.didit.me/system/healthcheck

Auth: NONE. The only Didit endpoint that does not require an auth header.

Success (HTTP 200):
{ "status": "ok", "timestamp": "2026-05-17T20:03:54.213Z" }

Gate on HTTP 200, not on the body:
curl -fsS https://verification.didit.me/system/healthcheck

Cadence: k8s/load-balancer probes 5-15s; uptime monitors 60s. Both /system/healthcheck and /system/healthcheck/ are accepted.

For end-to-end Didit integration, paste in the full prompt at /integration/integration-prompt.`}
/>


## OpenAPI

````yaml openapi-healthcheck.json GET /system/healthcheck
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Healthcheck API
  description: Public unauthenticated healthcheck endpoint for the Didit Verification API.
servers:
  - url: https://verification.didit.me
security: []
paths:
  /system/healthcheck:
    get:
      tags:
        - System
      summary: Service healthcheck (public, unauthenticated)
      description: >-
        Public unauthenticated liveness probe. Returns `HTTP 200` with `{status:
        "ok", timestamp}` when service, DB, cache, and broker are healthy.
      operationId: get_system_healthcheck
      parameters: []
      responses:
        '200':
          description: >-
            Service is healthy and accepting requests. Body is always
            `{"status": "ok", "timestamp": "<iso8601>"}`.
          content:
            application/json:
              schema:
                type: object
                required:
                  - status
                  - timestamp
                properties:
                  status:
                    type: string
                    enum:
                      - ok
                    description: >-
                      Liveness marker. Always the literal string `"ok"` on a 200
                      response.
                    example: ok
                  timestamp:
                    type: string
                    format: date-time
                    description: >-
                      Server time at which the healthcheck was evaluated, in ISO
                      8601 with millisecond precision and a `Z` (UTC) suffix.
                    example: '2026-04-21T16:42:50.445Z'
              examples:
                Healthy:
                  summary: Service is up
                  value:
                    status: ok
                    timestamp: '2026-04-21T16:42:50.445Z'
        '503':
          description: >-
            Service is unhealthy because one of the configured health-check
            plugins is failing.
        5XX:
          description: >-
            Verification service is degraded or unreachable. Treat any non-2xx
            response as unhealthy and retry with exponential backoff.
      security: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: curl -i https://verification.didit.me/system/healthcheck
        - lang: Python
          label: Python (requests)
          source: >-
            import requests


            resp =
            requests.get("https://verification.didit.me/system/healthcheck",
            timeout=5)

            resp.raise_for_status()

            print(resp.json())
        - lang: JavaScript
          label: Node.js (fetch)
          source: >-
            const res = await
            fetch("https://verification.didit.me/system/healthcheck");

            if (!res.ok) throw new Error(`Didit unhealthy: ${res.status}`);

            console.log(await res.json());

````