Opkit Patients API

Manage patient records that are the subject of eligibility inquiries.

OpenAPI Specification

opkit-patients-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Opkit Benefits Patients API
  description: 'REST API for Opkit, an automated health insurance verification platform for telehealth companies and virtual medical practices. The API exposes eligibility inquiries, benefits, payers, patients, and webhooks. Requests are authenticated with a Bearer API key and all payloads are JSON over HTTPS.


    Provenance note: Opkit''s platform appears to have been decommissioned after the company was acqui-hired by 11x in late 2024, and the live documentation at docs.opkit.co and the API host api.opkit.co are no longer reachable. This specification is reconstructed from Opkit''s publicly described resource model (eligibility inquiries, benefits, payers, patients, webhooks; Bearer-key auth; base URL https://api.opkit.co/v1). Endpoint paths and object fields that could not be verified against live documentation are modeled conservatively along standard RESTful conventions and should be reconciled against authoritative Opkit documentation if it becomes available. No values are presented as guaranteed-accurate beyond the verified auth scheme and base URL.'
  contact:
    name: Opkit
    url: https://www.opkit.co
  version: '1.0'
servers:
- url: https://api.opkit.co/v1
  description: Opkit API v1 production base URL (host no longer resolving as of catalog date).
security:
- bearerAuth: []
tags:
- name: Patients
  description: Manage patient records that are the subject of eligibility inquiries.
paths:
  /patients:
    get:
      operationId: listPatients
      tags:
      - Patients
      summary: List patients
      description: Returns a paginated list of patient records on the account.
      parameters:
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/StartingAfter'
      responses:
        '200':
          description: A list of patients.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PatientList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createPatient
      tags:
      - Patients
      summary: Create a patient
      description: Creates a patient record to use as the subject of eligibility inquiries.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatientCreateRequest'
      responses:
        '201':
          description: The created patient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Patient'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /patients/{id}:
    get:
      operationId: getPatient
      tags:
      - Patients
      summary: Retrieve a patient
      parameters:
      - $ref: '#/components/parameters/PathId'
      responses:
        '200':
          description: The requested patient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Patient'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updatePatient
      tags:
      - Patients
      summary: Update a patient
      parameters:
      - $ref: '#/components/parameters/PathId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatientUpdateRequest'
      responses:
        '200':
          description: The updated patient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Patient'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  parameters:
    Limit:
      name: limit
      in: query
      required: false
      description: Maximum number of records to return per page.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
    PathId:
      name: id
      in: path
      required: true
      description: The unique identifier of the resource.
      schema:
        type: string
    StartingAfter:
      name: starting_after
      in: query
      required: false
      description: Cursor for pagination; the id of the last object on the previous page.
      schema:
        type: string
  responses:
    Unauthorized:
      description: Authentication failed or the API key is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: The request was malformed or failed validation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    PatientUpdateRequest:
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        date_of_birth:
          type: string
          format: date
        metadata:
          type: object
          additionalProperties: true
    Patient:
      type: object
      properties:
        id:
          type: string
        object:
          type: string
          example: patient
        first_name:
          type: string
        last_name:
          type: string
        date_of_birth:
          type: string
          format: date
        created_at:
          type: string
          format: date-time
        metadata:
          type: object
          additionalProperties: true
    PatientList:
      type: object
      properties:
        object:
          type: string
          example: list
        data:
          type: array
          items:
            $ref: '#/components/schemas/Patient'
        has_more:
          type: boolean
    PatientCreateRequest:
      type: object
      required:
      - first_name
      - last_name
      - date_of_birth
      properties:
        first_name:
          type: string
        last_name:
          type: string
        date_of_birth:
          type: string
          format: date
        metadata:
          type: object
          additionalProperties: true
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              description: A machine-readable error type.
            message:
              type: string
              description: A human-readable description of the error.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Provide your Opkit API key as a Bearer token in the Authorization header: `Authorization: Bearer YOUR_API_KEY`.'