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

# Whether every deployed service can reach its dependencies

> One entry per downstream service, naming every dependency it resolved and whether exercising it worked, plus an `api` block for the API's own identity provider and mail relay. A readiness probe answers whether a process started; this answers whether the models, storage and queues it was configured with actually respond, which is what an operator needs after an install. A service being down never fails this call; it is reported with `status: unreachable` instead. Requires authentication; restricted to admins and organizations with an enterprise subscription, the same rule as `GET /build-info`.



## OpenAPI

````yaml https://api.galtea.ai/openapi.json get /self-check
openapi: 3.0.0
info:
  version: 1.0.0
  title: Product Management Service API
  description: API documentation for Product Management Service
  contact:
    name: Galtea AI
servers:
  - url: https://api.galtea.ai
security:
  - bearerAuth: []
tags: []
externalDocs:
  description: Galtea Platform Documentation
  url: https://docs.galtea.ai
paths:
  /self-check:
    get:
      tags: []
      summary: Whether every deployed service can reach its dependencies
      description: >-
        One entry per downstream service, naming every dependency it resolved
        and whether exercising it worked, plus an `api` block for the API's own
        identity provider and mail relay. A readiness probe answers whether a
        process started; this answers whether the models, storage and queues it
        was configured with actually respond, which is what an operator needs
        after an install. A service being down never fails this call; it is
        reported with `status: unreachable` instead. Requires authentication;
        restricted to admins and organizations with an enterprise subscription,
        the same rule as `GET /build-info`.
      operationId: selfCheck
      responses:
        '200':
          description: >-
            Dependency report for the API's own dependencies and every
            downstream service
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServicesSelfCheck'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearerAuth: []
components:
  schemas:
    ServicesSelfCheck:
      type: object
      properties:
        api:
          $ref: '#/components/schemas/ApiSelfCheck'
        services:
          type: array
          items:
            $ref: '#/components/schemas/ServiceSelfCheck'
      required:
        - api
        - services
    Error:
      type: object
      properties:
        error:
          type: string
          example: Error type
        message:
          type: string
          example: Error message description
    ApiSelfCheck:
      type: object
      properties:
        status:
          type: string
          enum:
            - ok
            - failed
            - degraded
          description: >-
            The worst of the API's own dependencies, weighted by severity: `ok`,
            `failed` when a critical one is broken, `degraded` when only a
            non-critical one is.
          example: degraded
        dependencies:
          type: array
          items:
            $ref: '#/components/schemas/SelfCheckDependency'
          description: >-
            The dependencies that belong to the API alone, which no per-service
            entry covers: the identity provider and the mail relay. A dependency
            this deployment does not use is left out rather than listed as
            absent. A mail relay counts as used once `SMTP_HOST` is set, so a
            partly configured one is reported as failing.
      required:
        - status
        - dependencies
    ServiceSelfCheck:
      type: object
      properties:
        name:
          type: string
          description: Downstream service identifier.
          example: report-generator
        status:
          type: string
          enum:
            - ok
            - unreachable
            - not_implemented
            - not_configured
          description: >-
            Whether the service answered, not whether its dependencies are
            healthy. `ok`: it answered, and `result` carries its verdict.
            `unreachable`: it did not respond in time, the request failed, or
            the body did not match the self-check shape. `not_implemented`: it
            answered 404, so it has not shipped its `/self-check` route yet.
            `not_configured`: this deployment has no URL set for it.
          example: ok
        result:
          type: string
          enum:
            - ok
            - failed
            - degraded
          description: >-
            The service's own verdict over its dependencies, present only when
            `status` is `ok`. `ok`, `failed` when a critical dependency is
            broken, `degraded` when only a non-critical one is.
          example: failed
        dependencies:
          type: array
          items:
            $ref: '#/components/schemas/SelfCheckDependency'
          description: >-
            One entry per dependency the service resolved. Present only when
            `status` is `ok`.
      required:
        - name
        - status
    SelfCheckDependency:
      type: object
      properties:
        kind:
          type: string
          enum:
            - model
            - embedding
            - storage
            - queue
            - identity
            - mail
          description: What sort of dependency this is.
          example: model
        name:
          type: string
          description: The setting this dependency comes from.
          example: LLM_MODEL
        resolved:
          type: string
          description: >-
            What the service resolved the setting to, as sent upstream. This is
            the value to change when the row fails. Returned to admins only,
            because it names infrastructure: a model id, a bucket, a realm URL,
            a mail relay. Absent for every other caller, who still reads `name`,
            `status`, `severity` and `failure`.
          example: litellm_proxy/gpt-4.1
        source:
          type: string
          enum:
            - env
            - default
            - fallback
          description: >-
            Where the value came from. `env`: the setting was set. `default`: it
            was unset and the service used its code default. `fallback`: it was
            unset and the service took the value of another setting. Absent when
            the dependency is not read from one setting.
          example: default
        status:
          type: string
          enum:
            - ok
            - failed
            - timedOut
            - degraded
          description: >-
            `ok`: the dependency answered. `failed`: it did not. `timedOut`: it
            did not answer inside its deadline, which for a queue means no
            worker picked up a trivial task.
          example: ok
        severity:
          type: string
          enum:
            - critical
            - degraded
          description: >-
            `critical`: the feature this dependency serves is dead without it.
            `degraded`: the platform works with something missing.
          example: critical
        detail:
          type: string
          description: >-
            Why it failed, as the producing service reported it. Absent when it
            worked. Returned to admins only, for the same reason as `resolved`:
            error text often names hosts, buckets and model ids.
        failure:
          type: string
          enum:
            - unavailable
            - incapable
          description: >-
            Which kind of failure it was, where the producing service could
            tell. `unavailable`: the dependency is not there, so the deployment
            has to be given it. `incapable`: it is there and cannot do what the
            service needs, so a different one has to be chosen. Absent means the
            service could not classify the failure, never that it was neither.
          example: unavailable
        durationMs:
          type: number
          description: How long exercising this dependency took.
          example: 412
      required:
        - kind
        - name
        - status
        - severity
        - durationMs
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key authorization. Pass your API key in the Authorization header as
        a Bearer token. Both new (`gsk_*`) and legacy (`gsk-`) API keys are
        accepted, e.g. `Authorization: Bearer gsk_...` or `Authorization: Bearer
        gsk-...`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.