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

# Service health

> Whether the service process is alive. It says nothing about whether a feed can be quoted: read `GET /v1/readiness` for that.



## OpenAPI

````yaml /openapi/prices.json get /v1/health
openapi: 3.1.0
info:
  title: Rekt price service
  version: '1'
  summary: Signed price quotes for the instructions that read a price.
  description: >-
    Quotes come from `https://prices.rekt.trading`. There is no other address.
    Use TLS everywhere.


    Only the instructions that read a price need a quote: `settle`,
    `stamp_book`, `set_take_profit` and `prove_price`. The Knockout program
    verifies the signatures on chain. Nothing that the service returns outside
    the signed bytes is authoritative.


    Rules:


    - Call the service from a server, not from a browser. It sends no CORS
    headers.

    - Public use needs no sign-up. If you have a token, send it as
    `Authorization: Bearer <token>`. Keep a token out of URLs.

    - Public use is rate-limited for each client address. A limited request gets
    `429` with `retry_after_ms` and a `Retry-After` header. A limit says nothing
    about whether a feed is healthy.

    - Back off with jitter on `429` and `503`, and obey `retry_after_ms`.

    - For the latest price, use the stream
    (`wss://prices.rekt.trading/v1/stream`), not polling. Keep one stream
    connection per process.

    - A response can hold fields that this description does not list. Ignore a
    field that you do not know.


    For higher limits, write to support@asymmetra.xyz.
servers:
  - url: https://prices.rekt.trading
    description: The price service.
security:
  - {}
  - bearerAuth: []
tags:
  - name: Quotes
    description: Signed quotes.
  - name: Feeds
    description: Feeds, signer keys and readiness.
  - name: Health
    description: Process health.
paths:
  /v1/health:
    get:
      tags:
        - Health
      summary: Service health
      description: >-
        Whether the service process is alive. It says nothing about whether a
        feed can be quoted: read `GET /v1/readiness` for that.
      operationId: getHealth
      responses:
        '200':
          description: The process is alive.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HealthResponse'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/Unavailable'
components:
  schemas:
    HealthResponse:
      type: object
      description: Whether the service process is alive.
      properties:
        status:
          type: string
          description: '`ok` when the process is alive.'
          examples:
            - ok
        instance_id:
          type: string
          description: The service instance that answered.
        boot_id:
          type: string
          description: >-
            The start of the service process that answered. It changes when the
            process starts again.
      required:
        - status
    Refusal:
      type: object
      description: A refused request. A failure is never a price.
      properties:
        status:
          type: string
          description: >-
            The refusal class, as a short code, for example `not_ready` or
            `invalid_request`.
        reason:
          type: string
          description: >-
            Why the service refused, as a short code in snake_case, for example
            `session_closed`. The list of codes can grow. Route an unknown code
            by its HTTP status.
        error:
          type: string
          description: >-
            The error code of an invalid request, for example
            `idempotency_key_reuse`.
        detail:
          type: string
          description: The refusal, in words.
        retry_after_ms:
          type: integer
          description: >-
            Wait this long before you retry. Only a retryable refusal carries
            it. Unit: milliseconds.
        retryable:
          type: boolean
          description: False when a retry cannot succeed.
  responses:
    TooManyRequests:
      description: >-
        The rate limit for your client address applies. Clients behind one
        address share a limit. Retry after `retry_after_ms`, with backoff and
        jitter.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Refusal'
      headers:
        Retry-After:
          description: 'Wait this long before you retry. Unit: seconds.'
          schema:
            type: integer
    Unavailable:
      description: The service cannot answer now. Retry later, with backoff and jitter.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Refusal'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Optional. A token for callers that have one. Public use needs no token.

````

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