Download OpenAPI specification:Download
API for External Electronic Medical Record (EMR) systems to integrate with Spakinect telemedicine platform. Provides endpoints for managing appointments, retrieving treatments, and checking visit statuses.
Creates a new At-Home Visit (Good Faith Exam (GFE)) in the Spakinect system. The patient will be emailed and texted a link to complete their GFE prior to their appointment at the medspa. Optionally, EMR systems can submit intake answers when creating the appointment; these are pre-filled for the patient when they start the visit.
required | object (PatientDetails) |
| location_id required | string The ID of the location where the appointment will take place |
| appointment_time required | integer >= 1 Unix timestamp of the appointment date and time with the medspa. This is different from the appointment time with Spakinect (provider). To schedule an appointment with a Spakinect provider, the patient can use the Schedule link in the email sent from Spakinect. |
| requested_treatments required | Array of strings non-empty List of treatment names requested for this appointment |
Array of objects optional: true Submit intake question answers while creating the appointment for at-home visit patients so they can review and modify them if needed. Supported question codes:
|
{- "patient_details": {
- "first_name": "John",
- "last_name": "Doe",
- "email": "john.doe@example.com",
- "phone": "+1234567890"
}, - "location_id": "loc_12345",
- "appointment_time": 1640995200,
- "requested_treatments": [
- "Botox Injection",
- "Dermal Filler"
]
}{- "success": true,
- "gfe_id": "gfe_abc123xyz789"
}Retrieves the current status and details of a Good Faith Exam (GFE) visit by ID. Only returns visits that the authenticated EMR has access to based on location permissions. When the visit status is "Completed", the response includes decision outcomes mapped to treatment names: approved_treatments, conditionally_approved_treatments, and deferred_treatments.
| gfe_id required | string Example: gfe_abc123xyz789 The unique identifier of the GFE visit |
{- "success": true,
- "data": {
- "gfe_id": "gfe_abc123xyz789",
- "status": "Completed",
- "requested_treatments": [
- "Botox Injection"
], - "approved_treatments": [
- "Botox Injection"
], - "conditionally_approved_treatments": [
- "Dermal Filler"
], - "deferred_treatments": [
- "Chemical Peel"
], - "evaluation_completed": "2024-05-02T07:00:00-07:00",
- "patient_details": {
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "dob": "05-15-1985",
- "email": "jane.smith@example.com"
}
}
}Cancels an At-Home Visit Good Faith Exam by ID. Only visits with status "Processing", "Scheduled", or "Not Completed" can be cancelled. The visit status will be updated to "Cancelled by client". Only appointments that the authenticated EMR has access to based on location permissions can be cancelled.
| gfe_id required | string Example: gfe_abc123xyz789 The unique identifier of the GFE appointment to cancel |
{- "gfe_id": "gfe_abc123xyz789",
- "status": "Cancelled by client"
}Retrieves all Good Faith Exam (GFE) visits for a specific location. Only returns visits that the authenticated EMR has access to based on location permissions. When visit status is "Completed", each visit includes decision outcomes mapped to treatment names: approved_treatments, conditionally_approved_treatments, and deferred_treatments.
| location_id required | string Example: loc_12345 The unique identifier of the location |
{- "success": true,
- "location_id": "loc_12345",
- "count": 2,
- "gfes": [
- {
- "gfe_id": "gfe_abc123xyz789",
- "status": "Completed",
- "requested_treatments": [
- "Botox Injection",
- "Dermal Filler"
], - "approved_treatments": [
- "Botox Injection"
], - "conditionally_approved_treatments": [
- "Dermal Filler"
], - "deferred_treatments": [ ],
- "evaluation_completed": "2024-05-02T07:00:00-07:00",
- "patient_details": {
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "dob": "05-15-1985",
- "email": "jane.smith@example.com"
}
}, - {
- "gfe_id": "gfe_def456uvw012",
- "status": "Processing",
- "requested_treatments": [
- "Chemical Peel"
], - "patient_details": {
- "name": "John Doe",
- "first_name": "John",
- "last_name": "Doe",
- "dob": "10-27-1990",
- "email": "john.doe@example.com"
}
}
]
}Retrieves treatments. Returns all available treatments by default, or favorite treatments when type=favorites and location_id are provided.
URLs:
GET /treatmentsGET /treatments?type=favorites&location_id=<location_id>| type | string Value: "favorites" When set to 'favorites', returns the client's favorite treatments for the given location. Requires location_id. |
| location_id | string Example: location_id=loc_12345 Required when type=favorites. The unique identifier of the location. Used to resolve the client and fetch their favorite treatments. |
{- "data": [
- {
- "id": "treatment_001",
- "name": "Botox Injection"
}, - {
- "id": "treatment_002",
- "name": "Dermal Filler"
}, - {
- "id": "treatment_003",
- "name": "Chemical Peel"
}
]
}Retrieves the current status and details of a Good Faith Exam (GFE) visit by ID. Only returns visits that the authenticated EMR has access to based on location permissions. When the visit status is "Completed", the response includes decision outcomes mapped to treatment names: approved_treatments, conditionally_approved_treatments, and deferred_treatments.
| gfe_id required | string Example: gfe_abc123xyz789 The unique identifier of the GFE visit |
{- "success": true,
- "data": {
- "gfe_id": "gfe_abc123xyz789",
- "status": "Completed",
- "requested_treatments": [
- "Botox Injection"
], - "approved_treatments": [
- "Botox Injection"
], - "conditionally_approved_treatments": [
- "Dermal Filler"
], - "deferred_treatments": [
- "Chemical Peel"
], - "evaluation_completed": "2024-05-02T07:00:00-07:00",
- "patient_details": {
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "dob": "05-15-1985",
- "email": "jane.smith@example.com"
}
}
}Creates a new in-person visit for a patient. If a matching patient is found by name and date of birth, their record is used; otherwise, a new patient record is created. Optionally, EMR systems can submit intake answers when creating the visit; these are pre-filled for the patient when they open the intake form.
required | object |
| location_id required | string The ID of the location where the visit will take place. |
| requested_treatments required | Array of strings non-empty A non-empty list of treatment names requested for the visit. |
Array of objects optional: true Submit intake question answers while creating the visit so the patient sees them pre-filled when they open the intake form. Supported question codes:
|
{- "patient_details": {
- "first_name": "John",
- "last_name": "Doe",
- "dob": "10/27/1990"
}, - "location_id": "loc_12345",
- "requested_treatments": [
- "Botox Injection",
- "Dermal Filler"
]
}{- "success": true,
- "visit_id": "gfe_abc123xyz789",
}Subscribes the authenticated EMR to a location. This adds the location to the EMR's subscribed locations list. This endpoint is required to receive webhook events for the location.
| location_id required | string The ID of the location to subscribe to |
{- "location_id": "loc_12345"
}{- "success": true,
- "message": "Successfully subscribed to location"
}Registers or updates the webhook URL for the authenticated EMR.
Note: To receive webhook events, a location must be subscribed to the EMR
using the Location subscription endpoint (POST /subscriptions).
When a GFE is completed, Spakinect will send a POST request to the registered
URL with the payload described in VisitCompletedWebhook.
visit.completedContent-Type: application/json, User-Agent: Spakinect-Webhook/1.0,
and if configured X-Webhook-Secret: <secret>.#/components/schemas/VisitCompletedWebhook| url required | string <uri> The webhook URL where events will be posted |
{
}{- "success": true,
- "message": "Webhook URL updated successfully"
}