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`.'