PlanSource EOI API

Evidence of Insurability Processing.

Operations 6

GET /eoi/subscriber/{subscriber_id}
GET /eoi/subscribers
PUT /eoi/decision/{subscriber_id}
PUT /eoi/decisions
PUT /eoi/form_completion/{subscriber_id}
PUT /eoi/form_completions

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/plansource-eoi-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

plansource-eoi-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Plansource Admin EOI API
  description: An integration API for Plansource data for administration functions
  contact:
    name: Plansource API team
    email: api-team@plansource.com
  license:
    name: B) 2017 Plansource.  All rights reserved.
  version: 2.0.0
servers:
- url: https://api.plansource.com/admin/v2
security:
- clientSecretJwt:
  - admin_api_v2
- authString: []
  signature: []
tags:
- name: EOI
  description: Evidence of Insurability Processing.
paths:
  /eoi/subscriber/{subscriber_id}:
    get:
      tags:
      - EOI
      description: Retrieve pending EOI data for a single subscriber.
      parameters:
      - name: subscriber_id
        in: path
        description: The ID of the subscriber.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Coverage(s) pending EOI for a subscriber response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EoiSubscriberModel'
              examples:
                response:
                  value:
                    status: success
                    data:
                      id: 8859138
                      original_effective_date: 2018/01/04
                      change_effective_date: 2018/01/04
                      volume: '100000.0'
                      req_volume: '125000.0'
                      gi_volume: '0.0'
                      first_name: Eli
                      last_name: Test
                      middle_name: M
                      ssn: '232425200'
                      benefit_name: Voluntary Employee Life
                      benefit_lookup_code: subscriber_life
                      plan_name: Voluntary Employee Life
                      coverage_id: 23278082
                      req_plan_name: Voluntary Employee Life
                      eoi_volume: '25000.0'
                      eoi_form: Incomplete
                      links:
                        href: /admin/eoi/subscriber/8859138
                        rel: self
                      dependents:
                        id: 5
                        first_name: Amanda
                        last_name: Base
                        middle_name: J
                        ssn: '232425201'
        '400':
          description: Malformed request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 400
                      message: Not enough or too many segments
                    data: []
        '401':
          description: Invalid token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 401
                      message: Signature has expired
                      error_code: invalid_token
                    data: []
        '403':
          description: Access error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 403
                      message: Forbidden
                    data: []
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 404
                      message: Employee not found
                      error_code: 404
        '500':
          description: InternalServerError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoLinks500Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 500
                      message: Internal error
                    data: []
  /eoi/subscribers:
    get:
      tags:
      - EOI
      description: Retrieve pending EOI data for all subscribers.
      parameters:
      - name: include_test
        in: query
        description: Include test employees.
        required: false
        schema:
          type: string
          default: 'no'
          enum:
          - 'yes'
          - 'no'
      responses:
        '200':
          description: Coverage(s) pending EOI for all subscribers response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EoiSubscriberModel'
              examples:
                response:
                  value:
                    status: success
                    data:
                      id: 8859138
                      original_effective_date: 2018/01/04
                      change_effective_date: 2018/01/04
                      volume: '100000.0'
                      req_volume: '125000.0'
                      gi_volume: '0.0'
                      first_name: Eli
                      last_name: Test
                      middle_name: M
                      ssn: '232425200'
                      benefit_name: Voluntary Employee Life
                      benefit_lookup_code: subscriber_life
                      plan_name: Voluntary Employee Life
                      coverage_id: 23278082
                      req_plan_name: Voluntary Employee Life
                      eoi_volume: '25000.0'
                      eoi_form: Incomplete
                      links:
                        href: /admin/eoi/subscriber/8859138
                        rel: self
                      dependents:
                        id: 5
                        first_name: Amanda
                        last_name: Base
                        middle_name: J
                        ssn: '232425201'
        '400':
          description: Malformed request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 400
                      message: Not enough or too many segments
                    data: []
        '401':
          description: Invalid token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 401
                      message: Signature has expired
                      error_code: invalid_token
                    data: []
        '403':
          description: Access error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 403
                      message: Forbidden
                    data: []
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 404
                      message: Requested route 'eoi/subscriber' not found
                      error_code: route_not_found
        '500':
          description: InternalServerError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoLinks500Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 500
                      message: Internal error
                    data: []
  /eoi/decision/{subscriber_id}:
    put:
      tags:
      - EOI
      description: Process EOI decisions for a single subscriber.
      parameters:
      - name: subscriber_id
        in: path
        description: The ID of the subscriber.
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        $ref: '#/components/requestBodies/Decisions'
      responses:
        '200':
          description: Status response for processing a subscriber's pending EOI.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EoiDecisionResponseOK'
              examples:
                response:
                  value:
                    status: success
                    data:
                      valid_count: 0
                      failed_count: 1
                      failed_rows:
                        ssn: '123123123'
                        benefit_lookup_code: subscriber_life
                        action: approve_all
                        approved_volume: '125000.00'
                        effective_date: '2018-03-28T00:00:00.000Z'
                        original_effective_date: ''
                        errors: Benefit not found, Coverage not waiting for EOI decision
        '400':
          description: Malformed request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 400
                      message: There was a problem in the JSON you submitted
                    data: []
        '401':
          description: Invalid token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 401
                      message: Signature has expired
                      error_code: invalid_token
                    data: []
        '403':
          description: Access error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 403
                      message: Forbidden
                    data: []
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 404
                      message: Requested route 'eoi/subscriber' not found
                      error_code: route_not_found
        '422':
          description: Missing parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 422
                      message: Parameter 'decisions' is required
        '500':
          description: InternalServerError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoLinks500Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 500
                      message: Internal error
                    data: []
  /eoi/decisions:
    put:
      tags:
      - EOI
      description: Process EOI decisions for multiple subscribers.
      requestBody:
        $ref: '#/components/requestBodies/Decisions'
      responses:
        '200':
          description: Status response for processing multiple subscriber pending EOIs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EoiDecisionResponseOK'
              examples:
                response:
                  value:
                    status: success
                    data:
                      valid_count: 1
                      failed_count: 1
                      failed_rows:
                        ssn: '123123123'
                        benefit_lookup_code: subscriber_life
                        action: approve_all
                        approved_volume: '125000.00'
                        effective_date: '2018-03-28T00:00:00.000Z'
                        original_effective_date: ''
                        errors: Employee not found
        '400':
          description: Malformed request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 400
                      message: Not enough or too many segments
                    data: []
        '401':
          description: Invalid token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 401
                      message: Signature has expired
                      error_code: invalid_token
                    data: []
        '403':
          description: Access error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 403
                      message: Forbidden
                    data: []
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 404
                      message: Requested route 'eoi/decision' not found
                      error_code: route_not_found
        '422':
          description: Missing parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 422
                      message: Parameter 'decisions' is required
        '500':
          description: InternalServerError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoLinks500Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 500
                      message: Internal error
                    data: []
  /eoi/form_completion/{subscriber_id}:
    put:
      tags:
      - EOI
      description: Process EOI form completions for single subscriber.
      parameters:
      - name: subscriber_id
        in: path
        description: The ID of the subscriber.
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        $ref: '#/components/requestBodies/FormCompletions'
      responses:
        '200':
          description: Status response for processing a subscriber's form completion.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EoiFormResponseOK'
              examples:
                response:
                  value:
                    status: success
                    data:
                      valid_count: 0
                      failed_count: 1
                      failed_rows:
                        ssn: '123123123'
                        benefits: subscriber_life
                        completed: 'true'
                        expiration_date: ''
                        reference_number: ''
                        errors: Employee not found
        '400':
          description: Malformed request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 400
                      message: Not enough or too many segments
                    data: []
        '401':
          description: Invalid token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 401
                      message: Signature has expired
                      error_code: invalid_token
                    data: []
        '403':
          description: Access error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 403
                      message: Forbidden
                    data: []
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 404
                      message: Requested route 'eoi/form_completion' not found
                      error_code: route_not_found
        '422':
          description: Missing parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 422
                      message: Parameter 'form_completions' is required
        '500':
          description: InternalServerError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoLinks500Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 500
                      message: Internal error
                    data: []
  /eoi/form_completions:
    put:
      tags:
      - EOI
      description: Process EOI form completions for multiple subscribers.
      requestBody:
        $ref: '#/components/requestBodies/FormCompletions'
      responses:
        '200':
          description: Status response for processing multiple subscribers form completions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EoiFormResponseOK'
              examples:
                response:
                  value:
                    status: success
                    data:
                      valid_count: 1
                      failed_count: 1
                      failed_rows:
                        ssn: '123123123'
                        benefits: subscriber_life
                        completed: 'true'
                        expiration_date: ''
                        reference_number: ''
                        errors: Employee not found
        '400':
          description: Malformed request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 400
                      message: Not enough or too many segments
                    data: []
        '401':
          description: Invalid token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 401
                      message: Signature has expired
                      error_code: invalid_token
                    data: []
        '403':
          description: Access error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 403
                      message: Forbidden
                    data: []
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 404
                      message: Requested route 'eoi/form_completion' not found
                      error_code: route_not_found
        '422':
          description: Missing parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 422
                      message: Parameter 'form_completions' is required
        '500':
          description: InternalServerError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoLinks500Error'
              examples:
                response:
                  value:
                    status: failure
                    errors:
                      http_status: 500
                      message: Internal error
                    data: []
components:
  schemas:
    EoiFormResponseOK:
      type: object
      properties:
        status:
          type: string
        data:
          type: object
        valid_count:
          type: number
        failed_count:
          type: number
        failed_rows:
          type: array
          items: {}
        ssn:
          type: string
        benefits:
          type: string
        completed:
          type: string
        expiration_date:
          type: string
        reference_number:
          type: string
        errors:
          type: string
    EoiDecisionResponseOK:
      type: object
      properties:
        status:
          type: string
        data:
          type: object
        valid_count:
          type: number
        failed_count:
          type: number
        failed_rows:
          type: array
          items: {}
        ssn:
          type: string
        benefit_lookup_code:
          type: string
        action:
          type: string
        approved_volume:
          type: string
        effective_date:
          type: string
        original_effective_date:
          type: string
        errors:
          type: string
    400Error:
      title: Error
      type: object
      properties:
        status:
          type: string
        errors:
          type: array
          items: {}
        http_status:
          type: integer
        message:
          type: string
        details:
          type: string
        error_code:
          type: string
        data:
          type: array
          items: {}
    404Error:
      title: Error
      type: object
      properties:
        status:
          type: string
        errors:
          type: array
          items: {}
        http_status:
          type: integer
        message:
          type: string
        details:
          type: string
        error_code:
          type: string
    EoiSubscriberModel:
      type: object
      properties:
        status:
          type: string
        data:
          type: array
          items: {}
        id:
          type: integer
        original_effective_date:
          type: string
        change_effective_date:
          type: string
        volume:
          type: string
        req_volume:
          type: string
        gi_volume:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        middle_name:
          type: string
        ssn:
          type: string
        benefit_name:
          type: string
        benefit_lookup_code:
          type: string
        plan_name:
          type: string
        coverage_id:
          type: integer
        coverage_line_id:
          type: integer
        req_plan_name:
          type: string
        eoi_volume:
          type: string
        eoi_form:
          type: string
        links:
          type: array
          items: {}
        href:
          type: string
        rel:
          type: string
        dependents:
          type: array
          items: {}
    422Error:
      title: Error
      type: object
      properties:
        status:
          type: string
        errors:
          type: array
          items: {}
        http_status:
          type: integer
        message:
          type: string
        details:
          type: string
        error_code:
          type: string
    403Error:
      title: Error
      type: object
      properties:
        status:
          type: string
        errors:
          type: array
          items: {}
        http_status:
          type: integer
        message:
          type: string
        details:
          type: string
        error_code:
          type: string
        data:
          type: array
          items: {}
    401Error:
      title: Error
      type: object
      properties:
        status:
          type: string
        errors:
          type: array
          items: {}
        http_status:
          type: integer
        message:
          type: string
        details:
          type: string
        error_code:
          type: string
        data:
          type: array
          items: {}
    NoLinks500Error:
      title: Error
      required:
      - error_code
      - http_status
      - message
      type: object
      properties:
        status:
          type: string
        errors:
          type: array
          items: {}
        http_status:
          type: integer
        message:
          type: string
        details:
          type: string
        error_code:
          type: string
        data:
          type: array
          items: {}
  requestBodies:
    FormCompletions:
      description: Subscriber EOI form completions.
      content:
        application/json:
          schema:
            title: body
            type: object
            properties:
              decisions:
                required:
                - benefits
                - completed
                - ssn
                type: object
                properties:
                  ssn:
                    type: string
                  benefits:
                    type: string
                  completed:
                    type: string
                    description: Completed or not completed.
                    enum:
                    - 'true'
                    - 'false'
                  expiration_date:
                    type: string
                    description: YYYY-MM-DD date format.
                  reference_number:
                    type: string
      required: true
    Decisions:
      description: Subscriber EOI decision.
      content:
        application/json:
          schema:
            title: body
            type: object
            properties:
              decisions:
                required:
                - action
                - benefit_lookup_code
                - effective_date
                - ssn
                type: object
                properties:
                  ssn:
                    type: string
                  benefit_lookup_code:
                    type: string
                  action:
                    type: string
                    description: Action for processing pending EOI.
                    enum:
                    - approve_all
                    - approve_part
                    - pend_remaining
                    - deny_permanently
                    - expire_all
                    - deny_all
                  approved_volume:
                    type: string
                  effective_date:
                    type: string
                    description: YYYY-MM-DD date format.
                  original_effective_date:
                    type: string
                    description: YYYY-MM-DD date format.
      required: true
  securitySchemes:
    clientSecretJwt:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.plansource.com/oauth/v2/token
          scopes:
            admin_api_v2: Access to all endpoints
    authString:
      type: apiKey
      name: AuthenticationString
      in: header
    signature:
      type: apiKey
      name: Signature
      in: header
x-readme:
  explorer-enabled: true
  proxy-enabled: true