Opkit Patients API
Manage patient records that are the subject of eligibility inquiries.
Manage patient records that are the subject of eligibility inquiries.
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`.'