Creed scheduled-notifications API

The scheduled-notifications API from Creed — 5 operation(s) for scheduled-notifications.

Operations 5

POST /api/scheduled-notifications/admin/schedule-daily Schedule Daily Notifications #
POST /api/scheduled-notifications/admin/send-due Send Due Notifications #
POST /api/scheduled-notifications/admin/generate-content Generate Content #
POST /api/scheduled-notifications/admin/test Test Notification #
POST /api/scheduled-notifications/admin/test-live-activity Test Live Activity #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/creed-scheduled-notifications-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

creed-scheduled-notifications-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Creed achievements Scheduled Notifications API
  description: Creed API - Christian AI Chatbot
  version: 1.0.0
servers:
- url: https://api.usecreed.com
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: scheduled-notifications
paths:
  /api/scheduled-notifications/admin/schedule-daily:
    post:
      tags:
      - scheduled-notifications
      summary: Schedule Daily Notifications
      description: 'Daily cron job endpoint to schedule notifications for all users.

        This should be called once per day (e.g., at midnight UTC).


        For each user with push tokens:

        - Randomly selects a time slot (morning/noon/night)

        - Schedules a notification with content appropriate for that time

        - Respects user''s timezone for scheduling


        Tasks are queued in Redis and processed by Celery workers.

        Use days_ahead to override the default 2-day lead time.


        Requires x-api-key header for authentication.'
      operationId: schedule_daily_notifications_api_scheduled_notifications_admin_schedule_daily_post
      parameters:
      - name: days_ahead
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          description: 'Days ahead to schedule for (default: 2)'
          title: Days Ahead
        description: 'Days ahead to schedule for (default: 2)'
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/scheduled-notifications/admin/send-due:
    post:
      tags:
      - scheduled-notifications
      summary: Send Due Notifications
      description: '5-minute cron job endpoint to send all due notifications.

        This should be called every 5 minutes.


        Checks for all pending notifications scheduled for current time or earlier and sends them.

        Updates notification status to ''sent'' or ''failed'' accordingly.


        Tasks are queued in Redis and processed by Celery workers.


        Requires x-api-key header for authentication.'
      operationId: send_due_notifications_api_scheduled_notifications_admin_send_due_post
      parameters:
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/scheduled-notifications/admin/generate-content:
    post:
      tags:
      - scheduled-notifications
      summary: Generate Content
      description: 'Hourly cron job endpoint to pre-generate notification content.

        By default processes a 1-hour time slice 47-48 hours ahead.

        Use start_hours_ahead and end_hours_ahead query params to override.


        For each notification in the slice:

        - Determines type (personalized vs template) via probability

        - Template: inserts content directly into DB

        - Personalized: submits Gemini batch (results collected via retry)


        Requires x-api-key header for authentication.'
      operationId: generate_content_api_scheduled_notifications_admin_generate_content_post
      parameters:
      - name: start_hours_ahead
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          description: 'Hours ahead of now for window start (default: 47)'
          title: Start Hours Ahead
        description: 'Hours ahead of now for window start (default: 47)'
      - name: end_hours_ahead
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          description: 'Hours ahead of now for window end (default: 48)'
          title: End Hours Ahead
        description: 'Hours ahead of now for window end (default: 48)'
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/scheduled-notifications/admin/test:
    post:
      tags:
      - scheduled-notifications
      summary: Test Notification
      description: 'Generate a test notification for a user.

        Shows exactly what would be generated by the production batch system.


        Args:

        - x-user-id (header): The user ID to generate notification for

        - sendToDevice (body): If true, actually sends the notification to the user''s device. Default: false

        - deliveryMethod (body): "push" for regular push notification, "live_activity" for iOS Live Activity. Default: "push"

        - notificationType (body): "personalized", "prayer", or "journaling". Default: "personalized"

        - timeOfDay (body): "morning", "noon", "evening", "night", or "generic". Default: "generic"


        Returns:

        - notification_type: Type of notification generated

        - notification: The generated title and body

        - memories_count: How many memories were used (only for personalized)

        - sent_to_device: Whether notification was sent to device

        - delivery_method: How the notification was delivered


        Requires x-api-key header for authentication.'
      operationId: test_notification_api_scheduled_notifications_admin_test_post
      parameters:
      - name: x-user-id
        in: header
        required: true
        schema:
          type: string
          title: X-User-Id
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          title: X-Api-Key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestNotificationRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/scheduled-notifications/admin/test-live-activity:
    post:
      tags:
      - scheduled-notifications
      summary: Test Live Activity
      description: "Trigger a Live Activity on a user's device for testing.\n\nPick a variant from the Swagger \"Examples\" dropdown (prayer / church /\ndevotional / custom reminder, streak, or standard) and send. Reminders carry\nthe per-subtype artwork (via the deep link's reminderType), the weekly streak\nbubbles, and the interactive snooze.\n\n- x-user-id (header): user to send the Live Activity to (must have a stored\n  live_activity_tokens pushToStart token)\n- Requires x-api-key header for authentication."
      operationId: test_live_activity_api_scheduled_notifications_admin_test_live_activity_post
      parameters:
      - name: x-user-id
        in: header
        required: true
        schema:
          type: string
          title: X-User-Id
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          title: X-Api-Key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestLiveActivityRequest'
            examples:
              prayer_reminder:
                summary: Reminder · Prayer
                value:
                  notificationType: reminder
                  reminderType: prayer
                  title: Prayer time
                  body: Begin your prayer time now
                  streakDays:
                  - true
                  - true
                  - false
                  - true
                  - false
                  - false
                  - false
                  includeSnooze: true
              church_reminder:
                summary: Reminder · Church
                value:
                  notificationType: reminder
                  reminderType: church
                  title: Church time, friend
                  body: Your church family misses you
                  streakDays:
                  - true
                  - false
                  - true
                  - true
                  - false
                  - true
                  - false
                  includeSnooze: true
              devotional_reminder:
                summary: Reminder · Devotional
                value:
                  notificationType: reminder
                  reminderType: devotional
                  title: Today's Devotional
                  body: Open now to read and reflect.
                  streakDays:
                  - false
                  - true
                  - true
                  - true
                  - true
                  - false
                  - false
                  includeSnooze: true
              custom_reminder:
                summary: Reminder · Custom
                value:
                  notificationType: reminder
                  reminderType: custom
                  title: Reminder
                  body: Take a moment with God today.
                  streakDays:
                  - true
                  - true
                  - true
                  - false
                  - false
                  - false
                  - false
                  includeSnooze: true
              streak:
                summary: Streak
                value:
                  notificationType: streak
                  title: Streak Reminder
                  body: Keep your streak with God
                  streakCount: 42
              standard:
                summary: Standard
                value:
                  notificationType: standard
                  title: A moment with Lenny
                  body: Tap to continue your journey
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    TestLiveActivityRequest:
      properties:
        notificationType:
          $ref: '#/components/schemas/LiveActivityType'
          description: standard | reminder | streak
          default: reminder
        reminderType:
          anyOf:
          - type: string
          - type: 'null'
          title: Remindertype
          description: prayer | church | devotional | custom (reminder only)
        title:
          type: string
          title: Title
          description: Main title text (ignored for streak type)
        body:
          type: string
          title: Body
          description: Subtitle / body text
          default: ''
        deepLinkUrl:
          anyOf:
          - type: string
          - type: 'null'
          title: Deeplinkurl
          description: Override the deep link. Defaults per type/subtype when omitted.
        streakCount:
          anyOf:
          - type: integer
          - type: 'null'
          title: Streakcount
          description: Streak count (streak type)
        streakDays:
          anyOf:
          - items:
              type: boolean
            type: array
          - type: 'null'
          title: Streakdays
          description: 7 booleans Sun→Sat for the reminder weekly bubbles
        includeSnooze:
          type: boolean
          title: Includesnooze
          description: Wire snooze fields so the 'remind me later' UI works (reminder only)
          default: true
        snoozeTaskId:
          anyOf:
          - type: string
          - type: 'null'
          title: Snoozetaskid
          description: Reminder task id used by the snooze flow. Use a real reminder id to actually re-send on snooze; defaults to a placeholder otherwise.
      type: object
      required:
      - title
      title: TestLiveActivityRequest
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    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
    LiveActivityType:
      type: string
      enum:
      - standard
      - reminder
      - streak
      - call
      title: LiveActivityType
      description: Enum for Live Activity notification types
    TestNotificationRequest:
      properties:
        sendToDevice:
          type: boolean
          title: Sendtodevice
          default: false
        deliveryMethod:
          type: string
          title: Deliverymethod
          default: push
        notificationType:
          type: string
          title: Notificationtype
          default: personalized
        timeOfDay:
          type: string
          title: Timeofday
          default: generic
        imageUrl:
          anyOf:
          - type: string
          - type: 'null'
          title: Imageurl
        senderName:
          anyOf:
          - type: string
          - type: 'null'
          title: Sendername
      type: object
      title: TestNotificationRequest
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Supabase JWT token