DAOTIMING BUSINESS API
The Temporal Regime API.
Alternative data for time itself: Qi Men time-slice boards as structured JSON and ML feature vectors — single moments, batches, or whole time series. Plus the Personal Structure API: four-pillar and purple-star chart data. You build the experience; your users own the consent. We serve the data.
Windows and tendencies, never verdicts — the guardrails ship inside every payload.
PRICING
- · 10,000 Time Slice casts (Temporal Regime: single / batch / series / features)
- · 2,000 chart builds (Personal Structure; reads included, no per-read metering)
- · Key valid 92 days; renew by purchasing again — no subscription lock-in
- · Usage anytime via
GET /api/v1/usage
Higher volume, SLA or custom terms — [email protected].
GET ACCESS
GETTING STARTED — 5 MINUTES
- Buy access above. Your key (
dt_live_…) arrives by email within a minute — it is shown once; we store only a hash. - Cast your first slice:
curl -X POST https://daotiming.com/api/v1/timeslice \
-H "Authorization: Bearer dt_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"question":"Is this week the right window to launch?"}'The response carries the structured board, a 65-dimension feature vector, and a ready-to-use AI prompt — paste the prompt into any frontier model and it reads the slice in DaoTiming’s language. That’s the whole integration.
TEMPORAL REGIME API · FLAGSHIP
Every two hours the configuration of time changes regime. The Temporal Regime API serves that configuration as data — the way market-regime features are served to quant desks. No usable open-source engine for this system exists. Time-slice data describes moments, not people — no personal data is involved.
| LAYER | ENDPOINT | WHAT | QUOTA |
|---|---|---|---|
| L1 · Single | POST /api/v1/timeslice | One moment → the full board: canon chart, ML features, ready-to-use AI prompt. | 1 cast |
| L2 · Batch | POST /api/v1/timeslice/batch | Up to 500 moments in one call — "I have twenty years of event timestamps, generate all of it." | 1 cast each |
| L3 · Time Series | POST /api/v1/timeslice/series | A start and an end → one slice per double-hour (the board rotates every 2h). Up to 2,000 slices per request. | 1 cast/slice |
| L4 · Features | format: "features" | Available on all three: the board as a 65-dimension numeric vector with a self-describing schema. One row per slice — drop it straight into a training pipeline. | included |
PERSONAL STRUCTURE API
Four-pillar and purple-star chart data for consenting individuals — raw facts, derived mechanics, and the quantitative series.
| POST /api/v1/chart | Register a four-pillar chart: pillars (3LP), hidden stems with fractional weights, Ten Aspects, element balance, seasonal command, rooting facts. | 1 build |
| GET /api/v1/chart/{id}/year/{yyyy} | One year, full mechanics: Luck Pillar, annual pillar, 12 solar-term monthly windows, annual transformations + seats, activated threads, relation events, flow layer, full purple-star board as data. | included |
| GET /api/v1/chart/{id}/series | Seven dimensions × 1,200 monthly samples + 100 yearly candles (true OHLC) + decade chapters. | included |
| GET /api/v1/chart/{id}/prompt/{yyyy} | The three-layer structured packet our Life Terminal ships — glossary, reading instructions, binding limitations. Paste into any frontier model. | included |
| GET /api/v1/usage | Plan status: build + cast quotas, usage, expiry. | free |
INTEGRATION MANUAL
Base URL — https://daotiming.com/api/v1. All responses are UTF-8 JSON.
Authentication — every request carries Authorization: Bearer dt_live_…. The key arrives by email at purchase, is shown once, and is stored only as a hash.
Key lifetime — a key is valid for 92 days from purchase, then expires (requests return 403). Renew by purchasing again; there is no auto-renewal and no subscription to cancel.
Quota — one cast per Time Slice board and one build per newly registered chart; batch and series claim their casts atomically up front, and any cast is refunded if the engine fails to return it. Re-registering an identical chart is free. Reads (year / series / prompt) are unmetered. Check remaining quota anytime with GET /api/v1/usage.
Limits — batch ≤ 500 moments, time-series ≤ 2,000 slices per request (chunk longer ranges). A 429 means your quarterly quota is spent — it is not a per-second rate limit.
Versioning — the path carries the major version (/v1). Field additions are backward-compatible; any breaking change ships under a new version, and the old one keeps running.
Language — all text output uses window language: structural tendencies, never verdicts.
Casts one Time Slice (Qi Men) board. Returns everything an integration needs for one moment.
| FIELD | TYPE | NOTE |
|---|---|---|
| datetime | string · optional | ISO-8601 moment (e.g. "2026-07-13T20:00:00Z"). Defaults to now. Range 1900–2100. The board rotates per double-hour. |
| format | string · optional | "canon" (structured board, DaoTiming English) · "features" (numeric vector) · "prompt" (AI prompt string) · "full" (all three + display projection). Default "full". |
| question | string · optional | The plain-language question (≤500 chars). Woven into the AI prompt. |
| mode | "basic"|"advanced" · optional | AI-prompt depth. "advanced" carries the full pattern layer. |
Returns: JSON { datetimeUsed, chart?, features?, prompt?, display? } per format. chart = cycle (Yang/Yin), Cycle Number, Cycle Anchor, Concealed Stem, Chief Field/Zone, both Horses, casting pillars (3LP), and all nine palaces (Nine Fields / Eight Zones / Eight Actors / Heaven+Earth+Shadow stems) with an embedded glossary.
curl -X POST https://daotiming.com/api/v1/timeslice \
-H "Authorization: Bearer dt_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"datetime":"2026-07-13T20:00:00Z","question":"Should we sign this week?","mode":"advanced"}'Casts up to 500 moments in one call. The whole batch is quota-claimed atomically — it either fits or nothing is charged.
| FIELD | TYPE | NOTE |
|---|---|---|
| datetimes | string[] · required | 1–500 ISO-8601 moments. |
| format | string · optional | Same four values. Default "canon". |
Returns: JSON { count, results: [ per-moment objects as in /timeslice ] }.
curl -X POST https://daotiming.com/api/v1/timeslice/batch \
-H "Authorization: Bearer dt_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"datetimes":["2025-01-01T09:00:00-05:00","2025-01-01T11:00:00-05:00"],"format":"features"}'Expands a range into one slice per double-hour and casts them all. 20 years ≈ 87,600 slices — chunk into ≤2,000-slice requests.
| FIELD | TYPE | NOTE |
|---|---|---|
| start | string · required | ISO-8601 range start. |
| end | string · required | ISO-8601 range end (exclusive of partial trailing slices). |
| format | string · optional | Default "features" — the time-series story is an ML story. |
Returns: JSON { count, sliceMinutes: 120, results: [...] }.
curl -X POST https://daotiming.com/api/v1/timeslice/series \
-H "Authorization: Bearer dt_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"start":"2026-01-01T00:00:00Z","end":"2026-06-30T23:59:00Z","format":"features"}'Registers a four-pillar chart. The returned chartId keys the other structure endpoints. Re-registering the same birth data is free.
| FIELD | TYPE | NOTE |
|---|---|---|
| birthDate | string · required | "YYYY-MM-DD", 1900–2030. Clock time only — no true solar time (declared in the response). |
| birthTime | string · required | "HH:MM", 24-hour local clock. |
| gender | "male"|"female" · required | Sets the Luck Pillar direction. |
Returns: JSON { chartId, natal, endpoints }: birthMeta rule declarations, dayMaster, pillars with per-character element/polarity + hidden stems (fractional weights + Ten Aspects), elementBalance, seasonalContext, rooting, visibleSupport.
curl -X POST https://daotiming.com/api/v1/chart \
-H "Authorization: Bearer dt_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"birthDate":"1992-04-17","birthTime":"09:30","gender":"female"}'One year’s full mechanics. Unmetered reads. Year range: birth year to +99.
| FIELD | TYPE | NOTE |
|---|---|---|
| chartId | path | From POST /api/v1/chart. |
| yyyy | path | Calendar year. |
Returns: luckPillar (+boundary notes), annualPillar, 12 solar-term monthlyWindows with fired relations, annualMutagen + seats, activatedThreads, relationEvents (bonding/clash/punishment/piercing/po with magnitudes and hidden-stem participants), flowLayer (proportions + deltas, mixing indices, chain-topology events, absorption verdicts — glossary embedded), ziweiBoard, palaceStates, prosperityFlow, guardrail.
curl https://daotiming.com/api/v1/chart/CHART_ID/year/2026 \ -H "Authorization: Bearer dt_live_YOUR_KEY"
The quantitative layer. First call computes (~10–30s) and caches forever.
| FIELD | TYPE | NOTE |
|---|---|---|
| chartId | path | From POST /api/v1/chart. |
Returns: dims (7 × 1,200 monthly), candles (100 yearly true-OHLC per dimension + composite), markers, decades, meta, scale note (0–100 within-chart relative levels; cross-person comparison undefined; risk = exposure).
curl https://daotiming.com/api/v1/chart/CHART_ID/series \ -H "Authorization: Bearer dt_live_YOUR_KEY"
The flagship personal packet — the same three-layer package the Life Terminal ships.
| FIELD | TYPE | NOTE |
|---|---|---|
| chartId | path | From POST /api/v1/chart. |
| yyyy | path | Calendar year. |
Returns: JSON { query, prompt }: the fired HLQL clauses + the full text package (rawFacts / derivedMechanics / interpretiveScores, zh↔en legend, reading instructions, binding limitations — Day-Master strength classification is explicitly forbidden).
curl https://daotiming.com/api/v1/chart/CHART_ID/prompt/2026 \ -H "Authorization: Bearer dt_live_YOUR_KEY"
Your plan status. Free.
Returns: plan, company, status, quotaBuilds/usedBuilds/remainingBuilds, quotaCasts/usedCasts/remainingCasts, expiresAt.
curl https://daotiming.com/api/v1/usage \ -H "Authorization: Bearer dt_live_YOUR_KEY"
ERRORS
| 400 | malformed input — the message names the field and the accepted format |
| 401 | missing, malformed or unknown API key |
| 403 | key suspended or expired |
| 404 | unknown chartId — register the chart first |
| 429 | quota exhausted (builds or casts) — the message says which; contact [email protected] to extend |
| 5xx | engine or upstream error — safe to retry |
ACCEPTABLE USE POLICY
Permitted uses
- ✓ Personal analysis purchased by the data subject themselves
- ✓ Astrology, human-design and structural-analysis apps serving consenting users
- ✓ Coaches and consultants, with the client's explicit consent
- ✓ Partner and family relationship exploration, all parties consenting
- ✓ Voluntary team-communication exercises — never hiring, firing, promotion or compensation
- ✓ Content platforms generating personalised reflection questions
- ✓ AI assistants reading a user's own data in an ongoing conversation
- ✓ Quantitative research on Temporal Regime features (time-slice data carries no personal information)
Prohibited uses — at any price
- ✕ Employment decisions of any kind: hiring, screening, firing, promotion, compensation
- ✕ Credit, lending, insurance underwriting or pricing, housing, education admissions
- ✕ Law-enforcement, surveillance or government eligibility use
- ✕ Profiling any person without their explicit consent
- ✕ Medical, legal or financial verdicts presented as advice
- ✕ Systematic extraction: enumerating charts to reconstruct the mapping, building derivative datasets for resale, or training models to replicate the engines
- ✕ Building a product substantially similar to the DaoTiming Life Terminal
By purchasing access you attest that every personal chart submitted belongs to a person who has explicitly consented, and that none of the prohibited uses apply. Violation terminates the license immediately, without refund; you indemnify DaoTiming against claims arising from your use. Per-customer usage is logged and auditable.
Outputs are structural descriptions — windows, tendencies, exposure. They are not advice, not predictions of events, and not a consumer report within the meaning of the FCRA. They must never be the basis of a decision with legal or material effect on a person.