Skip to content
GET/health

Report whether this deployment can answer requests.

Needs no credentials, and has no rate limit at all (unlike every other route here). On a public server, a caller sending none gets only HealthStatusOnly (cached for a short time, so a flood of unsigned checks is never engine traffic); a signed-in caller, and any caller on a private server, gets the full HealthReport. status: 'ready' (every engine ready, and they agree on what they serve), 'degraded' (some engine down or broken, but the ready ones agree and keep answering), or 'broken' (no engine ready, or the ready ones disagree on what they serve: then only requests for adapters every engine serves are answered).

Responses

200The deployment's health.
Response schema
{
  "description": "Told apart by which shape matches. No discriminator property is added: the wire has none.",
  "oneOf": [
    {
      "title": "HealthStatusOnly",
      "description": "What a public server (JEFF_PUBLIC=1) answers a caller sending no credentials at all.",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "status"
      ],
      "properties": {
        "status": {
          "enum": [
            "ready",
            "degraded",
            "broken"
          ]
        }
      }
    },
    {
      "title": "HealthReport",
      "description": "What a signed-in caller gets, and what any caller gets on a private server.",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "status",
        "engines",
        "model",
        "checkpoint",
        "max_options",
        "authentication",
        "modalities"
      ],
      "properties": {
        "status": {
          "enum": [
            "ready",
            "degraded",
            "broken"
          ]
        },
        "engines": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "socket",
              "status",
              "backend",
              "adapters_version",
              "adapters"
            ],
            "properties": {
              "socket": {
                "type": "string",
                "description": "The engine's socket path."
              },
              "status": {
                "enum": [
                  "ready",
                  "broken",
                  "down"
                ],
                "description": "down: the API could not reach this engine's process."
              },
              "backend": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "adapters_version": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "adapters": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string"
                }
              },
              "cause": {
                "type": "string",
                "description": "Present when status is 'broken' or 'down'."
              }
            }
          }
        },
        "model": {
          "type": "string",
          "description": "The server's JEFF_MODEL_NAME."
        },
        "checkpoint": {
          "type": [
            "string",
            "null"
          ]
        },
        "max_options": {
          "type": [
            "integer",
            "null"
          ]
        },
        "authentication": {
          "type": "boolean"
        },
        "modalities": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "enum": [
              "text",
              "image"
            ]
          }
        },
        "cause": {
          "type": "string",
          "description": "Present when status is 'broken': why no engine can answer."
        }
      }
    }
  ]
}
401HTTP 401; see contract/errors.yaml for which error type(s) answer with this status.
Response schema
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "message",
        "details"
      ],
      "properties": {
        "type": {
          "type": "string",
          "description": "The JeffError subclass name, e.g. NotLicensed."
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "description": "The error's own extra attributes, if it has any (for example NotInstalled's function_id); empty for most errors."
        }
      }
    }
  }
}
500HTTP 500; see contract/errors.yaml for which error type(s) answer with this status.
Response schema
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "message",
        "details"
      ],
      "properties": {
        "type": {
          "type": "string",
          "description": "The JeffError subclass name, e.g. NotLicensed."
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "description": "The error's own extra attributes, if it has any (for example NotInstalled's function_id); empty for most errors."
        }
      }
    }
  }
}

Example

bash
curl -s -X GET https://api.jeffhub.ai/health \
  -H "Authorization: Bearer $JEFF_API_KEY"