ForHosting KIT · Developer Utilities

Daily affirmation picker

This seeded daily affirmation picker turns a calendar date and a category into one consistent message.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

Choose calm, confidence, focus, or gratitude, then provide a real date in YYYY-MM-DD form. The selection is deterministic: repeating the same date and category produces the same affirmation, whether the request is made now, tomorrow, or from another device. That makes the result suitable for daily prompts, journals, team check-ins, and applications that need a stable message without storing previous choices or relying on random behavior.

Create a stable daily affirmation without storing state

Many daily-message features appear simple until consistency matters. A random picker may show a different sentence whenever a page reloads, a job retries, or a user switches devices. This capability avoids that problem by treating the supplied date as a seed. It validates the date, converts its exact YYYY-MM-DD text into a stable unsigned integer, and uses that number to select an entry from the requested curated category. The calculation has no clock and keeps no history, so identical inputs always lead to identical output. Your application can request the message whenever it needs it instead of saving a daily selection in a database. The response includes the original date, the accepted category, the affirmation, and its zero-based index within the category list. Those fields make the decision easy to display, cache, audit, or compare in an automated test. A different date will usually move to another entry, while a repeated date reliably recreates the earlier choice.

Choose a category and provide an exact calendar date

Send two required fields: date and category. The date must use four digits for the year, two for the month, and two for the day, including leading zeroes. It must also describe a real Gregorian calendar day, so leap years are checked and impossible values such as February 30 are rejected. The category must be exactly calm, confidence, focus, or gratitude. Each category contains its own reviewed set of constructive first-person statements. Calm emphasizes steady responses and sustainable pacing; confidence supports capable action and self-trust; focus favors priorities and deliberate progress; gratitude encourages appreciation without denying difficult feelings. Category matching is intentionally strict because silently correcting a misspelling could select from the wrong list. If a client sends an unknown category, the request returns an invalid-input error that names the supported choices. For a person’s local daily experience, have the client calculate the relevant local calendar date and send that date explicitly; the capability never guesses a timezone or consults the current clock.

Use deterministic selection responsibly in products and routines

A stable affirmation works well anywhere one shared message should remain fixed for a whole day. A journaling application can place it above a morning entry, a team tool can add it to an optional check-in, and a personal dashboard can render it repeatedly without visual churn. Determinism also helps with scheduled workflows: retries produce the same message, tests can assert exact results, and multiple services can agree by sending the same inputs. The selector is intentionally modest in scope. It does not personalize text from sensitive user data, evaluate a person’s emotional condition, or claim to provide therapy or medical care. It simply chooses from a finite curated list. Applications should present affirmations as optional reflective prompts, not guarantees or instructions that override professional advice. Because the seed is only the date, the result is predictable rather than secret; do not use it for lotteries, security decisions, or any situation requiring unbiased randomness. API automation costs $0.002 per request, while the browser experience can run the same pure selection logic locally.

Daily journal prompt

Show a consistent category-based affirmation above every entry created on the same calendar date.

Reliable scheduled message

Generate the same affirmation when a daily workflow retries, without persisting a previous random choice.

Shared team check-in

Let distributed participants receive one stable focus or gratitude prompt by agreeing on a date and category.

Will the same date always return the same affirmation?

Yes. The same valid date and category always produce the same affirmation and index because the algorithm uses no clock or randomness.

Which categories are available?

The supported categories are calm, confidence, focus, and gratitude. Any other value returns an invalid-input error.

Does the picker use my timezone?

No. You provide the exact calendar date to seed the selection, so your client can choose the date appropriate to its own timezone.

Can this replace professional mental health support?

No. The messages are general reflective prompts, not diagnosis, treatment, crisis support, or professional advice.

What does an API request cost?

Each API request costs $0.002. The browser experience can execute the same deterministic logic locally.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/life/affirmation-pick-seeded

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/life/affirmation-pick-seeded \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-08-03","category":"confidence"}'
{
  "date": "2026-08-03",
  "category": "confidence"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "life.affirmation_pick_seeded",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →