Obol System API

System related endpoints.

OpenAPI Specification

obol-system-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Obol Address System API
  description: "## What is this API?\n\nThis API is for creating and managing [Distributed Validators](https://docs.obol.tech/docs/int/key-concepts#distributed-validator). This API works in tandem with Obol's [Distributed Validator Launchpad](https://hoodi.launchpad.obol.org), a dapp designed to allow people to authenticate their counterparties and agree to the terms of a Distributed Validator Cluster. This API will be made more easy for code-only interaction in the coming quarters with the release of the Obol-SDK. \n\nRead more about Obol and how to use the [launchpad](https://hoodi.launchpad.obol.org) on our [docs site](https://docs.obol.tech/). \n\nFor enquiries:"
  version: v1.0.0-local
  contact:
    name: Obol Labs
    url: https://obol.tech
    email: support@obol.tech
servers:
- url: https://api.obol.tech
  description: Production environment
- url: http://localhost:3000
  description: Local development server
- url: https://localhost:3000
  description: HTTPS Local development server
tags:
- name: System
  description: System related endpoints.
paths:
  /:
    get:
      description: Hitting the root of the domain redirects to /docs and a swagger deployment.
      operationId: AppController_redirect
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
      summary: Redirect to the API docs
      tags:
      - System
  /v1/_health:
    get:
      description: This endpoint reports the API and its dependencies health.
      operationId: HealthController_check_v1
      parameters: []
      responses:
        '200':
          description: The Health Check is successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ok
                  info:
                    type: object
                    example:
                      database:
                        status: up
                    additionalProperties:
                      type: object
                      required:
                      - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
                    nullable: true
                  error:
                    type: object
                    example: {}
                    additionalProperties:
                      type: object
                      required:
                      - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
                    nullable: true
                  details:
                    type: object
                    example:
                      database:
                        status: up
                    additionalProperties:
                      type: object
                      required:
                      - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
        '503':
          description: The Health Check is not successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: error
                  info:
                    type: object
                    example:
                      database:
                        status: up
                    additionalProperties:
                      type: object
                      required:
                      - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
                    nullable: true
                  error:
                    type: object
                    example:
                      redis:
                        status: down
                        message: Could not connect
                    additionalProperties:
                      type: object
                      required:
                      - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
                    nullable: true
                  details:
                    type: object
                    example:
                      database:
                        status: up
                      redis:
                        status: down
                        message: Could not connect
                    additionalProperties:
                      type: object
                      required:
                      - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
      summary: Check the API health
      tags:
      - System
  /eth-apr:
    get:
      description: Proxies Beaconcha.in ethstore/latest to avoid CORS. Returns mainnet network APR.
      operationId: EthAprController_getEthApr[0]
      parameters: []
      responses:
        '200':
          description: ETH APR data from Beaconcha.in
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EthAprResponse'
      summary: Get network ETH APR
      tags:
      - System
  /v1/eth-apr:
    get:
      description: Proxies Beaconcha.in ethstore/latest to avoid CORS. Returns mainnet network APR.
      operationId: EthAprController_getEthApr[1]_v1
      parameters: []
      responses:
        '200':
          description: ETH APR data from Beaconcha.in
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EthAprResponse'
      summary: Get network ETH APR
      tags:
      - System
components:
  schemas:
    EthAprResponse:
      type: object
      properties:
        apr:
          type: number
          description: Network-wide ETH staking APR as a decimal (e.g. 0.029 = 2.9%). Sourced from Beaconcha.in ethstore/latest.
          example: 0.029
      required:
      - apr
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http