Creed reminders API

The reminders API from Creed — 3 operation(s) for reminders.

OpenAPI Specification

creed-reminders-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Creed achievements reminders API
  description: Creed API - Christian AI Chatbot
  version: 1.0.0
tags:
- name: reminders
paths:
  /api/reminders:
    post:
      tags:
      - reminders
      summary: Create Reminder
      description: 'Create a new reminder.


        Subtypes:

        - prayer: Daily prayer reminder (uses fixed templates)

        - church: Church reminder (uses fixed templates)

        - devotional: Daily devotional reminder (uses fixed templates)

        - custom: Custom reminder (requires custom_text)


        Schedule types:

        - daily: Runs every day at schedule_time

        - weekly: Runs every week on schedule_day at schedule_time'
      operationId: create_reminder_api_reminders_post
      security:
      - HTTPBearer: []
      parameters:
      - name: x-user-id
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-User-Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateReminderRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    get:
      tags:
      - reminders
      summary: List Reminders
      description: List all reminders for the current user.
      operationId: list_reminders_api_reminders_get
      security:
      - HTTPBearer: []
      parameters:
      - name: x-user-id
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-User-Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/reminders/snooze:
    post:
      tags:
      - reminders
      summary: Snooze Reminder
      description: 'Snooze a reminder: schedule a follow-up reminder Live Activity in `minutes`.


        Public/unauthenticated: the native "remind me later" App Intent has no user

        session, so it posts the user_id + task_id embedded in the Live Activity and

        we trust them. The action is benign (re-sends a reminder the user already has)

        and task_id is an unguessable UUID.'
      operationId: snooze_reminder_api_reminders_snooze_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SnoozeReminderRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/reminders/{reminder_id}:
    get:
      tags:
      - reminders
      summary: Get Reminder
      description: Get a single reminder by ID.
      operationId: get_reminder_api_reminders__reminder_id__get
      security:
      - HTTPBearer: []
      parameters:
      - name: reminder_id
        in: path
        required: true
        schema:
          type: string
          title: Reminder Id
      - name: x-user-id
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-User-Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - reminders
      summary: Update Reminder
      description: Update an existing reminder.
      operationId: update_reminder_api_reminders__reminder_id__put
      security:
      - HTTPBearer: []
      parameters:
      - name: reminder_id
        in: path
        required: true
        schema:
          type: string
          title: Reminder Id
      - name: x-user-id
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-User-Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateReminderRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - reminders
      summary: Delete Reminder
      description: Delete a reminder.
      operationId: delete_reminder_api_reminders__reminder_id__delete
      security:
      - HTTPBearer: []
      parameters:
      - name: reminder_id
        in: path
        required: true
        schema:
          type: string
          title: Reminder Id
      - name: x-user-id
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-User-Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    CreateReminderRequest:
      properties:
        subtype:
          type: string
          title: Subtype
          description: 'Reminder subtype: prayer, church, devotional, or custom'
        schedule_type:
          type: string
          title: Schedule Type
          description: 'Schedule type: daily or weekly'
        schedule_time:
          type: string
          title: Schedule Time
          description: Time of day in HH:MM format (e.g., '09:00')
        schedule_day:
          anyOf:
          - type: integer
          - type: 'null'
          title: Schedule Day
          description: Day of week for weekly (0=Sunday, 6=Saturday)
        custom_text:
          anyOf:
          - type: string
          - type: 'null'
          title: Custom Text
          description: Custom reminder text (required for custom subtype)
      type: object
      required:
      - subtype
      - schedule_type
      - schedule_time
      title: CreateReminderRequest
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    SnoozeReminderRequest:
      properties:
        user_id:
          type: string
          title: User Id
          description: User who owns the reminder (from the Live Activity)
        task_id:
          type: string
          title: Task Id
          description: cron_tasks id of the reminder to snooze (from the Live Activity)
        minutes:
          type: integer
          maximum: 1440.0
          minimum: 1.0
          title: Minutes
          description: Minutes to wait before re-sending the reminder
      type: object
      required:
      - user_id
      - task_id
      - minutes
      title: SnoozeReminderRequest
    UpdateReminderRequest:
      properties:
        subtype:
          anyOf:
          - type: string
          - type: 'null'
          title: Subtype
          description: 'Reminder subtype: prayer, church, devotional, or custom'
        schedule_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Schedule Type
          description: 'Schedule type: daily or weekly'
        schedule_time:
          anyOf:
          - type: string
          - type: 'null'
          title: Schedule Time
          description: Time of day in HH:MM format (e.g., '09:00')
        schedule_day:
          anyOf:
          - type: integer
          - type: 'null'
          title: Schedule Day
          description: Day of week for weekly (0=Sunday, 6=Saturday)
        custom_text:
          anyOf:
          - type: string
          - type: 'null'
          title: Custom Text
          description: Custom reminder text (for custom subtype)
        is_active:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Active
          description: Whether the reminder is active
      type: object
      title: UpdateReminderRequest
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Supabase JWT token