openapi: 3.2.0 info: title: Roxy Mesoamerican Astrology API version: 2.0.0 description: '# RoxyAPI: the Spiritual OS layer for agentic AI > **Base URL:** `https://roxyapi.com/api/v2`.' x-error-codes: - code: validation_error status: 400 meaning: A field is missing or invalid. The body lists every failing field at once in issues, each with its path and the expected shape. - code: bad_request status: 400 meaning: The request was rejected as a whole, for example a body that is not valid JSON or a date range that ends before it starts. - code: date_out_of_range status: 400 meaning: A date lies outside the span the planetary positions are served for. The error names the supported dates. - code: api_key_required status: 401 meaning: No API key was sent. - code: invalid_api_key status: 401 meaning: The key sent is malformed or cannot be verified. - code: api_key_revoked status: 401 meaning: The key was valid once and has since been revoked from the account page. - code: subscription_not_found status: 401 meaning: The key verifies, but the subscription behind it no longer exists. - code: subscription_inactive status: 401 meaning: The subscription behind the key is cancelled, expired or suspended, or a trial is past its end date. - code: publishable_key_not_allowed_on_mcp status: 401 meaning: A publishable key was used on a Remote MCP server, which takes a secret key. - code: invalid_client_ip status: 401 meaning: A keyless request could not be attributed to a caller. - code: unauthorized status: 401 meaning: Authentication failed with no more specific reason to give. - code: forbidden status: 403 meaning: The key is valid, but this request is not permitted. - code: origin_required status: 403 meaning: A publishable key with an origin allowlist was used with no Origin header, as from a server or a native app. - code: origin_not_allowed status: 403 meaning: The calling site is not on the origin allowlist of this publishable key. - code: not_found status: 404 meaning: Nothing is served at this path, or the identifier in it does not exist. A path miss adds suggestions, the closest real endpoints. - code: method_not_allowed status: 405 meaning: The path exists for a different HTTP method. The body lists the accepted methods in allow, as does the Allow header. - code: conflict status: 409 meaning: The request cannot be applied in the current state. - code: gone status: 410 meaning: The path was removed permanently. - code: payload_too_large status: 413 meaning: The request body is larger than the API accepts. - code: unsupported_media_type status: 415 meaning: 'A request with a body was sent without Content-Type: application/json.' - code: unprocessable_entity status: 422 meaning: Every field is valid, but the combination cannot be computed. - code: rate_limit_exceeded status: 429 meaning: The monthly request allowance is used up. Retry-After gives the seconds to the reset. - code: rate_limit_per_minute status: 429 meaning: The per-minute limit of the plan was reached. Retry-After gives the seconds to the next minute, and the monthly allowance is not charged. - code: rate_limited status: 429 meaning: A rate limit was reached, reported without the plan detail. - code: free_tier_exhausted status: 429 meaning: A keyless request has used up its trial allowance. - code: internal_error status: 500 meaning: The request failed inside our service. Retry with exponential backoff. - code: compute_saturated status: 503 meaning: Heavy calculations are briefly at capacity. Send the same request again after Retry-After seconds. - code: error status: null meaning: A fallback for a status with no more specific code. The status and the error field carry the signal. contact: name: RoxyAPI Support url: https://roxyapi.com/contact license: name: Proprietary url: https://roxyapi.com/policy/terms servers: - url: https://roxyapi.com/api/v2 description: Production API v2 security: - apiKey: [] tags: - name: Mesoamerican Astrology description: 'Calculate Mayan astrology day signs, the Tzolkin sacred round, the Haab year, the full Long Count and the Aztec tonalpohualli from any date: day sign and coefficient, trecena, Calendar Round, Lord of the Night, Year Bearer and the five point Cruz Maya, each with a composed reading.' paths: /mesoamerican-astrology/mayan/tzolkin: post: operationId: calculateTzolkin tags: - Mesoamerican Astrology summary: Mayan day sign for a date - Tzolkin calculator API description: 'Mayan astrology day sign calculator: returns the Tzolkin day sign, the coefficient 1 to 13 and the trecena for any Gregorian date, under the correlation living daykeepers use, with a composed nawal reading. Built for Mayan zodiac apps, daily energy feeds and AI agents answering what is my Mayan sign. Classical Maya count only, with the correlation echoed on every response so a saved reading stays reproducible.' security: - apiKey: [] parameters: - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query requestBody: required: true content: application/json: schema: type: object properties: date: type: string format: date example: '2012-12-21' description: Date in YYYY-MM-DD format, in the PROLEPTIC GREGORIAN calendar, extended backwards unchanged through the 1582 reform. Years 1 to 4000 are accepted. A reference converter that switches to the Julian calendar below the reform will disagree with a date before 15 October 1582 by ten or eleven days; that is a difference of input convention rather than of arithmetic, and passing the Julian equivalent to such a tool reproduces these values exactly. A single-digit month or day is accepted and zero padded. correlation: type: string enum: - gmt-584283 - martinez-hernandez-584281 - astronomical-584285 - martin-skidmore-584286 default: gmt-584283 example: gmt-584283 description: 'Which correlation constant ties the day count to a civil date. This is the single choice that shifts every value in the response, so it is a parameter rather than a hidden default, and the resolved value comes back under conventions. "gmt-584283" is the commonly accepted constant and the default, and it is the one the major institutional converter runs on. "martinez-hernandez-584281" sits two days earlier, "astronomical-584285" two days later, and "martin-skidmore-584286" three days later, each shifting the Long Count by exactly its difference in days. Four of the eight published constants are offered: the other four sit tens of thousands of days away and are of historical interest only. The 584281 constant is the Martínez Hernández correlation, after Juan Martínez Hernández.' required: - date responses: '200': description: The Tzolkin day for this date. content: application/json: schema: type: object properties: daySign: type: string example: ajaw description: Machine identifier of the Tzolkin day sign, always lowercase ASCII Yucatec whatever the lang parameter says, so it stays safe to compare against in code. The twenty ids run imix, ik, akbal, kan, chikchan, kimi, manik, lamat, muluk, ok, chuwen, eb, ben, ix, men, kib, kaban, etznab, kawak, ajaw. daySignName: type: string example: Ajaw description: Display name of the day sign in the standard Maya orthography, where the ejective is written with a modifier letter rather than a typewriter quote. A proper noun carried as data, so it is identical under every lang. daySignClassic: type: string example: Ahau description: The sixteenth century Yucatec spelling of the same sign, which is the form most printed reference tables and older sources use. Useful for matching a name a reader copied out of a book. daySignKiche: type: string example: AJPUʼ description: The Kʼicheʼ name of the same day from the living highland daykeeping tradition, which is the vocabulary a nawal reading in Guatemala uses. A parallel naming tradition rather than a translation, so it is identical under every lang. number: type: number example: 4 description: The Tzolkin coefficient, 1 to 13. This is the classical day number that runs alongside the twenty signs; it is not a rank and a 13 is not better than a 1. Nine of the thirteen carry a recorded character, which is returned separately. trecena: type: object properties: number: type: number example: 20 description: Which of the twenty thirteen day periods this day falls in, 1 to 20. Trecena 1 opens on 1 Imix. dayOfTrecena: type: number example: 4 description: Position of this day inside its trecena, 1 to 13. Always equal to the coefficient, because a trecena is exactly one run of the coefficient. rulingSign: type: string example: kawak description: Machine identifier of the day sign the trecena opens on, which the tradition reads as colouring all thirteen of its days. rulingSignName: type: string example: Kawak description: Display name of the sign the trecena opens on. A proper noun carried as data. required: - number - dayOfTrecena - rulingSign - rulingSignName description: The thirteen day period this day belongs to. The trecena is the unit a daykeeper reads a run of days in, and the sign it opens on is what gives the whole period its character. date: type: string example: '2012-12-21' description: Echo of the date the day was resolved from, in proleptic Gregorian. reading: type: object properties: keynote: type: string example: The nawal Ajaw, called AJPUʼ in the highland daykeeping tradition, is the sun at its height, the completed day and the authority that comes with finishing. The sign itself is read as lord, ruler, sun. description: 'The sign in one composed sentence: its name in both naming traditions, what it is about, and the glyph reading behind it. Composed per request from the sign components rather than stored whole, which is why it stays consistent with every other reading in the response.' numberReading: type: string example: The coefficient 4 has no character recorded for it in the sources this API is built on, so no reading is offered for the number alone. The sign carries the day. description: What the coefficient contributes. Nine of the thirteen carry a recorded character, banded as gentle, indifferent or violent; the other four carry none and this field says so rather than inventing one. The band ids are the source vocabulary, so violent names the days reserved for strong ceremony and defence and is not a warning. numberBand: type: string example: gentle description: 'Machine identifier of the recorded character of the coefficient: gentle, indifferent or violent. ABSENT for coefficients 4, 5, 6 and 10, which have no recorded character in any consulted source. Always English so it stays safe to switch on.' strengths: type: array items: type: string example: - Finishes what was started and lets the result be seen description: What the sign does well, as full sentences rather than keywords. challenges: type: array items: type: string example: - Needs the light on it and dims when the light moves description: Where the same temperament costs the sign something. Each one is the shadow of a strength above rather than an unrelated flaw. guidance: type: string example: Give the credit away once today. A sun that shines only on itself lights nothing. description: The one thing worth doing differently under this sign. required: - keynote - numberReading - strengths - challenges - guidance description: 'The composed nawal reading for this day: the sign, what the coefficient contributes, and what the sign does well and badly.' conventions: type: object properties: correlation: type: string example: gmt-584283 description: 'The correlation constant actually applied, whether it was requested or defaulted. Store this beside any Maya date you persist: the same civil date resolves to a different Long Count under each constant, and a date with no correlation recorded cannot be reproduced.' required: - correlation description: The conventions this answer was computed under, echoed so the result is self describing. Only the correlation is echoed here, because it is the only switch this route takes. required: - daySign - daySignName - daySignClassic - daySignKiche - number - trecena - date - reading - conventions '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url /mesoamerican-astrology/mayan/chart: post: operationId: generateMayanChart tags: - Mesoamerican Astrology summary: Generate a Mayan chart - Tzolkin, Haab and Long Count calculator API description: 'Mayan astrology birth chart from one date: the Tzolkin day sign and coefficient, the Haab date, the full Long Count with its day count, the Calendar Round, the Lord of the Night, the Year Bearer of the Haab year and the five point Cruz Maya, each with composed readings. Built for nawal readings, birth chart features and multi domain spiritual apps that show a Mayan card beside a natal chart. Every school split in the domain is a typed parameter and comes back echoed, so the chart can be reproduced exactly.' security: - apiKey: [] parameters: - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query requestBody: required: true content: application/json: schema: type: object properties: date: type: string format: date example: '2012-12-21' description: Date in YYYY-MM-DD format, in the PROLEPTIC GREGORIAN calendar, extended backwards unchanged through the 1582 reform. Years 1 to 4000 are accepted. A reference converter that switches to the Julian calendar below the reform will disagree with a date before 15 October 1582 by ten or eleven days; that is a difference of input convention rather than of arithmetic, and passing the Julian equivalent to such a tool reproduces these values exactly. A single-digit month or day is accepted and zero padded. correlation: type: string enum: - gmt-584283 - martinez-hernandez-584281 - astronomical-584285 - martin-skidmore-584286 default: gmt-584283 example: gmt-584283 description: 'Which correlation constant ties the day count to a civil date. This is the single choice that shifts every value in the response, so it is a parameter rather than a hidden default, and the resolved value comes back under conventions. "gmt-584283" is the commonly accepted constant and the default, and it is the one the major institutional converter runs on. "martinez-hernandez-584281" sits two days earlier, "astronomical-584285" two days later, and "martin-skidmore-584286" three days later, each shifting the Long Count by exactly its difference in days. Four of the eight published constants are offered: the other four sit tens of thousands of days away and are of historical interest only. The 584281 constant is the Martínez Hernández correlation, after Juan Martínez Hernández.' yearBearerSystem: type: string enum: - classic - campeche - colonial-yucatec default: classic example: classic description: Which Haab day is read as the start of the year when naming its Year Bearer. Only four of the twenty day signs can ever carry a year, and which four depends entirely on this choice, so the three schools never agree. "classic" reads the seating of Pop and is the default, because it is the set highland daykeepers still use; its four bearers are Ikʼ, Manikʼ, Ebʼ and Kabʼan. "campeche" reads 1 Pop and gives Akʼbʼal, Lamat, Bʼen and Etzʼnabʼ. "colonial-yucatec" reads 2 Pop and gives Kʼan, Muluk, Ix and Kawak. The three sets share no member, so a bearer alone tells you which school produced it. required: - date responses: '200': description: The full Maya chart for this date. content: application/json: schema: type: object properties: date: type: string example: '2012-12-21' description: Echo of the date the chart was computed from, in proleptic Gregorian. tzolkin: type: object properties: daySign: type: string example: ajaw description: Machine identifier of the Tzolkin day sign, always lowercase ASCII Yucatec whatever the lang parameter says, so it stays safe to compare against in code. The twenty ids run imix, ik, akbal, kan, chikchan, kimi, manik, lamat, muluk, ok, chuwen, eb, ben, ix, men, kib, kaban, etznab, kawak, ajaw. daySignName: type: string example: Ajaw description: Display name of the day sign in the standard Maya orthography, where the ejective is written with a modifier letter rather than a typewriter quote. A proper noun carried as data, so it is identical under every lang. daySignClassic: type: string example: Ahau description: The sixteenth century Yucatec spelling of the same sign, which is the form most printed reference tables and older sources use. Useful for matching a name a reader copied out of a book. daySignKiche: type: string example: AJPUʼ description: The Kʼicheʼ name of the same day from the living highland daykeeping tradition, which is the vocabulary a nawal reading in Guatemala uses. A parallel naming tradition rather than a translation, so it is identical under every lang. number: type: number example: 4 description: The Tzolkin coefficient, 1 to 13. This is the classical day number that runs alongside the twenty signs; it is not a rank and a 13 is not better than a 1. Nine of the thirteen carry a recorded character, which is returned separately. trecena: type: object properties: number: type: number example: 20 description: Which of the twenty thirteen day periods this day falls in, 1 to 20. Trecena 1 opens on 1 Imix. dayOfTrecena: type: number example: 4 description: Position of this day inside its trecena, 1 to 13. Always equal to the coefficient, because a trecena is exactly one run of the coefficient. rulingSign: type: string example: kawak description: Machine identifier of the day sign the trecena opens on, which the tradition reads as colouring all thirteen of its days. rulingSignName: type: string example: Kawak description: Display name of the sign the trecena opens on. A proper noun carried as data. required: - number - dayOfTrecena - rulingSign - rulingSignName description: The thirteen day period this day belongs to. The trecena is the unit a daykeeper reads a run of days in, and the sign it opens on is what gives the whole period its character. reading: type: object properties: keynote: type: string example: The nawal Ajaw, called AJPUʼ in the highland daykeeping tradition, is the sun at its height, the completed day and the authority that comes with finishing. The sign itself is read as lord, ruler, sun. description: 'The sign in one composed sentence: its name in both naming traditions, what it is about, and the glyph reading behind it. Composed per request from the sign components rather than stored whole, which is why it stays consistent with every other reading in the response.' numberReading: type: string example: The coefficient 4 has no character recorded for it in the sources this API is built on, so no reading is offered for the number alone. The sign carries the day. description: What the coefficient contributes. Nine of the thirteen carry a recorded character, banded as gentle, indifferent or violent; the other four carry none and this field says so rather than inventing one. The band ids are the source vocabulary, so violent names the days reserved for strong ceremony and defence and is not a warning. numberBand: type: string example: gentle description: 'Machine identifier of the recorded character of the coefficient: gentle, indifferent or violent. ABSENT for coefficients 4, 5, 6 and 10, which have no recorded character in any consulted source. Always English so it stays safe to switch on.' strengths: type: array items: type: string example: - Finishes what was started and lets the result be seen description: What the sign does well, as full sentences rather than keywords. challenges: type: array items: type: string example: - Needs the light on it and dims when the light moves description: Where the same temperament costs the sign something. Each one is the shadow of a strength above rather than an unrelated flaw. guidance: type: string example: Give the credit away once today. A sun that shines only on itself lights nothing. description: The one thing worth doing differently under this sign. required: - keynote - numberReading - strengths - challenges - guidance description: The composed nawal reading for the Tzolkin day. required: - daySign - daySignName - daySignClassic - daySignKiche - number - trecena - reading description: 'The 260 day sacred round: the day sign, its coefficient and the trecena it falls in. This is the cycle a nawal reading is built on.' haab: type: object properties: month: type: string example: kankin description: Machine identifier of the Haab period, always lowercase ASCII. The nineteen ids run pop, wo, sip, sotz, sek, xul, yaxkin, mol, chen, yax, sak, keh, mak, kankin, muwan, pax, kayab, kumku, wayeb. monthName: type: string example: Kʼankʼin description: Display name of the Haab period in the standard orthography. A proper noun carried as data, so it is identical under every lang. monthClassic: type: string example: Kankin description: The sixteenth century Yucatec spelling of the same period, which is the form most printed tables use. day: type: number example: 3 description: Day inside the period, 0 to 19, or 0 to 4 in Wayebʼ. Day 0 is a real date and is called the seating of the period, so a Haab month has no day 20. Numbering from 1 instead is the usual way to be one day wrong on every Haab date. dayOfYear: type: number example: 263 description: Day of the 365 day Haab year, 0 to 364. The Haab has no leap day at all, so it drifts against the solar year by about a day every four years and there is nothing to correct. reading: type: string example: 'The Haab date is 3 Kʼankʼin, inside a period read this way: The yellow sun, ripening light, where the year turns toward its harvest.' description: Composed reading of the Haab date, which reads differently on the seating day of a period. required: - month - monthName - monthClassic - day - dayOfYear - reading description: 'The 365 day vague year: eighteen periods of twenty days plus the five days of Wayebʼ. This is the agricultural year the Tzolkin runs against.' longCount: type: object properties: formatted: type: string example: 13.0.0.0.0 description: The dotted Long Count, most significant position first. This is the spelling every reference converter and every inscription uses. baktun: type: number example: 13 description: Baktun, the highest of the five positions. One baktun is 144,000 days. katun: type: number example: 0 description: Katun, 0 to 19. One katun is 7,200 days, roughly twenty years. tun: type: number example: 0 description: Tun, 0 to 19. One tun is 360 days, which is why this position sits roughly a year apart. winal: type: number example: 0 description: 'Winal, 0 to 17 and never 19. This is the one position that is not base twenty: eighteen winal make a tun, which is what keeps the tun near a solar year.' kin: type: number example: 0 description: Kin, 0 to 19. One kin is one day. daysSinceEpoch: type: number example: 1872000 description: The whole Long Count as a single integer count of days from the epoch. Subtracting two of these is the correct way to measure an interval, and it is the number the Tzolkin, the Haab and the night lord are all derived from. julianDayNumber: type: number example: 2456283 description: Julian Day Number of the same day, which is the bridge between this count and any other calendar. Adding the correlation constant to daysSinceEpoch gives exactly this. required: - formatted - baktun - katun - tun - winal - kin - daysSinceEpoch - julianDayNumber description: The linear day count from the mythological start of the era, written in five positions. Unlike the two round calendars this one never repeats, which is what lets an inscription name an absolute date. calendarRound: type: string example: 4 Ajaw 3 Kʼankʼin description: The Tzolkin and Haab dates written together, which is how a Classic inscription names a day. The pair repeats every 18,980 days, a little under 52 years, so a Calendar Round alone is ambiguous beyond one lifetime and the Long Count is what disambiguates it. lordOfNight: type: object properties: label: type: string example: G9 description: Which of the nine Lords of the Night governs this day, G1 to G9. The cycle steps forward one per day and closes every nine. reading: type: string example: The night belongs to G9 of the nine, a cycle that turns one step every day and closes every nine. The Maya names for the nine were never recorded, so the cycle is published by its glyph labels alone. description: One line on the night lord, including why the nine carry labels rather than names. required: - label - reading description: The nine day cycle that runs beside the other three. The nine are identified and the cycle is unambiguous, but no source records what the Maya called them, so this API publishes the labels rather than borrowing names from a neighbouring culture. yearBearer: type: object properties: daySign: type: string example: kaban description: Machine identifier of the day sign carrying the Haab year this date falls in. Only four of the twenty can ever carry a year, and which four depends on the school. daySignName: type: string example: Kabʼan description: Display name of the bearing sign. A proper noun carried as data. number: type: number example: 5 description: Coefficient of the bearing day, 1 to 13. The coefficient advances by one each Haab year, which is what makes the bearer and the number together repeat only every 52 years. reading: type: string example: The Haab year is carried by 5 Kabʼan, read at the seating of Pop. This is the Classic set, and it is the one highland daykeepers still run today. description: One line on the year bearer that names the school it was read under, because the three schools name three different bearers for the same year. required: - daySign - daySignName - number - reading description: The Tzolkin day that names the Haab year this date falls in, under the requested school. cross: type: array items: type: object properties: position: type: string example: conception description: 'Which point of the cross this is: center, conception, destiny, left or right. Always English so it stays safe to switch on. The arms are published as left and right and carry no gender, because the sources that agree on the SIGNS disagree on which arm is masculine and which feminine.' offsetDays: type: number example: -8 description: Days from the birth day to this arm. Negative is before the birth day. Conception is minus eight, destiny plus eight, the left arm plus six and the right arm minus six. daySign: type: string example: chikchan description: Machine identifier of the day sign standing at this point. daySignName: type: string example: Chikchan description: Display name of the sign at this point. A proper noun carried as data. daySignKiche: type: string example: KAN description: Kʼicheʼ name of the same sign, which is the vocabulary a cross is normally read in. number: type: number example: 9 description: Coefficient of the day at this point, 1 to 13. reading: type: string example: The conception arm, eight days before the birth day, is 9 Chikchan. It is read as the root the life is drawn from. description: One line on what this point of the cross is read as. required: - position - offsetDays - daySign - daySignName - daySignKiche - number - reading description: 'The Cruz Maya, the five point nawal cross, with source convention. This is a LIVING DAYKEEPER PRACTICE rather than an archaeological reconstruction: no academic source describes a five point cross, and the day offsets here were measured against two independent practitioner calculators that agree. It is published because practitioners use it, and it is labelled because that is what honesty about a source looks like.' summary: type: string example: This day is 4 Ajaw 3 Kʼankʼin, Long Count 13.0.0.0.0. The nawal is Ajaw, the sun at its height, the completed day and the authority that comes with finishing, carried on the coefficient 4. description: One composed sentence placing the day in all three calendars, for a card headline or a chat reply. conventions: type: object properties: correlation: type: string example: gmt-584283 description: 'The correlation constant actually applied, whether it was requested or defaulted. Store this beside any Maya date you persist: the same civil date resolves to a different Long Count under each constant, and a date with no correlation recorded cannot be reproduced.' yearBearerSystem: type: string example: classic description: The Year Bearer school actually applied. The three schools name three different bearers for the same Haab year, so a bearer stored without this value cannot be checked against anything. required: - correlation - yearBearerSystem description: The conventions this chart was computed under, echoed so the result is self describing. Store both beside any chart you persist. required: - date - tzolkin - haab - longCount - calendarRound - lordOfNight - yearBearer - cross - summary - conventions '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url /mesoamerican-astrology/mayan/long-count/convert: post: operationId: convertLongCount tags: - Mesoamerican Astrology summary: Convert a Maya Long Count - Long Count calendar converter API description: 'Maya Long Count converter that runs both ways: give it a Gregorian date and it returns the Long Count, give it a dotted Long Count and it returns the date. Every answer carries the Julian Day Number, the elapsed day count and the Calendar Round, and the correlation constant is a typed parameter so a value can be matched against any published inscription reading. Built for epigraphy tools, museum and education apps, and anything that has to place a Maya date on a civil calendar.' security: - apiKey: [] parameters: - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query requestBody: required: true content: application/json: schema: type: object properties: date: type: string format: date example: '2012-12-21' description: Proleptic Gregorian date to convert INTO a Long Count. Supply this or longCount, never both and never neither. longCount: type: string maxLength: 32 example: 13.0.0.0.0 description: Dotted Long Count to convert INTO a date, written baktun.katun.tun.winal.kin. Each position is bounded by its own base, and the winal counts to 17 rather than to 19 because eighteen winal make a tun, so 9.12.11.18.0 is rejected as a date that does not exist. Supply this or date, never both and never neither. correlation: type: string enum: - gmt-584283 - martinez-hernandez-584281 - astronomical-584285 - martin-skidmore-584286 default: gmt-584283 example: gmt-584283 description: 'Which correlation constant ties the day count to a civil date. This is the single choice that shifts every value in the response, so it is a parameter rather than a hidden default, and the resolved value comes back under conventions. "gmt-584283" is the commonly accepted constant and the default, and it is the one the major institutional converter runs on. "martinez-hernandez-584281" sits two days earlier, "astronomical-584285" two days later, and "martin-skidmore-584286" three days later, each shifting the Long Count by exactly its difference in days. Four of the eight published constants are offered: the other four sit tens of thousands of days away and are of historical interest only. The 584281 constant is the Martínez Hernández correlation, after Juan Martínez Hernández.' example: date: '2012-12-21' description: What to convert, and under which correlation. Exactly one of date and longCount is present, which is why the whole body carries one example rather than leaving the per field ones to be read together. responses: '200': description: The converted date. content: application/json: schema: type: object properties: date: type: string example: '2012-12-21' description: The proleptic Gregorian date, echoed when it was the input and computed when the Long Count was. longCount: type: string example: 13.0.0.0.0 description: The dotted Long Count, echoed when it was the input and computed when the date was. daysSinceEpoch: type: number example: 1872000 description: The Long Count as one integer count of days from the epoch. Subtracting two of these is the correct way to measure an interval between two Maya dates. julianDayNumber: type: number example: 2456283 description: Julian Day Number of the same day, which is the bridge to any other calendar. It is exactly daysSinceEpoch plus the correlation constant. calendarRound: type: string example: 4 Ajaw 3 Kʼankʼin description: The Tzolkin and Haab dates written together, which is how an inscription names a day. The pair repeats every 18,980 days, so it is ambiguous beyond about 52 years and the Long Count is what fixes it. lordOfNight: type: string example: G9 description: Which of the nine Lords of the Night governs the day, G1 to G9. The nine carry glyph labels rather than names because no source records what the Maya called them. note: type: string example: This date precedes the Gregorian reform of 15 October 1582. Dates are read as proleptic Gregorian throughout, so a converter that switches to the Julian calendar below the reform will disagree by ten or eleven days on the same input. description: Present ONLY for a date before the Gregorian reform, where the input convention is the usual reason two converters disagree. Absent otherwise, so its presence is itself the signal. conventions: type: object properties: correlation: type: string example: gmt-584283 description: 'The correlation constant actually applied, whether it was requested or defaulted. Store this beside any Maya date you persist: the same civil date resolves to a different Long Count under each constant, and a date with no correlation recorded cannot be reproduced.' required: - correlation description: The conventions this conversion was computed under, echoed so the result is self describing. required: - date - longCount - daysSinceEpoch - julianDayNumber - calendarRound - lordOfNight - conventions '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url /mesoamerican-astrology/mayan/daily: get: operationId: getDailyMayanReading tags: - Mesoamerican Astrology summary: Daily Mayan energy reading - Tzolkin day sign of the day API description: 'Mayan energy of the day: the Tzolkin day sign, its coefficient and its trecena for today or for any date you name, with a composed reading. Content is fixed for a given date and rolls over at midnight UTC, so a daily feed can cache it safely and an editorial calendar can be filled weeks ahead. Built for daily energy widgets, nawal of the day feeds and chatbot answers about what today carries.' security: - apiKey: [] parameters: - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query - schema: type: string format: date example: '2026-09-02' description: Date in YYYY-MM-DD format, in the PROLEPTIC GREGORIAN calendar, extended backwards unchanged through the 1582 reform. Years 1 to 4000 are accepted. A reference converter that switches to the Julian calendar below the reform will disagree with a date before 15 October 1582 by ten or eleven days; that is a difference of input convention rather than of arithmetic, and passing the Julian equivalent to such a tool reproduces these values exactly. A single-digit month or day is accepted and zero padded. Defaults to the current day in UTC. required: false description: Date in YYYY-MM-DD format, in the PROLEPTIC GREGORIAN calendar, extended backwards unchanged through the 1582 reform. Years 1 to 4000 are accepted. A reference converter that switches to the Julian calendar below the reform will disagree with a date before 15 October 1582 by ten or eleven days; that is a difference of input convention rather than of arithmetic, and passing the Julian equivalent to such a tool reproduces these values exactly. A single-digit month or day is accepted and zero padded. Defaults to the current day in UTC. name: date in: query - schema: type: string enum: - gmt-584283 - martinez-hernandez-584281 - astronomical-584285 - martin-skidmore-584286 default: gmt-584283 example: gmt-584283 description: 'Which correlation constant ties the day count to a civil date. This is the single choice that shifts every value in the response, so it is a parameter rather than a hidden default, and the resolved value comes back under conventions. "gmt-584283" is the commonly accepted constant and the default, and it is the one the major institutional converter runs on. "martinez-hernandez-584281" sits two days earlier, "astronomical-584285" two days later, and "martin-skidmore-584286" three days later, each shifting the Long Count by exactly its difference in days. Four of the eight published constants are offered: the other four sit tens of thousands of days away and are of historical interest only. The 584281 constant is the Martínez Hernández correlation, after Juan Martínez Hernández.' required: false description: 'Which correlation constant ties the day count to a civil date. This is the single choice that shifts every value in the response, so it is a parameter rather than a hidden default, and the resolved value comes back under conventions. "gmt-584283" is the commonly accepted constant and the default, and it is the one the major institutional converter runs on. "martinez-hernandez-584281" sits two days earlier, "astronomical-584285" two days later, and "martin-skidmore-584286" three days later, each shifting the Long Count by exactly its difference in days. Four of the eight published constants are offered: the other four sit tens of thousands of days away and are of historical interest only. The 584281 constant is the Martínez Hernández correlation, after Juan Martínez Hernández.' name: correlation in: query responses: '200': description: The Tzolkin reading for this day. content: application/json: schema: type: object properties: daySign: type: string example: ajaw description: Machine identifier of the Tzolkin day sign, always lowercase ASCII Yucatec whatever the lang parameter says, so it stays safe to compare against in code. The twenty ids run imix, ik, akbal, kan, chikchan, kimi, manik, lamat, muluk, ok, chuwen, eb, ben, ix, men, kib, kaban, etznab, kawak, ajaw. daySignName: type: string example: Ajaw description: Display name of the day sign in the standard Maya orthography, where the ejective is written with a modifier letter rather than a typewriter quote. A proper noun carried as data, so it is identical under every lang. daySignClassic: type: string example: Ahau description: The sixteenth century Yucatec spelling of the same sign, which is the form most printed reference tables and older sources use. Useful for matching a name a reader copied out of a book. daySignKiche: type: string example: AJPUʼ description: The Kʼicheʼ name of the same day from the living highland daykeeping tradition, which is the vocabulary a nawal reading in Guatemala uses. A parallel naming tradition rather than a translation, so it is identical under every lang. number: type: number example: 4 description: The Tzolkin coefficient, 1 to 13. This is the classical day number that runs alongside the twenty signs; it is not a rank and a 13 is not better than a 1. Nine of the thirteen carry a recorded character, which is returned separately. trecena: type: object properties: number: type: number example: 20 description: Which of the twenty thirteen day periods this day falls in, 1 to 20. Trecena 1 opens on 1 Imix. dayOfTrecena: type: number example: 4 description: Position of this day inside its trecena, 1 to 13. Always equal to the coefficient, because a trecena is exactly one run of the coefficient. rulingSign: type: string example: kawak description: Machine identifier of the day sign the trecena opens on, which the tradition reads as colouring all thirteen of its days. rulingSignName: type: string example: Kawak description: Display name of the sign the trecena opens on. A proper noun carried as data. required: - number - dayOfTrecena - rulingSign - rulingSignName description: The thirteen day period this day belongs to. The trecena is the unit a daykeeper reads a run of days in, and the sign it opens on is what gives the whole period its character. date: type: string example: '2026-09-02' description: Date of this reading. Echoes the date requested, or the current day in UTC when it was omitted. overview: type: string example: Today is 2 Akʼbʼal, day 2 of the trecena that opened on 1 Ikʼ. The day is coloured by the dark hour before first light, where a thing is decided but not yet visible. description: What the day carries, placing it inside its trecena as well as naming it. Composed per request, so it stays consistent with the reading below rather than being a second opinion. reading: type: object properties: keynote: type: string example: The nawal Ajaw, called AJPUʼ in the highland daykeeping tradition, is the sun at its height, the completed day and the authority that comes with finishing. The sign itself is read as lord, ruler, sun. description: 'The sign in one composed sentence: its name in both naming traditions, what it is about, and the glyph reading behind it. Composed per request from the sign components rather than stored whole, which is why it stays consistent with every other reading in the response.' numberReading: type: string example: The coefficient 4 has no character recorded for it in the sources this API is built on, so no reading is offered for the number alone. The sign carries the day. description: What the coefficient contributes. Nine of the thirteen carry a recorded character, banded as gentle, indifferent or violent; the other four carry none and this field says so rather than inventing one. The band ids are the source vocabulary, so violent names the days reserved for strong ceremony and defence and is not a warning. numberBand: type: string example: gentle description: 'Machine identifier of the recorded character of the coefficient: gentle, indifferent or violent. ABSENT for coefficients 4, 5, 6 and 10, which have no recorded character in any consulted source. Always English so it stays safe to switch on.' strengths: type: array items: type: string example: - Finishes what was started and lets the result be seen description: What the sign does well, as full sentences rather than keywords. challenges: type: array items: type: string example: - Needs the light on it and dims when the light moves description: Where the same temperament costs the sign something. Each one is the shadow of a strength above rather than an unrelated flaw. guidance: type: string example: Give the credit away once today. A sun that shines only on itself lights nothing. description: The one thing worth doing differently under this sign. required: - keynote - numberReading - strengths - challenges - guidance description: The composed nawal reading for the day sign in force. conventions: type: object properties: correlation: type: string example: gmt-584283 description: 'The correlation constant actually applied, whether it was requested or defaulted. Store this beside any Maya date you persist: the same civil date resolves to a different Long Count under each constant, and a date with no correlation recorded cannot be reproduced.' required: - correlation description: The conventions this reading was computed under, echoed so the result is self describing. required: - daySign - daySignName - daySignClassic - daySignKiche - number - trecena - date - overview - reading - conventions '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url /mesoamerican-astrology/mayan/calendar/monthly: get: operationId: getMonthlyTzolkinCalendar tags: - Mesoamerican Astrology summary: Monthly Tzolkin calendar grid - Maya calendar month API description: 'Mayan calendar grid for a whole civil month: every day of the month with its Tzolkin day sign and coefficient, its trecena, its Haab date and its Long Count. One call fills a monthly grid that would otherwise take a request per day, and the answer is fixed for any month that has already begun. Built for calendar widgets, editorial planners and any app that shows a month of Maya dates at once.' security: - apiKey: [] parameters: - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query - schema: type: integer minimum: 1900 maximum: 2100 example: 2026 description: Gregorian year of the grid, 1900 to 2100. Defaults to the current year in UTC. Wider historical ranges are available on the single date routes, which are not bounded to this window. required: false description: Gregorian year of the grid, 1900 to 2100. Defaults to the current year in UTC. Wider historical ranges are available on the single date routes, which are not bounded to this window. name: year in: query - schema: type: integer minimum: 1 maximum: 12 example: 9 description: Calendar month of the grid, 1 to 12. Defaults to the current month in UTC. required: false description: Calendar month of the grid, 1 to 12. Defaults to the current month in UTC. name: month in: query - schema: type: string enum: - gmt-584283 - martinez-hernandez-584281 - astronomical-584285 - martin-skidmore-584286 default: gmt-584283 example: gmt-584283 description: 'Which correlation constant ties the day count to a civil date. This is the single choice that shifts every value in the response, so it is a parameter rather than a hidden default, and the resolved value comes back under conventions. "gmt-584283" is the commonly accepted constant and the default, and it is the one the major institutional converter runs on. "martinez-hernandez-584281" sits two days earlier, "astronomical-584285" two days later, and "martin-skidmore-584286" three days later, each shifting the Long Count by exactly its difference in days. Four of the eight published constants are offered: the other four sit tens of thousands of days away and are of historical interest only. The 584281 constant is the Martínez Hernández correlation, after Juan Martínez Hernández.' required: false description: 'Which correlation constant ties the day count to a civil date. This is the single choice that shifts every value in the response, so it is a parameter rather than a hidden default, and the resolved value comes back under conventions. "gmt-584283" is the commonly accepted constant and the default, and it is the one the major institutional converter runs on. "martinez-hernandez-584281" sits two days earlier, "astronomical-584285" two days later, and "martin-skidmore-584286" three days later, each shifting the Long Count by exactly its difference in days. Four of the eight published constants are offered: the other four sit tens of thousands of days away and are of historical interest only. The 584281 constant is the Martínez Hernández correlation, after Juan Martínez Hernández.' name: correlation in: query responses: '200': description: Every day of the month with its Maya date. content: application/json: schema: type: object properties: year: type: number example: 2026 description: Year of the grid, echoed or defaulted to the current year in UTC. month: type: number example: 9 description: Month of the grid, echoed or defaulted to the current month in UTC. total: type: number example: 30 description: Number of days in the grid, which is the length of the civil month. Every day of the month appears exactly once and none is repeated. days: type: array items: type: object properties: date: type: string example: '2026-09-02' description: Calendar date of this row, in proleptic Gregorian. daySign: type: string example: akbal description: Machine identifier of the Tzolkin day sign, always lowercase ASCII Yucatec, so it stays safe to compare against in code. daySignName: type: string example: Akʼbʼal description: Display name of the day sign. A proper noun carried as data, identical under every lang. number: type: number example: 2 description: The Tzolkin coefficient for this day, 1 to 13. trecena: type: number example: 18 description: Which of the twenty thirteen day periods this day falls in, 1 to 20. Consecutive rows share a trecena until the period turns. haab: type: string example: 16 Mol description: The Haab date, written as the day inside its period followed by the period name. Day 0 is the seating of a period and is a real date. longCount: type: string example: 13.0.13.16.3 description: The dotted Long Count for this day. Consecutive rows differ by exactly one kin. required: - date - daySign - daySignName - number - trecena - haab - longCount description: The days of the month in calendar order, one row per day. Every date in the month is present exactly once, which is what makes this safe to render straight into a grid. conventions: type: object properties: correlation: type: string example: gmt-584283 description: 'The correlation constant actually applied, whether it was requested or defaulted. Store this beside any Maya date you persist: the same civil date resolves to a different Long Count under each constant, and a date with no correlation recorded cannot be reproduced.' required: - correlation description: The conventions this grid was computed under, echoed so the result is self describing. required: - year - month - total - days - conventions '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url /mesoamerican-astrology/mayan/compatibility: post: operationId: calculateMayanCompatibility tags: - Mesoamerican Astrology summary: Mayan nawal compatibility - Tzolkin pair analysis API description: 'Mayan compatibility between two birth dates, published as its parts rather than as a verdict: both nawals with their coefficients and trecenas, the five structural ties the pair either has or does not, the weight each tie carries, and a composite score built from them. Built for matchmaking features, relationship reports and compatibility widgets that need to show their working. The scoring weights are stated on every response so a caller can re-derive the number or replace it.' security: - apiKey: [] parameters: - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query requestBody: required: true content: application/json: schema: type: object properties: personA: type: object properties: date: type: string format: date example: '2012-12-21' description: Date in YYYY-MM-DD format, in the PROLEPTIC GREGORIAN calendar, extended backwards unchanged through the 1582 reform. Years 1 to 4000 are accepted. A reference converter that switches to the Julian calendar below the reform will disagree with a date before 15 October 1582 by ten or eleven days; that is a difference of input convention rather than of arithmetic, and passing the Julian equivalent to such a tool reproduces these values exactly. A single-digit month or day is accepted and zero padded. required: - date description: 'The first person, by birth date. Only a date is needed: the Tzolkin is a day count, so no time, timezone or place changes the answer.' personB: type: object properties: date: type: string format: date example: '2012-12-21' description: Date in YYYY-MM-DD format, in the PROLEPTIC GREGORIAN calendar, extended backwards unchanged through the 1582 reform. Years 1 to 4000 are accepted. A reference converter that switches to the Julian calendar below the reform will disagree with a date before 15 October 1582 by ten or eleven days; that is a difference of input convention rather than of arithmetic, and passing the Julian equivalent to such a tool reproduces these values exactly. A single-digit month or day is accepted and zero padded. required: - date description: The second person, by birth date. The comparison is symmetric except for the cross tie, which is checked in both directions. correlation: type: string enum: - gmt-584283 - martinez-hernandez-584281 - astronomical-584285 - martin-skidmore-584286 default: gmt-584283 example: gmt-584283 description: 'Which correlation constant ties the day count to a civil date. This is the single choice that shifts every value in the response, so it is a parameter rather than a hidden default, and the resolved value comes back under conventions. "gmt-584283" is the commonly accepted constant and the default, and it is the one the major institutional converter runs on. "martinez-hernandez-584281" sits two days earlier, "astronomical-584285" two days later, and "martin-skidmore-584286" three days later, each shifting the Long Count by exactly its difference in days. Four of the eight published constants are offered: the other four sit tens of thousands of days away and are of historical interest only. The 584281 constant is the Martínez Hernández correlation, after Juan Martínez Hernández.' directionScheme: type: string enum: - madrid-codex - landa default: madrid-codex example: madrid-codex description: Which reading of the world direction and colour to serve for a day sign. The two published assignments differ by exactly one quarter turn on all twenty signs, so neither is a rounding of the other and a silent pick would be a school choice. "madrid-codex" is the codex reading and the default; "landa" is the sixteenth century assignment recorded beside it. required: - personA - personB responses: '200': description: The comparison of the two days. content: application/json: schema: type: object properties: personA: type: object properties: daySign: type: string example: ajaw description: Machine identifier of the Tzolkin day sign, always lowercase ASCII Yucatec whatever the lang parameter says, so it stays safe to compare against in code. The twenty ids run imix, ik, akbal, kan, chikchan, kimi, manik, lamat, muluk, ok, chuwen, eb, ben, ix, men, kib, kaban, etznab, kawak, ajaw. daySignName: type: string example: Ajaw description: Display name of the day sign in the standard Maya orthography, where the ejective is written with a modifier letter rather than a typewriter quote. A proper noun carried as data, so it is identical under every lang. daySignClassic: type: string example: Ahau description: The sixteenth century Yucatec spelling of the same sign, which is the form most printed reference tables and older sources use. Useful for matching a name a reader copied out of a book. daySignKiche: type: string example: AJPUʼ description: The Kʼicheʼ name of the same day from the living highland daykeeping tradition, which is the vocabulary a nawal reading in Guatemala uses. A parallel naming tradition rather than a translation, so it is identical under every lang. number: type: number example: 4 description: The Tzolkin coefficient, 1 to 13. This is the classical day number that runs alongside the twenty signs; it is not a rank and a 13 is not better than a 1. Nine of the thirteen carry a recorded character, which is returned separately. trecena: type: object properties: number: type: number example: 20 description: Which of the twenty thirteen day periods this day falls in, 1 to 20. Trecena 1 opens on 1 Imix. dayOfTrecena: type: number example: 4 description: Position of this day inside its trecena, 1 to 13. Always equal to the coefficient, because a trecena is exactly one run of the coefficient. rulingSign: type: string example: kawak description: Machine identifier of the day sign the trecena opens on, which the tradition reads as colouring all thirteen of its days. rulingSignName: type: string example: Kawak description: Display name of the sign the trecena opens on. A proper noun carried as data. required: - number - dayOfTrecena - rulingSign - rulingSignName description: The thirteen day period this day belongs to. The trecena is the unit a daykeeper reads a run of days in, and the sign it opens on is what gives the whole period its character. date: type: string example: '1990-06-15' description: Echo of the first birth date. required: - daySign - daySignName - daySignClassic - daySignKiche - number - trecena - date description: The Tzolkin day the first person was born on. personB: type: object properties: daySign: type: string example: ajaw description: Machine identifier of the Tzolkin day sign, always lowercase ASCII Yucatec whatever the lang parameter says, so it stays safe to compare against in code. The twenty ids run imix, ik, akbal, kan, chikchan, kimi, manik, lamat, muluk, ok, chuwen, eb, ben, ix, men, kib, kaban, etznab, kawak, ajaw. daySignName: type: string example: Ajaw description: Display name of the day sign in the standard Maya orthography, where the ejective is written with a modifier letter rather than a typewriter quote. A proper noun carried as data, so it is identical under every lang. daySignClassic: type: string example: Ahau description: The sixteenth century Yucatec spelling of the same sign, which is the form most printed reference tables and older sources use. Useful for matching a name a reader copied out of a book. daySignKiche: type: string example: AJPUʼ description: The Kʼicheʼ name of the same day from the living highland daykeeping tradition, which is the vocabulary a nawal reading in Guatemala uses. A parallel naming tradition rather than a translation, so it is identical under every lang. number: type: number example: 4 description: The Tzolkin coefficient, 1 to 13. This is the classical day number that runs alongside the twenty signs; it is not a rank and a 13 is not better than a 1. Nine of the thirteen carry a recorded character, which is returned separately. trecena: type: object properties: number: type: number example: 20 description: Which of the twenty thirteen day periods this day falls in, 1 to 20. Trecena 1 opens on 1 Imix. dayOfTrecena: type: number example: 4 description: Position of this day inside its trecena, 1 to 13. Always equal to the coefficient, because a trecena is exactly one run of the coefficient. rulingSign: type: string example: kawak description: Machine identifier of the day sign the trecena opens on, which the tradition reads as colouring all thirteen of its days. rulingSignName: type: string example: Kawak description: Display name of the sign the trecena opens on. A proper noun carried as data. required: - number - dayOfTrecena - rulingSign - rulingSignName description: The thirteen day period this day belongs to. The trecena is the unit a daykeeper reads a run of days in, and the sign it opens on is what gives the whole period its character. date: type: string example: '1988-03-02' description: Echo of the second birth date. required: - daySign - daySignName - daySignClassic - daySignKiche - number - trecena - date description: The Tzolkin day the second person was born on. daysApart: type: number example: 47 description: How far apart the two days sit in the 260 day round, taken the short way round, so the value never exceeds 130. Two people on the same nawal are 0 apart. components: type: array items: type: object properties: id: type: string example: same-trecena description: 'Which tie this row reports: same-sign, same-trecena, same-number, cross-partner or shared-direction. Always English so it stays safe to switch on.' holds: type: boolean example: true description: Whether this tie holds for the pair. Every component is returned whether it holds or not, so a caller can render the misses as well as the hits. weight: type: number example: 20 description: Points this tie contributes to the score when it holds, and nothing when it does not. The weights are published rather than hidden precisely because the weighting is ours rather than traditional. reading: type: string example: Both days fall inside the same trecena, so the two lives are coloured by one ruling sign. description: One line on what this tie means. Present ONLY when the tie holds, so a caller can render the hits without filtering and a miss carries no sentence to explain away. required: - id - holds - weight description: The five structural ties, in a fixed order, each either holding or not. Every one of them is a property of the count itself or of the measured daykeeper cross convention; what is ours is only the decision to weigh them together. score: type: number example: 65 description: A RoxyAPI COMPOSITE, not a traditional rating. No classical source rates a pair of Tzolkin days, so this number is a floor of 45 plus the weight of every tie that holds, capped at 100. The components above are what is sourced; this is what we built out of them, and it is labelled so that nobody cites it as tradition. verdict: type: string example: workable description: 'Coarse band the composite score falls in: excellent, strong, workable or reserved. Built for badges and filters that should not hard code a threshold against a number whose weighting may be tuned.' summary: type: string example: The pair sets Lamat against Ajaw, 47 days apart in the 260 day count. description: One composed sentence naming both nawals and the distance between them, for a headline above the component list. When no tie holds at all it says so, because that is the common case and a blank component list is not self explanatory. conventions: type: object properties: correlation: type: string example: gmt-584283 description: 'The correlation constant actually applied, whether it was requested or defaulted. Store this beside any Maya date you persist: the same civil date resolves to a different Long Count under each constant, and a date with no correlation recorded cannot be reproduced.' directionScheme: type: string example: madrid-codex description: The direction reading actually applied. The two readings sit one quarter turn apart, so a direction stored without this value is ambiguous. required: - correlation - directionScheme description: The conventions this comparison was computed under. The direction scheme is echoed because one of the five ties is read off the world directions, which the two schemes assign differently. required: - personA - personB - daysApart - components - score - verdict - summary - conventions '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url /mesoamerican-astrology/mayan/day-signs: get: operationId: listMayanDaySigns tags: - Mesoamerican Astrology summary: List the 20 Mayan day signs - Tzolkin nawal catalogue API description: Retrieve all twenty Tzolkin day signs in sequence order from Imix to Ajaw. Each entry returns the machine id, the name in the standard orthography, the sixteenth century spelling and the Kʼicheʼ name from the living daykeeping tradition, both published glosses, and the world direction and colour under the requested scheme. Built for nawal pickers, sign reference pages and any app that needs the whole set in one call. security: - apiKey: [] parameters: - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query - schema: type: string enum: - madrid-codex - landa default: madrid-codex example: madrid-codex description: Which reading of the world direction and colour to serve for a day sign. The two published assignments differ by exactly one quarter turn on all twenty signs, so neither is a rounding of the other and a silent pick would be a school choice. "madrid-codex" is the codex reading and the default; "landa" is the sixteenth century assignment recorded beside it. required: false description: Which reading of the world direction and colour to serve for a day sign. The two published assignments differ by exactly one quarter turn on all twenty signs, so neither is a rounding of the other and a silent pick would be a school choice. "madrid-codex" is the codex reading and the default; "landa" is the sixteenth century assignment recorded beside it. name: directionScheme in: query - schema: type: integer minimum: 1 maximum: 20 default: 20 example: 20 description: 'Maximum items to return per page. Range: 1-20, default 20.' required: false description: 'Maximum items to return per page. Range: 1-20, default 20.' name: limit in: query - schema: type: integer minimum: 0 default: 0 example: 0 description: Number of items to skip for pagination. Default 0. required: false description: Number of items to skip for pagination. Default 0. name: offset in: query responses: '200': description: The day sign catalogue. content: application/json: schema: type: object properties: total: type: number example: 20 description: Total signs in the cycle. Always 20; the Tzolkin sign set is closed. limit: type: number example: 20 description: Maximum items returned for this page. offset: type: number example: 0 description: Number of items skipped before this page. daySigns: type: array items: type: object properties: position: type: number example: 1 description: Place in the twenty sign sequence, 1 to 20, counting Imix as 1. The sequence never varies and is what every other cycle in the domain is indexed against. id: type: string example: imix description: Machine identifier of the day sign, always lowercase ASCII Yucatec whatever the lang parameter says, so it stays safe to compare against in code and to use as a path parameter. The twenty ids run imix, ik, akbal, kan, chikchan, kimi, manik, lamat, muluk, ok, chuwen, eb, ben, ix, men, kib, kaban, etznab, kawak, ajaw. nameYucatec: type: string example: Imix description: Display name in the standard Maya orthography, where an ejective is written with a modifier letter rather than a typewriter quote. A proper noun carried as data, identical under every lang. nameClassic: type: string example: Imix description: The sixteenth century Yucatec spelling of the same sign, which is the form most printed reference tables and older books use. nameKiche: type: string example: IMOX description: The Kʼicheʼ name from the living highland daykeeping tradition, which is the vocabulary a nawal reading in Guatemala uses. A parallel naming tradition rather than a translation, so it is identical under every lang. gloss: type: string example: crocodile description: The short day-name association, translated in place because it is a common noun rather than a name. Two published readings of the twenty signs disagree on six of them, so the alternate reading ships beside this one rather than one being resolved away. glossAlternate: type: string example: Naah Kan, the Primordial Snake; the essence of water description: The glyph-table reading of the same sign, translated in place. On the six signs where the two readings disagree this is the one the composed prose follows, so a reading that seems to ignore the gloss above is doing so deliberately. direction: type: string example: north description: 'World direction this sign belongs to under the requested scheme: east, north, west or south. The twenty signs divide evenly into four groups of five, so exactly five signs share each quarter.' color: type: string example: white description: 'Colour paired with the direction: red for east, white for north, black for west, yellow for south. Always English so it stays safe to key a palette off.' required: - position - id - nameYucatec - nameClassic - nameKiche - gloss - glossAlternate - direction - color description: Day signs for the current page, in sequence order. Use /mayan/day-signs/{id} for the full record with the composed reading, strengths, challenges and guidance. conventions: type: object properties: directionScheme: type: string example: madrid-codex description: The direction reading actually applied. The two readings sit one quarter turn apart, so a direction stored without this value is ambiguous. required: - directionScheme description: The conventions this listing was served under. Only the direction scheme applies here, because it is the only field on a catalogue row that a school split moves. required: - total - limit - offset - daySigns - conventions '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url /mesoamerican-astrology/mayan/day-signs/{id}: get: operationId: getMayanDaySign tags: - Mesoamerican Astrology summary: Get one Mayan day sign - Nawal profile API description: 'Retrieve the full profile of one Tzolkin day sign: both naming traditions, both published glosses, the world direction and colour under the requested scheme, a composed keynote, what the sign does well, where the same temperament costs it something, and one line of guidance. Built for nawal detail pages, sign cards and chatbot answers about a single Mayan sign.' security: - apiKey: [] parameters: - schema: type: string enum: - imix - ik - akbal - kan - chikchan - kimi - manik - lamat - muluk - ok - chuwen - eb - ben - ix - men - kib - kaban - etznab - kawak - ajaw example: imix description: Day sign id, case-insensitive and punctuation-insensitive. One of imix, ik, akbal, kan, chikchan, kimi, manik, lamat, muluk, ok, chuwen, eb, ben, ix, men, kib, kaban, etznab, kawak, ajaw. required: true description: Day sign id, case-insensitive and punctuation-insensitive. One of imix, ik, akbal, kan, chikchan, kimi, manik, lamat, muluk, ok, chuwen, eb, ben, ix, men, kib, kaban, etznab, kawak, ajaw. name: id in: path - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query - schema: type: string enum: - madrid-codex - landa default: madrid-codex example: madrid-codex description: Which reading of the world direction and colour to serve for a day sign. The two published assignments differ by exactly one quarter turn on all twenty signs, so neither is a rounding of the other and a silent pick would be a school choice. "madrid-codex" is the codex reading and the default; "landa" is the sixteenth century assignment recorded beside it. required: false description: Which reading of the world direction and colour to serve for a day sign. The two published assignments differ by exactly one quarter turn on all twenty signs, so neither is a rounding of the other and a silent pick would be a school choice. "madrid-codex" is the codex reading and the default; "landa" is the sixteenth century assignment recorded beside it. name: directionScheme in: query responses: '200': description: Full day sign profile. content: application/json: schema: type: object properties: position: type: number example: 1 description: Place in the twenty sign sequence, 1 to 20, counting Imix as 1. The sequence never varies and is what every other cycle in the domain is indexed against. id: type: string example: imix description: Machine identifier of the day sign, always lowercase ASCII Yucatec whatever the lang parameter says, so it stays safe to compare against in code and to use as a path parameter. The twenty ids run imix, ik, akbal, kan, chikchan, kimi, manik, lamat, muluk, ok, chuwen, eb, ben, ix, men, kib, kaban, etznab, kawak, ajaw. nameYucatec: type: string example: Imix description: Display name in the standard Maya orthography, where an ejective is written with a modifier letter rather than a typewriter quote. A proper noun carried as data, identical under every lang. nameClassic: type: string example: Imix description: The sixteenth century Yucatec spelling of the same sign, which is the form most printed reference tables and older books use. nameKiche: type: string example: IMOX description: The Kʼicheʼ name from the living highland daykeeping tradition, which is the vocabulary a nawal reading in Guatemala uses. A parallel naming tradition rather than a translation, so it is identical under every lang. gloss: type: string example: crocodile description: The short day-name association, translated in place because it is a common noun rather than a name. Two published readings of the twenty signs disagree on six of them, so the alternate reading ships beside this one rather than one being resolved away. glossAlternate: type: string example: Naah Kan, the Primordial Snake; the essence of water description: The glyph-table reading of the same sign, translated in place. On the six signs where the two readings disagree this is the one the composed prose follows, so a reading that seems to ignore the gloss above is doing so deliberately. direction: type: string example: north description: 'World direction this sign belongs to under the requested scheme: east, north, west or south. The twenty signs divide evenly into four groups of five, so exactly five signs share each quarter.' color: type: string example: white description: 'Colour paired with the direction: red for east, white for north, black for west, yellow for south. Always English so it stays safe to key a palette off.' keynote: type: string example: The nawal Imix, called IMOX in the highland daykeeping tradition, is the first water, the unformed source every later shape is drawn out of. The sign itself is read as Naah Kan, the Primordial Snake; the essence of water. description: 'The sign in one composed sentence: both names, what it is about and the glyph reading behind it.' directionReading: type: string example: The sign faces north, the quarter of the ancestors and of everything overhead, and carries the colour white. Directions follow the codex reading, which is the one most reference tables print. description: The world direction in prose, followed by a line naming which of the two published readings produced it. The two sit one quarter turn apart on all twenty signs. essence: type: string example: the first water, the unformed source every later shape is drawn out of description: What the sign is about, as a clause rather than a sentence, because it is spliced into composed prose elsewhere in the API. Translated in place. strengths: type: array items: type: string example: - Begins things other people are still describing, and works comfortably before a shape exists description: What the sign does well, as full sentences rather than keywords. challenges: type: array items: type: string example: - Takes on more feeling than belongs to it and calls the weight its own description: Where the same temperament costs the sign something. Each one is the shadow of a strength above rather than an unrelated flaw. guidance: type: string example: Give the day a container. Water without banks floods, and the same instinct that opens a thing can drown it. description: The one thing worth doing differently under this sign. trecena: type: object properties: number: type: number example: 1 description: The trecena this sign opens, 1 to 20. Every sign opens exactly one trecena, because 13 and 20 share no factor. reading: type: string example: Trecena 1 opens on 1 Imix and runs for thirteen days under it. The whole period takes its colour from the first water, the unformed source every later shape is drawn out of. description: The composed reading of the thirteen day period this sign opens. required: - number - reading description: The thirteen day period this sign opens. Composed from the sign rather than stored, so the two can never disagree. conventions: type: object properties: directionScheme: type: string example: madrid-codex description: The direction reading actually applied. The two readings sit one quarter turn apart, so a direction stored without this value is ambiguous. required: - directionScheme description: The conventions this profile was served under. required: - position - id - nameYucatec - nameClassic - nameKiche - gloss - glossAlternate - direction - color - keynote - directionReading - essence - strengths - challenges - guidance - trecena - conventions '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url /mesoamerican-astrology/mayan/trecenas: get: operationId: listTrecenas tags: - Mesoamerican Astrology summary: List the 20 Mayan trecenas - Tzolkin thirteen day period API description: Retrieve all twenty trecenas, the thirteen day periods the 260 day Tzolkin divides into. Each entry returns the period number, the day sign it opens on in both naming traditions, and a composed reading of what the period carries. Built for calendar apps, energy period trackers and content planners that work in thirteen day blocks rather than in weeks. security: - apiKey: [] parameters: - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query - schema: type: integer minimum: 1 maximum: 20 default: 20 example: 20 description: 'Maximum items to return per page. Range: 1-20, default 20.' required: false description: 'Maximum items to return per page. Range: 1-20, default 20.' name: limit in: query - schema: type: integer minimum: 0 default: 0 example: 0 description: Number of items to skip for pagination. Default 0. required: false description: Number of items to skip for pagination. Default 0. name: offset in: query responses: '200': description: The trecena catalogue. content: application/json: schema: type: object properties: total: type: number example: 20 description: Total trecenas in the round. Always 20, because 260 divided by 13 is exactly 20. limit: type: number example: 20 description: Maximum items returned for this page. offset: type: number example: 0 description: Number of items skipped before this page. trecenas: type: array items: type: object properties: number: type: number example: 1 description: Which of the twenty thirteen day periods this is, 1 to 20. Trecena 1 opens on 1 Imix and the openers step thirteen signs at a time from there. rulingSign: type: string example: imix description: Machine identifier of the day sign the period opens on, which the tradition reads as colouring all thirteen of its days. rulingSignName: type: string example: Imix description: Display name of the sign the period opens on. A proper noun carried as data. rulingSignKiche: type: string example: IMOX description: Kʼicheʼ name of the same sign, the vocabulary a highland reading uses. length: type: number example: 13 description: Days in the period. Always 13, which is what the word trecena means. reading: type: string example: Trecena 1 opens on 1 Imix and runs for thirteen days under it. The whole period takes its colour from the first water, the unformed source every later shape is drawn out of. description: The composed reading of the period, built from the sign it opens on. Composed rather than stored, so it can never drift away from the day sign it is drawn from. required: - number - rulingSign - rulingSignName - rulingSignKiche - length - reading description: Trecenas for the current page, in order from the one that opens on 1 Imix. required: - total - limit - offset - trecenas '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url /mesoamerican-astrology/mayan/trecenas/{number}: get: operationId: getTrecena tags: - Mesoamerican Astrology summary: Get one Mayan trecena - Thirteen day period profile API description: Retrieve one of the twenty trecenas by number, with the day sign it opens on in both naming traditions and a composed reading of the period. Built for period detail pages and for apps that show which thirteen day block a date falls in. security: - apiKey: [] parameters: - schema: type: integer example: 1 description: Trecena number, 1 to 20. Trecena 1 opens on 1 Imix, trecena 2 on 1 Ix, and each subsequent period opens thirteen signs further round the twenty. required: true description: Trecena number, 1 to 20. Trecena 1 opens on 1 Imix, trecena 2 on 1 Ix, and each subsequent period opens thirteen signs further round the twenty. name: number in: path - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query responses: '200': description: The trecena. content: application/json: schema: type: object properties: number: type: number example: 1 description: Which of the twenty thirteen day periods this is, 1 to 20. Trecena 1 opens on 1 Imix and the openers step thirteen signs at a time from there. rulingSign: type: string example: imix description: Machine identifier of the day sign the period opens on, which the tradition reads as colouring all thirteen of its days. rulingSignName: type: string example: Imix description: Display name of the sign the period opens on. A proper noun carried as data. rulingSignKiche: type: string example: IMOX description: Kʼicheʼ name of the same sign, the vocabulary a highland reading uses. length: type: number example: 13 description: Days in the period. Always 13, which is what the word trecena means. reading: type: string example: Trecena 1 opens on 1 Imix and runs for thirteen days under it. The whole period takes its colour from the first water, the unformed source every later shape is drawn out of. description: The composed reading of the period, built from the sign it opens on. Composed rather than stored, so it can never drift away from the day sign it is drawn from. required: - number - rulingSign - rulingSignName - rulingSignKiche - length - reading '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url /mesoamerican-astrology/mayan/haab-months: get: operationId: listHaabMonths tags: - Mesoamerican Astrology summary: List the 19 Haab periods - Maya solar calendar month API description: 'Retrieve all nineteen periods of the Haab, the 365 day Maya year: eighteen months of twenty days plus the five days of Wayebʼ. Each entry returns the machine id, both spellings of the name, the length, what the name means and a composed reading. Built for calendar reference pages and for any app that has to label a Haab date rather than only compute it.' security: - apiKey: [] parameters: - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query - schema: type: integer minimum: 1 maximum: 19 default: 19 example: 19 description: 'Maximum items to return per page. Range: 1-19, default 19.' required: false description: 'Maximum items to return per page. Range: 1-19, default 19.' name: limit in: query - schema: type: integer minimum: 0 default: 0 example: 0 description: Number of items to skip for pagination. Default 0. required: false description: Number of items to skip for pagination. Default 0. name: offset in: query responses: '200': description: The Haab period catalogue. content: application/json: schema: type: object properties: total: type: number example: 19 description: 'Total periods in the Haab year. Always 19: eighteen months plus Wayebʼ, which is a period of the year even though it is only five days.' limit: type: number example: 19 description: Maximum items returned for this page. offset: type: number example: 0 description: Number of items skipped before this page. months: type: array items: type: object properties: position: type: number example: 1 description: Place in the Haab year, 1 to 19. Pop is 1 and Wayebʼ is 19, so a position of 19 always means the five short days. id: type: string example: pop description: Machine identifier of the Haab period, always lowercase ASCII, so it stays safe to compare against and to use as a path parameter. The nineteen ids run pop, wo, sip, sotz, sek, xul, yaxkin, mol, chen, yax, sak, keh, mak, kankin, muwan, pax, kayab, kumku, wayeb. nameYucatec: type: string example: Pop description: Display name in the standard orthography. A proper noun carried as data, identical under every lang. nameClassic: type: string example: Pop description: The sixteenth century Yucatec spelling, which is the form most printed tables use. length: type: number example: 20 description: Days in the period. Twenty for the eighteen months and five for Wayebʼ, which is never twenty. Days inside a period are numbered from 0, so a twenty day period runs 0 to 19. gloss: type: string example: mat description: What the period name means, translated in place because it is a common noun rather than a name. reading: type: string example: The Haab period Pop stands at position 1 in the year and runs 20 days. The mat is the seat of authority, so the year opens on who is entitled to speak and on the households the mat gathers. description: The composed reading of the period, built from its position, its length and its gloss. required: - position - id - nameYucatec - nameClassic - length - gloss - reading description: Periods for the current page, in order from Pop. required: - total - limit - offset - months '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url /mesoamerican-astrology/mayan/haab-months/{id}: get: operationId: getHaabMonth tags: - Mesoamerican Astrology summary: Get one Haab period - Maya solar calendar month profile API description: Retrieve one of the nineteen Haab periods by id, with both spellings of its name, its position in the year, its length and a composed reading. Built for calendar detail pages and for labelling a Haab date a chart route has already returned. security: - apiKey: [] parameters: - schema: type: string enum: - pop - wo - sip - sotz - sek - xul - yaxkin - mol - chen - yax - sak - keh - mak - kankin - muwan - pax - kayab - kumku - wayeb example: pop description: Haab period id, case-insensitive and punctuation-insensitive. One of pop, wo, sip, sotz, sek, xul, yaxkin, mol, chen, yax, sak, keh, mak, kankin, muwan, pax, kayab, kumku, wayeb. required: true description: Haab period id, case-insensitive and punctuation-insensitive. One of pop, wo, sip, sotz, sek, xul, yaxkin, mol, chen, yax, sak, keh, mak, kankin, muwan, pax, kayab, kumku, wayeb. name: id in: path - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query responses: '200': description: The Haab period. content: application/json: schema: type: object properties: position: type: number example: 1 description: Place in the Haab year, 1 to 19. Pop is 1 and Wayebʼ is 19, so a position of 19 always means the five short days. id: type: string example: pop description: Machine identifier of the Haab period, always lowercase ASCII, so it stays safe to compare against and to use as a path parameter. The nineteen ids run pop, wo, sip, sotz, sek, xul, yaxkin, mol, chen, yax, sak, keh, mak, kankin, muwan, pax, kayab, kumku, wayeb. nameYucatec: type: string example: Pop description: Display name in the standard orthography. A proper noun carried as data, identical under every lang. nameClassic: type: string example: Pop description: The sixteenth century Yucatec spelling, which is the form most printed tables use. length: type: number example: 20 description: Days in the period. Twenty for the eighteen months and five for Wayebʼ, which is never twenty. Days inside a period are numbered from 0, so a twenty day period runs 0 to 19. gloss: type: string example: mat description: What the period name means, translated in place because it is a common noun rather than a name. reading: type: string example: The Haab period Pop stands at position 1 in the year and runs 20 days. The mat is the seat of authority, so the year opens on who is entitled to speak and on the households the mat gathers. description: The composed reading of the period, built from its position, its length and its gloss. required: - position - id - nameYucatec - nameClassic - length - gloss - reading '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url /mesoamerican-astrology/aztec/tonalpohualli: post: operationId: calculateTonalpohualli tags: - Mesoamerican Astrology summary: Aztec day sign for a date - Tonalpohualli calculator API description: 'Aztec calendar day sign calculator: returns the tonalpohualli day sign, its coefficient 1 to 13 and its trecena for any Gregorian date, with a composed reading. The count is anchored on the recorded day of the fall of Tenochtitlan and runs in step with the Maya count under the default constant, verified on the anchor and on two modern dates. Built for Aztec calendar apps, Mexica day sign features and AI agents answering what is my Aztec sign.' security: - apiKey: [] parameters: - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query requestBody: required: true content: application/json: schema: type: object properties: date: type: string format: date example: '2012-12-21' description: Date in YYYY-MM-DD format, in the PROLEPTIC GREGORIAN calendar, extended backwards unchanged through the 1582 reform. Years 1 to 4000 are accepted. A reference converter that switches to the Julian calendar below the reform will disagree with a date before 15 October 1582 by ten or eleven days; that is a difference of input convention rather than of arithmetic, and passing the Julian equivalent to such a tool reproduces these values exactly. A single-digit month or day is accepted and zero padded. required: - date responses: '200': description: The tonalpohualli day for this date. content: application/json: schema: type: object properties: daySign: type: string example: coatl description: Machine identifier of the tonalpohualli day sign, always lowercase ASCII Nahuatl whatever the lang parameter says, so it stays safe to compare against in code. The twenty ids run cipactli, ehecatl, calli, cuetzpalin, coatl, miquiztli, mazatl, tochtli, atl, itzcuintli, ozomahtli, malinalli, acatl, ocelotl, cuauhtli, cozcacuauhtli, ollin, tecpatl, quiahuitl, xochitl. daySignName: type: string example: Cōātl description: Display name in Nahuatl with the vowel length marks the reference tables print. A proper noun carried as data, so it is identical under every lang. gloss: type: string example: serpent / snake description: What the sign name means, translated in place because it is a common noun. Several English renderings are in circulation for some signs and all of them are given rather than one being picked. direction: type: string example: east description: 'World direction the sign belongs to: east, north, west or south. The twenty run through the four quarters in order, so the direction is a property of the position as much as of the sign.' number: type: number example: 1 description: 'The tonalpohualli coefficient, 1 to 13. Structurally the same count as the Maya coefficient and read the same way: a rank it is not.' trecena: type: object properties: number: type: number example: 9 description: Which of the twenty thirteen day periods this day falls in, 1 to 20. dayOfTrecena: type: number example: 1 description: Position of this day inside its trecena, 1 to 13. Always equal to the coefficient. startSign: type: string example: coatl description: Machine identifier of the day sign the trecena opens on. startSignName: type: string example: Cōātl description: Display name of the sign the trecena opens on. A proper noun carried as data. required: - number - dayOfTrecena - startSign - startSignName description: 'The thirteen day period this day belongs to, named by the sign it opens on. No patron deity is returned: the published patron column carries an unresolved disagreement on two of the twenty rows, and a column that is right for eighteen and guessed for two is worse than none.' keynote: type: string example: The tonalpohualli sign Cōātl is the serpent, the charge that runs the whole length of a living thing. It is read as serpent / snake, and it belongs to the east. description: The sign in one composed sentence. Composed per request from the sign components rather than stored whole. guidance: type: string example: Move what has built up in the body before it picks its own target. description: The one thing worth doing differently under this sign. scope: type: string example: This count returns the day sign, its coefficient and its trecena. The night lord and the solar year are not returned, because the sources consulted for them do not agree closely enough to publish. description: A plain statement of what this family covers and what it deliberately leaves out. Present on every response so nobody has to guess whether a missing field is an outage or a decision. date: type: string example: '1521-08-23' description: Echo of the date the day was resolved from, in proleptic Gregorian. conventions: type: object properties: correlation: type: string example: caso description: 'The correlation this count runs on, anchored on the recorded day 1 Coatl at the fall of Tenochtitlan, 13 August 1521 in the Julian calendar and 23 August 1521 in the proleptic Gregorian calendar this API takes. It is echoed rather than requested because it is not a switch: the anchor is a civil date, so no correlation constant enters the arithmetic, and the published alternatives for this calendar move the solar year alignment rather than the day count. The count was verified to run in step with the Maya count under the default constant, on the anchor and on two modern dates.' required: - correlation description: The conventions this answer was computed under, echoed so the result is self describing. required: - daySign - daySignName - gloss - direction - number - trecena - keynote - guidance - scope - date - conventions '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url /mesoamerican-astrology/aztec/daily: get: operationId: getDailyAztecReading tags: - Mesoamerican Astrology summary: Daily Aztec energy reading - Tonalpohualli day sign of the day API description: 'Aztec energy of the day: the tonalpohualli day sign, its coefficient and its trecena for today or for any date you name, with a composed reading. Content is fixed for a given date and rolls over at midnight UTC, so a daily feed can cache it safely and an editorial calendar can be filled weeks ahead. Built for daily energy widgets, Mexica day sign feeds and chatbot answers about what today carries.' security: - apiKey: [] parameters: - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query - schema: type: string format: date example: '2026-09-02' description: Date in YYYY-MM-DD format, in the PROLEPTIC GREGORIAN calendar, extended backwards unchanged through the 1582 reform. Years 1 to 4000 are accepted. A reference converter that switches to the Julian calendar below the reform will disagree with a date before 15 October 1582 by ten or eleven days; that is a difference of input convention rather than of arithmetic, and passing the Julian equivalent to such a tool reproduces these values exactly. A single-digit month or day is accepted and zero padded. Defaults to the current day in UTC. required: false description: Date in YYYY-MM-DD format, in the PROLEPTIC GREGORIAN calendar, extended backwards unchanged through the 1582 reform. Years 1 to 4000 are accepted. A reference converter that switches to the Julian calendar below the reform will disagree with a date before 15 October 1582 by ten or eleven days; that is a difference of input convention rather than of arithmetic, and passing the Julian equivalent to such a tool reproduces these values exactly. A single-digit month or day is accepted and zero padded. Defaults to the current day in UTC. name: date in: query responses: '200': description: The tonalpohualli reading for this day. content: application/json: schema: type: object properties: daySign: type: string example: coatl description: Machine identifier of the tonalpohualli day sign, always lowercase ASCII Nahuatl whatever the lang parameter says, so it stays safe to compare against in code. The twenty ids run cipactli, ehecatl, calli, cuetzpalin, coatl, miquiztli, mazatl, tochtli, atl, itzcuintli, ozomahtli, malinalli, acatl, ocelotl, cuauhtli, cozcacuauhtli, ollin, tecpatl, quiahuitl, xochitl. daySignName: type: string example: Cōātl description: Display name in Nahuatl with the vowel length marks the reference tables print. A proper noun carried as data, so it is identical under every lang. gloss: type: string example: serpent / snake description: What the sign name means, translated in place because it is a common noun. Several English renderings are in circulation for some signs and all of them are given rather than one being picked. direction: type: string example: east description: 'World direction the sign belongs to: east, north, west or south. The twenty run through the four quarters in order, so the direction is a property of the position as much as of the sign.' number: type: number example: 1 description: 'The tonalpohualli coefficient, 1 to 13. Structurally the same count as the Maya coefficient and read the same way: a rank it is not.' trecena: type: object properties: number: type: number example: 9 description: Which of the twenty thirteen day periods this day falls in, 1 to 20. dayOfTrecena: type: number example: 1 description: Position of this day inside its trecena, 1 to 13. Always equal to the coefficient. startSign: type: string example: coatl description: Machine identifier of the day sign the trecena opens on. startSignName: type: string example: Cōātl description: Display name of the sign the trecena opens on. A proper noun carried as data. required: - number - dayOfTrecena - startSign - startSignName description: 'The thirteen day period this day belongs to, named by the sign it opens on. No patron deity is returned: the published patron column carries an unresolved disagreement on two of the twenty rows, and a column that is right for eighteen and guessed for two is worse than none.' keynote: type: string example: The tonalpohualli sign Cōātl is the serpent, the charge that runs the whole length of a living thing. It is read as serpent / snake, and it belongs to the east. description: The sign in one composed sentence. Composed per request from the sign components rather than stored whole. guidance: type: string example: Move what has built up in the body before it picks its own target. description: The one thing worth doing differently under this sign. scope: type: string example: This count returns the day sign, its coefficient and its trecena. The night lord and the solar year are not returned, because the sources consulted for them do not agree closely enough to publish. description: A plain statement of what this family covers and what it deliberately leaves out. Present on every response so nobody has to guess whether a missing field is an outage or a decision. date: type: string example: '2026-09-02' description: Date of this reading. Echoes the date requested, or the current day in UTC when it was omitted. overview: type: string example: Today is 2 Calli in the tonalpohualli, day 2 of the trecena that opened on 1 Ehēcatl. The day is coloured by the house, the enclosure that makes rest and privacy possible. description: What the day carries, placing it inside its trecena as well as naming it. Composed per request, so it stays consistent with the keynote rather than being a second opinion. conventions: type: object properties: correlation: type: string example: caso description: 'The correlation this count runs on, anchored on the recorded day 1 Coatl at the fall of Tenochtitlan, 13 August 1521 in the Julian calendar and 23 August 1521 in the proleptic Gregorian calendar this API takes. It is echoed rather than requested because it is not a switch: the anchor is a civil date, so no correlation constant enters the arithmetic, and the published alternatives for this calendar move the solar year alignment rather than the day count. The count was verified to run in step with the Maya count under the default constant, on the anchor and on two modern dates.' required: - correlation description: The conventions this reading was computed under, echoed so the result is self describing. required: - daySign - daySignName - gloss - direction - number - trecena - keynote - guidance - scope - date - overview - conventions '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url /mesoamerican-astrology/aztec/day-signs: get: operationId: listAztecDaySigns tags: - Mesoamerican Astrology summary: List the 20 Aztec day signs - Tonalpohualli sign catalogue API description: Retrieve all twenty tonalpohualli day signs in sequence order from Cipactli to Xochitl. Each entry returns the machine id, the Nahuatl name, what it means, the world direction it belongs to and a composed reading. Built for Aztec sign pickers, Mexica calendar reference pages and any app that needs the whole set in one call. security: - apiKey: [] parameters: - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query - schema: type: integer minimum: 1 maximum: 20 default: 20 example: 20 description: 'Maximum items to return per page. Range: 1-20, default 20.' required: false description: 'Maximum items to return per page. Range: 1-20, default 20.' name: limit in: query - schema: type: integer minimum: 0 default: 0 example: 0 description: Number of items to skip for pagination. Default 0. required: false description: Number of items to skip for pagination. Default 0. name: offset in: query responses: '200': description: The tonalpohualli day sign catalogue. content: application/json: schema: type: object properties: total: type: number example: 20 description: Total signs in the cycle. Always 20; the sign set is closed. limit: type: number example: 20 description: Maximum items returned for this page. offset: type: number example: 0 description: Number of items skipped before this page. daySigns: type: array items: type: object properties: position: type: number example: 1 description: Place in the twenty sign sequence, 1 to 20, counting Cipactli as 1. The sequence never varies and is what the trecenas are indexed against. id: type: string example: cipactli description: Machine identifier of the day sign, always lowercase ASCII Nahuatl whatever the lang parameter says, so it stays safe to compare against and to use as a path parameter. The twenty ids run cipactli, ehecatl, calli, cuetzpalin, coatl, miquiztli, mazatl, tochtli, atl, itzcuintli, ozomahtli, malinalli, acatl, ocelotl, cuauhtli, cozcacuauhtli, ollin, tecpatl, quiahuitl, xochitl. nameNahuatl: type: string example: Cipactli description: Display name in Nahuatl with the vowel length marks the reference tables print. A proper noun carried as data, identical under every lang. gloss: type: string example: crocodile / alligator / caiman description: What the sign name means, translated in place because it is a common noun. Where several English renderings are in circulation all of them are given rather than one being picked. direction: type: string example: east description: 'World direction the sign belongs to: east, north, west or south. The twenty run through the four quarters in strict rotation, so every fourth sign shares a quarter.' essence: type: string example: the crocodile in the first water, the ground the world was built on description: What the sign is about, as a clause rather than a sentence, because it is spliced into composed prose elsewhere in the API. Translated in place. guidance: type: string example: Begin something, and give it a base wide enough to carry the rest. description: The one thing worth doing differently under this sign. keynote: type: string example: The tonalpohualli sign Cipactli is the crocodile in the first water, the ground the world was built on. It is read as crocodile / alligator / caiman, and it belongs to the east. description: The sign in one composed sentence, built from the components above. required: - position - id - nameNahuatl - gloss - direction - essence - guidance - keynote description: Day signs for the current page, in sequence order. required: - total - limit - offset - daySigns '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url /mesoamerican-astrology/aztec/day-signs/{id}: get: operationId: getAztecDaySign tags: - Mesoamerican Astrology summary: Get one Aztec day sign - Tonalpohualli sign profile API description: 'Retrieve the full profile of one tonalpohualli day sign: the Nahuatl name, what it means, the world direction it belongs to, a composed keynote and one line of guidance. Built for Aztec sign detail pages, day sign cards and chatbot answers about a single Mexica sign.' security: - apiKey: [] parameters: - schema: type: string enum: - cipactli - ehecatl - calli - cuetzpalin - coatl - miquiztli - mazatl - tochtli - atl - itzcuintli - ozomahtli - malinalli - acatl - ocelotl - cuauhtli - cozcacuauhtli - ollin - tecpatl - quiahuitl - xochitl example: cipactli description: Day sign id, case-insensitive and punctuation-insensitive. One of cipactli, ehecatl, calli, cuetzpalin, coatl, miquiztli, mazatl, tochtli, atl, itzcuintli, ozomahtli, malinalli, acatl, ocelotl, cuauhtli, cozcacuauhtli, ollin, tecpatl, quiahuitl, xochitl. required: true description: Day sign id, case-insensitive and punctuation-insensitive. One of cipactli, ehecatl, calli, cuetzpalin, coatl, miquiztli, mazatl, tochtli, atl, itzcuintli, ozomahtli, malinalli, acatl, ocelotl, cuauhtli, cozcacuauhtli, ollin, tecpatl, quiahuitl, xochitl. name: id in: path - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query responses: '200': description: The tonalpohualli day sign. content: application/json: schema: type: object properties: position: type: number example: 1 description: Place in the twenty sign sequence, 1 to 20, counting Cipactli as 1. The sequence never varies and is what the trecenas are indexed against. id: type: string example: cipactli description: Machine identifier of the day sign, always lowercase ASCII Nahuatl whatever the lang parameter says, so it stays safe to compare against and to use as a path parameter. The twenty ids run cipactli, ehecatl, calli, cuetzpalin, coatl, miquiztli, mazatl, tochtli, atl, itzcuintli, ozomahtli, malinalli, acatl, ocelotl, cuauhtli, cozcacuauhtli, ollin, tecpatl, quiahuitl, xochitl. nameNahuatl: type: string example: Cipactli description: Display name in Nahuatl with the vowel length marks the reference tables print. A proper noun carried as data, identical under every lang. gloss: type: string example: crocodile / alligator / caiman description: What the sign name means, translated in place because it is a common noun. Where several English renderings are in circulation all of them are given rather than one being picked. direction: type: string example: east description: 'World direction the sign belongs to: east, north, west or south. The twenty run through the four quarters in strict rotation, so every fourth sign shares a quarter.' essence: type: string example: the crocodile in the first water, the ground the world was built on description: What the sign is about, as a clause rather than a sentence, because it is spliced into composed prose elsewhere in the API. Translated in place. guidance: type: string example: Begin something, and give it a base wide enough to carry the rest. description: The one thing worth doing differently under this sign. keynote: type: string example: The tonalpohualli sign Cipactli is the crocodile in the first water, the ground the world was built on. It is read as crocodile / alligator / caiman, and it belongs to the east. description: The sign in one composed sentence, built from the components above. required: - position - id - nameNahuatl - gloss - direction - essence - guidance - keynote '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url /mesoamerican-astrology/aztec/trecenas: get: operationId: listAztecTrecenas tags: - Mesoamerican Astrology summary: List the 20 Aztec trecenas - Tonalpohualli thirteen day period API description: Retrieve all twenty trecenas, the thirteen day periods the 260 day tonalpohualli divides into. Each entry returns the period number, the day sign it opens on and a composed reading of what the period carries. Built for Aztec calendar apps, energy period trackers and content planners that work in thirteen day blocks. security: - apiKey: [] parameters: - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query - schema: type: integer minimum: 1 maximum: 20 default: 20 example: 20 description: 'Maximum items to return per page. Range: 1-20, default 20.' required: false description: 'Maximum items to return per page. Range: 1-20, default 20.' name: limit in: query - schema: type: integer minimum: 0 default: 0 example: 0 description: Number of items to skip for pagination. Default 0. required: false description: Number of items to skip for pagination. Default 0. name: offset in: query responses: '200': description: The tonalpohualli trecena catalogue. content: application/json: schema: type: object properties: total: type: number example: 20 description: Total trecenas in the count. Always 20, because 260 divided by 13 is exactly 20. limit: type: number example: 20 description: Maximum items returned for this page. offset: type: number example: 0 description: Number of items skipped before this page. trecenas: type: array items: type: object properties: number: type: number example: 1 description: Which of the twenty thirteen day periods this is, 1 to 20. Trecena 1 opens on 1 Cipactli and the openers step thirteen signs at a time from there. startSign: type: string example: cipactli description: Machine identifier of the day sign the period opens on. startSignName: type: string example: Cipactli description: Display name of the sign the period opens on. A proper noun carried as data. length: type: number example: 13 description: Days in the period. Always 13, which is what the word trecena means. reading: type: string example: Trecena 1 opens on 1 Cipactli and runs for thirteen days under it. The period takes its character from the crocodile in the first water, the ground the world was built on. description: The composed reading of the period, built from the sign it opens on rather than stored, so the two can never drift apart. No patron deity is named, because two of the twenty published patrons are disputed and none ships rather than eighteen shipping beside two guesses. required: - number - startSign - startSignName - length - reading description: Trecenas for the current page, in order from the one that opens on 1 Cipactli. required: - total - limit - offset - trecenas '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url /mesoamerican-astrology/aztec/trecenas/{number}: get: operationId: getAztecTrecena tags: - Mesoamerican Astrology summary: Get one Aztec trecena - Tonalpohualli period profile API description: Retrieve one of the twenty tonalpohualli trecenas by number, with the day sign it opens on and a composed reading of the period. Built for period detail pages and for apps that show which thirteen day block a date falls in. security: - apiKey: [] parameters: - schema: type: integer example: 1 description: Trecena number, 1 to 20. Trecena 1 opens on 1 Cipactli, trecena 2 on 1 Ocelotl, and each subsequent period opens thirteen signs further round the twenty. required: true description: Trecena number, 1 to 20. Trecena 1 opens on 1 Cipactli, trecena 2 on 1 Ocelotl, and each subsequent period opens thirteen signs further round the twenty. name: number in: path - schema: type: string enum: - en - tr - de - es - hi - pt - fr - ru - zh-Hans - zh-Hant default: en example: en description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' required: false description: 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.' name: lang in: query responses: '200': description: The tonalpohualli trecena. content: application/json: schema: type: object properties: number: type: number example: 1 description: Which of the twenty thirteen day periods this is, 1 to 20. Trecena 1 opens on 1 Cipactli and the openers step thirteen signs at a time from there. startSign: type: string example: cipactli description: Machine identifier of the day sign the period opens on. startSignName: type: string example: Cipactli description: Display name of the sign the period opens on. A proper noun carried as data. length: type: number example: 13 description: Days in the period. Always 13, which is what the word trecena means. reading: type: string example: Trecena 1 opens on 1 Cipactli and runs for thirteen days under it. The period takes its character from the crocodile in the first water, the ground the world was built on. description: The composed reading of the period, built from the sign it opens on rather than stored, so the two can never drift apart. No patron deity is named, because two of the twenty published patrons are disputed and none ships rather than eighteen shipping beside two guesses. required: - number - startSign - startSignName - length - reading '400': description: Validation error. `issues[]` lists every failed field. content: application/json: schema: type: object properties: error: type: string description: First issue summary. code: type: string enum: - validation_error doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. issues: type: array description: Every validation failure. Use this to rebuild a valid request. items: type: object properties: path: type: string description: Dot-separated field path, or "(root)" for top-level. message: type: string code: type: string description: Zod issue code (invalid_type, too_small, too_big, invalid_string, ...). expected: type: string description: Expected type for invalid_type. minimum: description: Minimum bound for too_small issues. oneOf: - type: number - type: string maximum: description: Maximum bound for too_big issues. oneOf: - type: number - type: string inclusive: type: boolean format: type: string description: Format name for string issues (regex, email, url, uuid). pattern: type: string description: Regex pattern when format is regex. required: - path - message required: - error - code - doc_url - issues '401': description: Invalid or missing API key content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '405': description: Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header. headers: Allow: description: Comma-separated list of allowed methods (RFC 9110). schema: type: string content: application/json: schema: type: object properties: error: type: string code: type: string enum: - method_not_allowed doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. allow: type: array items: type: string description: Allowed HTTP methods for this path. Mirrors the Allow response header. docs: type: string description: Link to the product page for this domain. required: - error - code - doc_url - allow '429': description: Monthly rate limit exceeded content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string description: Human-readable error message. May change wording. code: type: string description: Machine-readable error code. Stable identifier. doc_url: type: string description: Absolute URL of the documented explanation of this code, anchored at the code itself, for example https://roxyapi.com/docs/errors#not_found. required: - error - code - doc_url components: securitySchemes: apiKey: type: apiKey in: header name: X-API-Key description: Your API key for accessing RoxyAPI. Alternatively, you can pass the API key as a query parameter "api_key". externalDocs: description: Complete API Documentation with Examples url: https://roxyapi.com/docs