> ## Documentation Index
> Fetch the complete documentation index at: https://docs.astrom8.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Schedule delivery of published daily horoscope content



## OpenAPI

````yaml /openapi.public.json post /v1/horoscope-feed-subscriptions
openapi: 3.1.0
info:
  title: AstroM8 Public API
  version: 1.1.0
  description: >-
    Astrology calculations, reports, customer delivery, and enterprise
    workflows. Each operation declares whether it uses an API key or a customer
    session bearer token.
servers:
  - url: https://api.astrom8.com
    description: Production
security: []
tags:
  - name: Western
    description: Natal, relationship, return, progression, and transit calculations.
  - name: Vedic
    description: Lahiri sidereal Vedic calculations, matching, timing, and remedies.
  - name: Thai Astrology
    description: Thai calendar, auspicious timing, lunar, festival, and wheel tools.
  - name: Chinese & Korean
    description: BaZi, Qi Men Dun Jia, and Saju calculations.
  - name: Horoscopes
    description: Published daily and range horoscope content.
  - name: Reports
    description: Branded report generation and asynchronous job polling.
  - name: Tarot & Numerology
    description: Tarot spreads and Pythagorean numerology.
  - name: Uranian
    description: Uranian charts, midpoints, and planetary pictures.
  - name: Developer workflow
    description: Preflight capability eligibility and credit estimates.
  - name: Customer reports
    description: Session-authenticated report jobs and reusable brand profiles.
  - name: Customer delivery
    description: Session-authenticated webhooks and scheduled horoscope delivery.
  - name: Cultural Intelligence
    description: >-
      Enterprise API-key workflows for encrypted profiles, teams, and campaign
      content.
paths:
  /v1/horoscope-feed-subscriptions:
    post:
      tags:
        - Customer delivery
      summary: Schedule delivery of published daily horoscope content
      operationId: createHoroscopeFeedSubscription
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                destination_url:
                  type: string
                  format: uri
                  pattern: ^https://
                sign:
                  type: string
                  enum:
                    - aries
                    - taurus
                    - gemini
                    - cancer
                    - leo
                    - virgo
                    - libra
                    - scorpio
                    - sagittarius
                    - capricorn
                    - aquarius
                    - pisces
                language:
                  type: string
                  enum:
                    - en
                    - th
                  default: en
                timezone:
                  type: string
                  default: UTC
                delivery_time:
                  type: string
                  pattern: ^([01]\d|2[0-3]):[0-5]\d$
                  default: '08:00'
              required:
                - destination_url
                - sign
      responses:
        '201':
          description: Subscription and one-time signing secret.
          content:
            application/json:
              schema:
                type: object
                properties:
                  subscription:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: ^hfs_[a-f0-9]{24}$
                        description: Feed subscription id.
                      destination_url:
                        type: string
                        format: uri
                      sign:
                        type: string
                        enum:
                          - aries
                          - taurus
                          - gemini
                          - cancer
                          - leo
                          - virgo
                          - libra
                          - scorpio
                          - sagittarius
                          - capricorn
                          - aquarius
                          - pisces
                      language:
                        type: string
                        enum:
                          - en
                          - th
                      timezone:
                        type: string
                        example: Asia/Bangkok
                      delivery_time:
                        type: string
                        pattern: ^([01]\d|2[0-3]):[0-5]\d$
                        example: '08:00'
                      active:
                        type: boolean
                      consecutive_failures:
                        type: integer
                      disabled_at:
                        type:
                          - string
                          - 'null'
                        format: date-time
                      created_at:
                        type:
                          - string
                          - 'null'
                        format: date-time
                      updated_at:
                        type:
                          - string
                          - 'null'
                        format: date-time
                    required:
                      - id
                      - destination_url
                      - sign
                      - language
                      - timezone
                      - delivery_time
                      - active
                  signing_secret:
                    type: string
                    writeOnly: true
                    description: Returned only by this create response.
                required:
                  - subscription
                  - signing_secret
        '400':
          description: Unsafe destination, invalid timezone, or duplicate subscription.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonError'
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
        - SessionBearerAuth: []
components:
  schemas:
    JsonError:
      type: object
      required:
        - error
        - message
      properties:
        error:
          type: string
          description: >-
            Stable slug (e.g. unauthorized, payment_required,
            internal_server_error).
        message:
          type: string
          description: Human-readable message safe for clients.
        code:
          type: string
          description: Optional provider-specific code.
        request_id:
          type: string
          description: Correlation id when middleware sets it.
  responses:
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/JsonError'
          example:
            error: unauthorized
            message: Invalid API key
            code: '401'
            request_id: 01HQXYZ...
  securitySchemes:
    SessionBearerAuth:
      type: http
      scheme: bearer
      bearerFormat: astrom8_sess_*
      description: >-
        Customer session token returned by /auth/login. This is distinct from an
        API key.

````