{"openapi":"3.1.0","info":{"title":"yitarot","version":"1.0.0","description":"Deterministic divination as an HTTP tool. Every reading carries an interpretation_contract; pass state back to follow up."},"servers":[{"url":"https://yitarot.vercel.app"}],"paths":{"/api":{"get":{"operationId":"listSystems","summary":"List every divination system, its parameters and an example call.","responses":{"200":{"description":"Catalog"}}}},"/api/iching":{"get":{"operationId":"cast_iching","summary":"I Ching, 64 hexagrams, coins or yarrow stalks.","parameters":[{"name":"coins","in":"query","required":false,"schema":{"type":"string"},"description":"Six line values, bottom first (6,7,8,9). Omit to toss with the seed."},{"name":"yarrow","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Use the 大衍筮法 yarrow distribution instead of coins. Pass 1; mutually exclusive with coins."},{"name":"question","in":"query","required":false,"schema":{"type":"string"},"description":"The question, verbatim. Omit for systems that ignore it."},{"name":"seed","in":"query","required":false,"schema":{"type":"string"},"description":"Integer seed. Omit to use the current millisecond; the same seed reproduces the cast."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","md","prompt"],"default":"json"},"description":"json for programs, md for people, prompt for a model with the interpretation contract."}],"responses":{"200":{"description":"A reading in JSON, Markdown or prompt form.","content":{"application/json":{"schema":{"type":"object"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Unknown parameter value; the body is {ok:false,error}."},"429":{"description":"Rate limited; honour the retry-after header."},"500":{"description":"The engine failed; the body is {ok:false,error}."}}}},"/api/tarot":{"get":{"operationId":"cast_tarot","summary":"78-card tarot with five spreads.","parameters":[{"name":"spread","in":"query","required":false,"schema":{"type":"string"},"description":"Spread id; the accepted values depend on the system."},{"name":"question","in":"query","required":false,"schema":{"type":"string"},"description":"The question, verbatim. Omit for systems that ignore it."},{"name":"seed","in":"query","required":false,"schema":{"type":"string"},"description":"Integer seed. Omit to use the current millisecond; the same seed reproduces the cast."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","md","prompt"],"default":"json"},"description":"json for programs, md for people, prompt for a model with the interpretation contract."}],"responses":{"200":{"description":"A reading in JSON, Markdown or prompt form.","content":{"application/json":{"schema":{"type":"object"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Unknown parameter value; the body is {ok:false,error}."},"429":{"description":"Rate limited; honour the retry-after header."},"500":{"description":"The engine failed; the body is {ok:false,error}."}}}},"/api/liuyao":{"get":{"operationId":"cast_liuyao","summary":"Six-line (Liu Yao) with eight palaces, host/guest lines and six kin.","parameters":[{"name":"coins","in":"query","required":false,"schema":{"type":"string"},"description":"Six line values, bottom first (6,7,8,9). Omit to toss with the seed."},{"name":"day-stem","in":"query","required":false,"schema":{"type":"string"},"description":"Day stem 甲..癸, used for the six-kin markers in liuyao."},{"name":"yarrow","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Use the 大衍筮法 yarrow distribution instead of coins. Pass 1; mutually exclusive with coins."},{"name":"question","in":"query","required":false,"schema":{"type":"string"},"description":"The question, verbatim. Omit for systems that ignore it."},{"name":"seed","in":"query","required":false,"schema":{"type":"string"},"description":"Integer seed. Omit to use the current millisecond; the same seed reproduces the cast."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","md","prompt"],"default":"json"},"description":"json for programs, md for people, prompt for a model with the interpretation contract."}],"responses":{"200":{"description":"A reading in JSON, Markdown or prompt form.","content":{"application/json":{"schema":{"type":"object"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Unknown parameter value; the body is {ok:false,error}."},"429":{"description":"Rate limited; honour the retry-after header."},"500":{"description":"The engine failed; the body is {ok:false,error}."}}}},"/api/meihua":{"get":{"operationId":"cast_meihua","summary":"Plum Blossom numerology from two numbers.","parameters":[{"name":"numbers","in":"query","required":false,"schema":{"type":"string"},"description":"Two numbers: upper,lower trigram seeds (e.g. 12,7)."},{"name":"question","in":"query","required":false,"schema":{"type":"string"},"description":"The question, verbatim. Omit for systems that ignore it."},{"name":"seed","in":"query","required":false,"schema":{"type":"string"},"description":"Integer seed. Omit to use the current millisecond; the same seed reproduces the cast."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","md","prompt"],"default":"json"},"description":"json for programs, md for people, prompt for a model with the interpretation contract."}],"responses":{"200":{"description":"A reading in JSON, Markdown or prompt form.","content":{"application/json":{"schema":{"type":"object"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Unknown parameter value; the body is {ok:false,error}."},"429":{"description":"Rate limited; honour the retry-after header."},"500":{"description":"The engine failed; the body is {ok:false,error}."}}}},"/api/geomancy":{"get":{"operationId":"cast_geomancy","summary":"Sixteen-figure geomancy shield chart.","parameters":[{"name":"mothers","in":"query","required":false,"schema":{"type":"string"},"description":"Four figures 0..15, comma separated."},{"name":"question","in":"query","required":false,"schema":{"type":"string"},"description":"The question, verbatim. Omit for systems that ignore it."},{"name":"seed","in":"query","required":false,"schema":{"type":"string"},"description":"Integer seed. Omit to use the current millisecond; the same seed reproduces the cast."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","md","prompt"],"default":"json"},"description":"json for programs, md for people, prompt for a model with the interpretation contract."}],"responses":{"200":{"description":"A reading in JSON, Markdown or prompt form.","content":{"application/json":{"schema":{"type":"object"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Unknown parameter value; the body is {ok:false,error}."},"429":{"description":"Rate limited; honour the retry-after header."},"500":{"description":"The engine failed; the body is {ok:false,error}."}}}},"/api/lenormand":{"get":{"operationId":"cast_lenormand","summary":"36 Lenormand cards, three to grand tableau.","parameters":[{"name":"spread","in":"query","required":false,"schema":{"type":"string"},"description":"Spread id; the accepted values depend on the system."},{"name":"question","in":"query","required":false,"schema":{"type":"string"},"description":"The question, verbatim. Omit for systems that ignore it."},{"name":"seed","in":"query","required":false,"schema":{"type":"string"},"description":"Integer seed. Omit to use the current millisecond; the same seed reproduces the cast."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","md","prompt"],"default":"json"},"description":"json for programs, md for people, prompt for a model with the interpretation contract."}],"responses":{"200":{"description":"A reading in JSON, Markdown or prompt form.","content":{"application/json":{"schema":{"type":"object"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Unknown parameter value; the body is {ok:false,error}."},"429":{"description":"Rate limited; honour the retry-after header."},"500":{"description":"The engine failed; the body is {ok:false,error}."}}}},"/api/virgil":{"get":{"operationId":"cast_virgil","summary":"Sortes Virgilianae: a line of the Aeneid.","parameters":[{"name":"with-english","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Add an English translation for the drawn line or verse."},{"name":"question","in":"query","required":false,"schema":{"type":"string"},"description":"The question, verbatim. Omit for systems that ignore it."},{"name":"seed","in":"query","required":false,"schema":{"type":"string"},"description":"Integer seed. Omit to use the current millisecond; the same seed reproduces the cast."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","md","prompt"],"default":"json"},"description":"json for programs, md for people, prompt for a model with the interpretation contract."}],"responses":{"200":{"description":"A reading in JSON, Markdown or prompt form.","content":{"application/json":{"schema":{"type":"object"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Unknown parameter value; the body is {ok:false,error}."},"429":{"description":"Rate limited; honour the retry-after header."},"500":{"description":"The engine failed; the body is {ok:false,error}."}}}},"/api/bible":{"get":{"operationId":"cast_bible","summary":"Sortes Biblicae: a verse of the Chinese Union Version.","parameters":[{"name":"with-english","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Add an English translation for the drawn line or verse."},{"name":"question","in":"query","required":false,"schema":{"type":"string"},"description":"The question, verbatim. Omit for systems that ignore it."},{"name":"seed","in":"query","required":false,"schema":{"type":"string"},"description":"Integer seed. Omit to use the current millisecond; the same seed reproduces the cast."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","md","prompt"],"default":"json"},"description":"json for programs, md for people, prompt for a model with the interpretation contract."}],"responses":{"200":{"description":"A reading in JSON, Markdown or prompt form.","content":{"application/json":{"schema":{"type":"object"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Unknown parameter value; the body is {ok:false,error}."},"429":{"description":"Rate limited; honour the retry-after header."},"500":{"description":"The engine failed; the body is {ok:false,error}."}}}},"/api/bazi":{"get":{"operationId":"cast_bazi","summary":"Four Pillars (Ba Zi) from a birth moment.","parameters":[{"name":"date","in":"query","required":false,"schema":{"type":"string"},"description":"Local date and time, YYYY-MM-DD HH:MM."},{"name":"tz","in":"query","required":false,"schema":{"type":"string"},"description":"Timezone offset in minutes; UTC+8 is 480."},{"name":"day-boundary","in":"query","required":false,"schema":{"type":"string"},"description":"zi (day starts at 23:00) or midnight."},{"name":"longitude","in":"query","required":false,"schema":{"type":"string"},"description":"Birth longitude in degrees; east is positive."},{"name":"gender","in":"query","required":false,"schema":{"type":"string"},"description":"男 or 女."},{"name":"true-solar","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Correct the hour pillar with longitude and the equation of time."},{"name":"question","in":"query","required":false,"schema":{"type":"string"},"description":"The question, verbatim. Omit for systems that ignore it."},{"name":"seed","in":"query","required":false,"schema":{"type":"string"},"description":"Integer seed. Omit to use the current millisecond; the same seed reproduces the cast."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","md","prompt"],"default":"json"},"description":"json for programs, md for people, prompt for a model with the interpretation contract."}],"responses":{"200":{"description":"A reading in JSON, Markdown or prompt form.","content":{"application/json":{"schema":{"type":"object"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Unknown parameter value; the body is {ok:false,error}."},"429":{"description":"Rate limited; honour the retry-after header."},"500":{"description":"The engine failed; the body is {ok:false,error}."}}}},"/api/ziwei":{"get":{"operationId":"cast_ziwei","summary":"Zi Wei Dou Shu from a lunar birthday.","parameters":[{"name":"lunar","in":"query","required":false,"schema":{"type":"string"},"description":"Lunar birthday, YYYY-M-D; prefix the month with R for a leap month."},{"name":"hour-branch","in":"query","required":false,"schema":{"type":"string"},"description":"Hour branch 子..亥."},{"name":"gender","in":"query","required":false,"schema":{"type":"string"},"description":"男 or 女."},{"name":"question","in":"query","required":false,"schema":{"type":"string"},"description":"The question, verbatim. Omit for systems that ignore it."},{"name":"seed","in":"query","required":false,"schema":{"type":"string"},"description":"Integer seed. Omit to use the current millisecond; the same seed reproduces the cast."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","md","prompt"],"default":"json"},"description":"json for programs, md for people, prompt for a model with the interpretation contract."}],"responses":{"200":{"description":"A reading in JSON, Markdown or prompt form.","content":{"application/json":{"schema":{"type":"object"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Unknown parameter value; the body is {ok:false,error}."},"429":{"description":"Rate limited; honour the retry-after header."},"500":{"description":"The engine failed; the body is {ok:false,error}."}}}},"/api/qimen":{"get":{"operationId":"cast_qimen","summary":"Qi Men Dun Jia chart for a moment.","parameters":[{"name":"date","in":"query","required":false,"schema":{"type":"string"},"description":"Local date and time, YYYY-MM-DD HH:MM."},{"name":"tz","in":"query","required":false,"schema":{"type":"string"},"description":"Timezone offset in minutes; UTC+8 is 480."},{"name":"method","in":"query","required":false,"schema":{"type":"string"},"description":"Qi Men setup; only chaibu is implemented."},{"name":"question","in":"query","required":false,"schema":{"type":"string"},"description":"The question, verbatim. Omit for systems that ignore it."},{"name":"seed","in":"query","required":false,"schema":{"type":"string"},"description":"Integer seed. Omit to use the current millisecond; the same seed reproduces the cast."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","md","prompt"],"default":"json"},"description":"json for programs, md for people, prompt for a model with the interpretation contract."}],"responses":{"200":{"description":"A reading in JSON, Markdown or prompt form.","content":{"application/json":{"schema":{"type":"object"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Unknown parameter value; the body is {ok:false,error}."},"429":{"description":"Rate limited; honour the retry-after header."},"500":{"description":"The engine failed; the body is {ok:false,error}."}}}},"/api/daliuren":{"get":{"operationId":"cast_daliuren","summary":"Da Liu Ren: four lessons, three transmissions.","parameters":[{"name":"date","in":"query","required":false,"schema":{"type":"string"},"description":"Local date and time, YYYY-MM-DD HH:MM."},{"name":"tz","in":"query","required":false,"schema":{"type":"string"},"description":"Timezone offset in minutes; UTC+8 is 480."},{"name":"question","in":"query","required":false,"schema":{"type":"string"},"description":"The question, verbatim. Omit for systems that ignore it."},{"name":"seed","in":"query","required":false,"schema":{"type":"string"},"description":"Integer seed. Omit to use the current millisecond; the same seed reproduces the cast."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","md","prompt"],"default":"json"},"description":"json for programs, md for people, prompt for a model with the interpretation contract."}],"responses":{"200":{"description":"A reading in JSON, Markdown or prompt form.","content":{"application/json":{"schema":{"type":"object"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Unknown parameter value; the body is {ok:false,error}."},"429":{"description":"Rate limited; honour the retry-after header."},"500":{"description":"The engine failed; the body is {ok:false,error}."}}}},"/api/horary":{"get":{"operationId":"cast_horary","summary":"Horary astrology from the chart of the moment asked.","parameters":[{"name":"date","in":"query","required":false,"schema":{"type":"string"},"description":"Local date and time, YYYY-MM-DD HH:MM."},{"name":"tz","in":"query","required":false,"schema":{"type":"string"},"description":"Timezone offset in minutes; UTC+8 is 480."},{"name":"lat","in":"query","required":false,"schema":{"type":"string"},"description":"Latitude in degrees; north is positive."},{"name":"lon","in":"query","required":false,"schema":{"type":"string"},"description":"Longitude in degrees; east is positive."},{"name":"kind","in":"query","required":false,"schema":{"type":"string"},"description":"Question type: other, relationship, money, career, health, travel, legal, missing."},{"name":"houses","in":"query","required":false,"schema":{"type":"string"},"description":"House system; only placidus is implemented."},{"name":"question","in":"query","required":false,"schema":{"type":"string"},"description":"The question, verbatim. Omit for systems that ignore it."},{"name":"seed","in":"query","required":false,"schema":{"type":"string"},"description":"Integer seed. Omit to use the current millisecond; the same seed reproduces the cast."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","md","prompt"],"default":"json"},"description":"json for programs, md for people, prompt for a model with the interpretation contract."}],"responses":{"200":{"description":"A reading in JSON, Markdown or prompt form.","content":{"application/json":{"schema":{"type":"object"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Unknown parameter value; the body is {ok:false,error}."},"429":{"description":"Rate limited; honour the retry-after header."},"500":{"description":"The engine failed; the body is {ok:false,error}."}}}},"/api/runes":{"get":{"operationId":"cast_runes","summary":"Elder Futhark runes, five spreads.","parameters":[{"name":"spread","in":"query","required":false,"schema":{"type":"string"},"description":"Spread id; the accepted values depend on the system."},{"name":"reversals","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Allow reversed runes."},{"name":"question","in":"query","required":false,"schema":{"type":"string"},"description":"The question, verbatim. Omit for systems that ignore it."},{"name":"seed","in":"query","required":false,"schema":{"type":"string"},"description":"Integer seed. Omit to use the current millisecond; the same seed reproduces the cast."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","md","prompt"],"default":"json"},"description":"json for programs, md for people, prompt for a model with the interpretation contract."}],"responses":{"200":{"description":"A reading in JSON, Markdown or prompt form.","content":{"application/json":{"schema":{"type":"object"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Unknown parameter value; the body is {ok:false,error}."},"429":{"description":"Rate limited; honour the retry-after header."},"500":{"description":"The engine failed; the body is {ok:false,error}."}}}},"/api/omikuji":{"get":{"operationId":"cast_omikuji","summary":"Japanese omikuji paper fortune.","parameters":[{"name":"question","in":"query","required":false,"schema":{"type":"string"},"description":"The question, verbatim. Omit for systems that ignore it."},{"name":"seed","in":"query","required":false,"schema":{"type":"string"},"description":"Integer seed. Omit to use the current millisecond; the same seed reproduces the cast."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","md","prompt"],"default":"json"},"description":"json for programs, md for people, prompt for a model with the interpretation contract."}],"responses":{"200":{"description":"A reading in JSON, Markdown or prompt form.","content":{"application/json":{"schema":{"type":"object"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Unknown parameter value; the body is {ok:false,error}."},"429":{"description":"Rate limited; honour the retry-after header."},"500":{"description":"The engine failed; the body is {ok:false,error}."}}}},"/api/yilin":{"get":{"operationId":"cast_yilin","summary":"Jiao's Yi Lin, 4096 four-character verses.","parameters":[{"name":"coins","in":"query","required":false,"schema":{"type":"string"},"description":"Six line values, bottom first (6,7,8,9). Omit to toss with the seed."},{"name":"yarrow","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Use the 大衍筮法 yarrow distribution instead of coins. Pass 1; mutually exclusive with coins."},{"name":"question","in":"query","required":false,"schema":{"type":"string"},"description":"The question, verbatim. Omit for systems that ignore it."},{"name":"seed","in":"query","required":false,"schema":{"type":"string"},"description":"Integer seed. Omit to use the current millisecond; the same seed reproduces the cast."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","md","prompt"],"default":"json"},"description":"json for programs, md for people, prompt for a model with the interpretation contract."}],"responses":{"200":{"description":"A reading in JSON, Markdown or prompt form.","content":{"application/json":{"schema":{"type":"object"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Unknown parameter value; the body is {ok:false,error}."},"429":{"description":"Rate limited; honour the retry-after header."},"500":{"description":"The engine failed; the body is {ok:false,error}."}}}}}}