Netflix Eureka Applications API

Query registered applications

OpenAPI Specification

netflix-eureka-applications-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Netflix Eureka REST Applications API
  description: Eureka REST operations for service registration, discovery, and instance management. Eureka is a REST-based service for locating services for the purpose of load balancing and failover of middle-tier servers.
  version: 2.0.0
  contact:
    name: Netflix OSS
    url: https://github.com/Netflix/eureka
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: http://localhost:8761/eureka
  description: Local Eureka server
- url: https://{eureka_host}:{port}/eureka
  description: Custom Eureka server
  variables:
    eureka_host:
      default: localhost
    port:
      default: '8761'
tags:
- name: Applications
  description: Query registered applications
paths:
  /apps:
    get:
      operationId: getAllApplications
      summary: Get all registered applications
      description: Returns all registered application instances grouped by application name.
      tags:
      - Applications
      parameters:
      - name: regions
        in: query
        description: Comma-separated list of remote regions to include
        schema:
          type: string
      responses:
        '200':
          description: All registered applications
          content:
            application/json:
              schema:
                type: object
                properties:
                  applications:
                    $ref: '#/components/schemas/Applications'
            application/xml:
              schema:
                $ref: '#/components/schemas/Applications'
  /apps/{appId}:
    get:
      operationId: getApplication
      summary: Get application by name
      description: Returns all instances of a specific application.
      tags:
      - Applications
      parameters:
      - name: appId
        in: path
        required: true
        schema:
          type: string
        description: Application name
      responses:
        '200':
          description: Application instances
          content:
            application/json:
              schema:
                type: object
                properties:
                  application:
                    $ref: '#/components/schemas/Application'
            application/xml:
              schema:
                $ref: '#/components/schemas/Application'
        '404':
          description: Application not found
  /apps/delta:
    get:
      operationId: getDelta
      summary: Get recent changes (delta)
      description: Returns recently changed instances. Used by clients to incrementally update their local cache rather than fetching the full registry.
      tags:
      - Applications
      responses:
        '200':
          description: Delta changes
          content:
            application/json:
              schema:
                type: object
                properties:
                  applications:
                    $ref: '#/components/schemas/Applications'
            application/xml:
              schema:
                $ref: '#/components/schemas/Applications'
components:
  schemas:
    InstanceInfo:
      type: object
      required:
      - hostName
      - app
      - vipAddress
      - dataCenterInfo
      properties:
        instanceId:
          type: string
          description: Unique instance ID
        hostName:
          type: string
          description: Hostname of the instance
        app:
          type: string
          description: Application name
        ipAddr:
          type: string
          description: IP address
        status:
          type: string
          enum:
          - UP
          - DOWN
          - STARTING
          - OUT_OF_SERVICE
          - UNKNOWN
          description: Current instance status
        overriddenStatus:
          type: string
          enum:
          - UP
          - DOWN
          - STARTING
          - OUT_OF_SERVICE
          - UNKNOWN
        port:
          type: object
          properties:
            $:
              type: integer
              description: Port number
            '@enabled':
              type: string
              description: Whether port is enabled
        securePort:
          type: object
          properties:
            $:
              type: integer
            '@enabled':
              type: string
        countryId:
          type: integer
        dataCenterInfo:
          type: object
          required:
          - '@class'
          - name
          properties:
            '@class':
              type: string
              description: Datacenter info class
            name:
              type: string
              enum:
              - Netflix
              - Amazon
              - MyOwn
            metadata:
              type: object
              properties:
                ami-launch-index:
                  type: string
                local-hostname:
                  type: string
                availability-zone:
                  type: string
                instance-id:
                  type: string
                public-ipv4:
                  type: string
                public-hostname:
                  type: string
                ami-manifest-path:
                  type: string
                local-ipv4:
                  type: string
                hostname:
                  type: string
                ami-id:
                  type: string
                instance-type:
                  type: string
        leaseInfo:
          type: object
          properties:
            renewalIntervalInSecs:
              type: integer
              description: Client heartbeat interval (default 30)
            durationInSecs:
              type: integer
              description: Duration until expiry without heartbeat (default 90)
            registrationTimestamp:
              type: integer
              format: int64
            lastRenewalTimestamp:
              type: integer
              format: int64
            evictionTimestamp:
              type: integer
              format: int64
            serviceUpTimestamp:
              type: integer
              format: int64
        metadata:
          type: object
          additionalProperties:
            type: string
          description: Application-specific metadata
        homePageUrl:
          type: string
          format: uri
        statusPageUrl:
          type: string
          format: uri
        healthCheckUrl:
          type: string
          format: uri
        secureHealthCheckUrl:
          type: string
          format: uri
        vipAddress:
          type: string
          description: Virtual host name (VIP address)
        secureVipAddress:
          type: string
          description: Secure VIP address
        isCoordinatingDiscoveryServer:
          type: string
          description: Whether this is a coordinating discovery server
        lastUpdatedTimestamp:
          type: string
        lastDirtyTimestamp:
          type: string
        actionType:
          type: string
          enum:
          - ADDED
          - MODIFIED
          - DELETED
    Applications:
      type: object
      properties:
        versions__delta:
          type: string
          description: Version delta hash
        apps__hashcode:
          type: string
          description: Hash code for all registered apps
        application:
          type: array
          items:
            $ref: '#/components/schemas/Application'
    Application:
      type: object
      properties:
        name:
          type: string
          description: Application name
        instance:
          type: array
          items:
            $ref: '#/components/schemas/InstanceInfo'