openapi: 3.2.0 info: version: 2.0.0 title: Rest-Service Reminders API x-logo: url: https://lumahealth-assets.s3.us-west-2.amazonaws.com/new_luma_logo_black.png backgroundColor: '#FFFFFF' altText: Luma Health description: OpenAPI [Basic Structure](https://swagger.io/docs/specification/basic-structure/) servers: - url: https://api.lumahealth.io/api/v2 security: - Bearer: [] tags: - name: reminders description: Luma Reminders paths: /reminders: get: summary: List reminders operationId: remindersList tags: - reminders parameters: - name: provider in: query schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 - name: appointment in: query schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 - name: referral in: query schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 - name: recall in: query schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 - name: telehealth in: query schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 - name: followup in: query schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 - name: followupOperation in: query schema: type: string enum: - created - deleted - updated - name: facility in: query schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 - name: patient in: query schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 - name: patientForm in: query schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 - name: message in: query schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 - name: type in: query schema: type: string enum: - appointment - feedback - referral - outbound-referral - followup - patient-form - recall - telehealth - waiting-room - name: sendAt in: query schema: type: string format: date-time - name: sentAt in: query schema: type: string format: date-time - name: messageTemplate in: query schema: type: string - name: status in: query schema: type: string enum: - scheduled - pending - queued - sent - confirmed - emailOpened - skipped - delivered - blocked - name: statusReason in: query schema: type: string - name: replied in: query schema: type: integer format: int32 - name: repliedMessage in: query schema: type: string - name: originalRepliedMessage in: query schema: type: string - name: repliedTime in: query schema: type: string format: date-time - name: forcedTime in: query schema: type: boolean - $ref: '#/components/parameters/createdByParam' - $ref: '#/components/parameters/updatedByParam' - $ref: '#/components/parameters/createdAtParam' - $ref: '#/components/parameters/updatedAtParam' - $ref: '#/components/parameters/pageParam' - $ref: '#/components/parameters/limitParam' - $ref: '#/components/parameters/populateParam' - $ref: '#/components/parameters/selectParam' responses: '200': description: List of reminders content: application/json: schema: type: object required: - response - page - size properties: response: type: array minItems: 0 items: $ref: '#/components/schemas/Reminder' page: type: integer format: int32 minimum: 1 size: type: integer format: int32 minimum: 0 additionalProperties: false '401': description: Not authenticated '403': description: Access token does not have the required scope post: summary: Create reminder operationId: reminderCreate tags: - reminders requestBody: description: Optional description in *Markdown* required: true content: application/json: schema: $ref: '#/components/schemas/Reminder' responses: '201': description: Successful creation content: application/json: schema: $ref: '#/components/schemas/Reminder' '401': description: Not authenticated '403': description: Access token does not have the required scope default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' /reminders/{reminderId}: get: summary: Get reminder by id operationId: reminderGet tags: - reminders parameters: - name: reminderId in: path required: true schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 responses: '200': description: Reminder content: application/json: schema: $ref: '#/components/schemas/Reminder' '401': description: Not authenticated '403': description: Access token does not have the required scope put: summary: Update a reminder operationId: reminderUpdate tags: - reminders parameters: - name: reminderId in: path required: true schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 requestBody: description: An reminder (full or partial) to be updated required: true content: application/json: schema: $ref: '#/components/schemas/Reminder' responses: '200': description: Reminder content: application/json: schema: $ref: '#/components/schemas/Reminder' '401': description: Not authenticated '403': description: Access token does not have the required scope delete: summary: Delete a reminder operationId: reminderDelete tags: - reminders parameters: - name: reminderId in: path required: true schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 responses: '200': description: Deleted reminder content: application/json: schema: $ref: '#/components/schemas/Reminder' '401': description: Not authenticated '403': description: Access token does not have the required scope components: schemas: createdAtParam: in: query name: createdAt type: string format: date-time schema: type: string format: date-time required: false description: The date/time when this object was created. updatedByParam: in: query name: updatedBy required: false type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 description: The ID of the user who updated this object. createdByParam: in: query name: createdBy type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 required: false description: The ID of the user who created this object. userParam: in: query name: user required: false type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 description: The ID of the root account user. deletedParam: in: query name: deleted required: false type: number enum: - 0 - 1 schema: type: number enum: - 0 - 1 description: Flag for logical deletion where 1 means deleted. Reminder: type: object description: Represents a scheduled outbound communication, such as an appointment reminder, recall, referral, or telehealth notice, sent to a patient through a channel like SMS or email. It tracks the reminder type, priority, and delivery status as it moves from scheduled to sent. properties: _id: $ref: '#/components/schemas/idParam' user: $ref: '#/components/schemas/userParam' deleted: $ref: '#/components/schemas/deletedParam' createdBy: $ref: '#/components/schemas/createdByParam' updatedBy: $ref: '#/components/schemas/updatedByParam' createdAt: $ref: '#/components/schemas/createdAtParam' updatedAt: $ref: '#/components/schemas/updatedAtParam' provider: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 appointment: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 referral: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 recall: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 telehealth: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 followup: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 followupOperation: type: string enum: - created - deleted - updated facility: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 patient: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 patientForm: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 message: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 type: type: string enum: - appointment - feedback - referral - outbound-referral - followup - patient-form - recall - telehealth - waiting-room externalId: type: object properties: source: type: string enum: - mandrill - twilio - nexmo - sendgrid - plivo - awsses value: type: string sendAt: type: string format: date-time sentAt: type: string format: date-time contact: type: array items: type: string messageTemplate: type: string status: type: string enum: - scheduled - pending - queued - sent - confirmed - emailOpened - skipped - delivered - blocked statusReason: type: string replied: type: integer format: int32 default: 0 repliedMessage: type: string originalRepliedMessage: type: string repliedTime: type: string format: date-time paritalStatus: type: array items: type: object properties: status: type: string enum: - scheduled - pending - queued - sent - confirmed - emailOpened - skipped - delivered - blocked statusReason: type: string channel: type: string enum: - sms - email - voice - inapp - chat - fax - whatsapp message: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 forcedTime: type: boolean Error: type: object required: - code - message properties: code: type: integer format: int32 message: type: string idParam: in: query name: _id type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 required: false schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 description: Luma's internal ID of an object. updatedAtParam: in: query name: updatedAt type: string format: date-time schema: type: string format: date-time required: false description: The date/time when this object was updated. parameters: populateParam: name: _populate in: query description: Response properties which will be replaced by the referenced objects, separated by commas. required: false type: string schema: type: string selectParam: name: _select in: query description: Response properties that should be returned, separated by commas. required: false type: string schema: type: string pageParam: in: query name: page required: false type: integer format: int32 default: 1 minimum: 1 schema: type: integer format: int32 default: 1 minimum: 1 updatedByParam: in: query name: updatedBy required: false type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 description: The ID of the user who updated this object. updatedAtParam: in: query name: updatedAt type: string format: date-time schema: type: string format: date-time required: false description: The date/time when this object was updated. createdByParam: in: query name: createdBy type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 required: false description: The ID of the user who created this object. createdAtParam: in: query name: createdAt type: string format: date-time schema: type: string format: date-time required: false description: The date/time when this object was created. limitParam: name: limit in: query description: How many items to fetch per page required: false type: integer format: int32 default: 500 minimum: 1 maximum: 1000 schema: type: integer format: int32 default: 500 minimum: 1 maximum: 1000 securitySchemes: Bearer: type: http scheme: bearer bearerFormat: JWT