{
  "openapi": "3.1.0",
  "info": {
    "title": "JYOTINT API — read-only, no-key, CORS-open",
    "version": "v1",
    "description": "JYOTINT delivers the high-stakes call right — a mission that flies clean, a position defended. This read-only, CORS-open API exposes the credential that PROVES it: the publicly-graded, Bitcoin-anchored record (derived from the seal manifest, grading ledger, and CC-BY dataset), recomputable and never operator-asserted. See `positioning` for the full framing.",
    "termsOfService": "https://jyotishintelligence.com/policies/terms#TERMS_02API",
    "x-disclaimer": "All records are editorial forecasting opinion and protected commentary under CC-BY-4.0 — NOT statements of fact about any third party, not an engineering finding, not investment / legal / safety advice. Provided 'as is,' without warranty. A sealed probabilistic forecast is not notice and imputes no knowledge or scienter; this record is not evidence of any third party's liability, foreseeability, or fault, and may not be used in any securities, shareholder, derivative, insurance, subrogation, or product-liability proceeding against any launch operator or payload customer. See /policies/terms#TERMS_02API and #TERMS_02NW.",
    "license": {
      "name": "CC-BY-4.0",
      "url": "https://creativecommons.org/licenses/by/4.0/"
    }
  },
  "servers": [
    {
      "url": "https://jyotishintelligence.com/api/v1"
    }
  ],
  "paths": {
    "/index.json": {
      "get": {
        "summary": "API root: counts, calibration, integrity, endpoints",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "example": {
                  "name": "JYOTINT API — read-only, no-key, CORS-open",
                  "version": "v1",
                  "counts": {
                    "sealed": 78,
                    "graded": 68,
                    "open": 10
                  },
                  "calibration": {
                    "brier": 0.0717
                  },
                  "integrity": {
                    "manifest_hash": "14b4c12e6a75f0e76521ed0762ca2caa45deda571546eda905b70f0861486545",
                    "ledger_hash": "ad86370537ab4ed11481cfecca34ec57f5877f3f1cd6a593477b8dcaf5601842"
                  },
                  "endpoints": {
                    "manifest_meta": "/api/v1/manifest-meta.json",
                    "brief": "/api/v1/brief.json"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/manifest-meta.json": {
      "get": {
        "summary": "THE canonical live values: manifestHash / ledgerHash / counts / Brier / verdicts. Read this to learn current numbers and detect staleness",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "example": {
                  "manifestHash": "14b4c12e6a75f0e76521ed0762ca2caa45deda571546eda905b70f0861486545",
                  "ledgerHash": "ad86370537ab4ed11481cfecca34ec57f5877f3f1cd6a593477b8dcaf5601842",
                  "sealed": 78,
                  "graded": 68,
                  "brier": 0.0717,
                  "brier_launch_only": 0.036,
                  "verdicts": {
                    "HIT": 58,
                    "NEAR": 3,
                    "PARTIAL": 3,
                    "MISS": 4
                  },
                  "generated_at": "2026-06-30T01:45:55.186Z"
                }
              }
            }
          }
        }
      }
    },
    "/brief.json": {
      "get": {
        "summary": "One-GET analyst brief: what it is / is not, live numbers, marquee calls, how-to-verify, the ceiling, identity, citation",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "example": {
                  "what_it_is": "A public, cryptographically pre-sealed, Bitcoin-anchored, openly graded forecasting record…",
                  "numbers": {
                    "sealed": 78,
                    "graded": 68,
                    "brier": 0.0717
                  },
                  "marquee_calls": [
                    {
                      "id": "IA-RU-008",
                      "title": "Crocus City Hall",
                      "sha256": "36bb84d3b0aa2de6c0aefc16f36fa194e12f172c37327909944a879dcd99bd4e"
                    }
                  ],
                  "ceiling": "Self-scored Brier (a base-rate baseline ties it) and the method is Vedic jyotish (astrology) — an augmenting input, never a go/no-go authority. (NSSL designates the LAUNCH VEHICLE, not the payload: the corpus DOES include a flown call on the NSSL launch vehicle itself — ULA's Vulcan Cert-1, LA-003 — the certification flight of the very rocket ULA flies U.S. national-security payloads on (ULA-confirmed), which carried Astrobotic's Peregrine; forecast on-demand against an ~80%-go consensus.)"
                }
              }
            }
          }
        }
      }
    },
    "/limitations.json": {
      "get": {
        "summary": "The machine-readable ceiling: self-scored Brier, base-rate ties, disclosed method, augmenting-not-go/no-go (NSSL is a credential — a flown call on the NSSL launch vehicle, Vulcan Cert-1/LA-003) + the honest one-paragraph statement",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "example": {
                  "self_scored_brier": true,
                  "base_rate_ties": true,
                  "method": "Vedic jyotish (astrology), disclosed",
                  "nssl_launch_vehicle_flown_call": "Flown call on the NSSL launch vehicle (Vulcan Cert-1/LA-003); NSSL is the vehicle, not the payload; no NS mission/NRO/affiliation claimed",
                  "augmenting_not_go_no_go": true,
                  "statement": "The honest ceiling, stated plainly so it cannot be mistaken: the Brier is SELF-ASSIGNED (a base-rate baseline ties it on this small, operator-selected sample, s…"
                }
              }
            }
          }
        }
      }
    },
    "/verify.json": {
      "get": {
        "summary": "The verification recipe AS DATA: one_command, ordered steps with expectations, the LIVE expected manifestHash/counts/Brier, and the offline kit",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "example": {
                  "one_command": "sh -c \"$(curl -fsSL https://jyotishintelligence.com/verify.sh)\"",
                  "expected": {
                    "manifestHash": "14b4c12e6a75f0e76521ed0762ca2caa45deda571546eda905b70f0861486545",
                    "sealed": 78,
                    "graded": 68,
                    "brier": 0.0717
                  }
                }
              }
            }
          }
        }
      }
    },
    "/glossary.json": {
      "get": {
        "summary": "Every term of art (protocol/formula/grading/domain), with stable anchors mirroring /glossary",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "example": {
                  "count": 32,
                  "terms": [
                    {
                      "anchor": "seal",
                      "term": "Seal",
                      "short": null,
                      "section": "protocol",
                      "definition": "The act of publishing an advisory to a public host (YouTube and/or X) before the prediction window opens, with the SHA-256 hash of the advisory document published in the same post. The seal is non-custodial — there is no JYOTINT-controlled database that could be silently rewritten. The public timestamp is the timestamp.",
                      "example": "An advisory uploaded to YouTube at 14:02 UTC with the SHA-256 hash in the description is sealed at 14:02 UTC."
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/corpus.json": {
      "get": {
        "summary": "All sealed records (graded + ungraded)",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/graded.json": {
      "get": {
        "summary": "Graded records only (the Brier corpus). Each row carries sha256, verify_cmd, and a one-line ceiling so the caveat travels with the atom",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "example": {
                  "count": 68,
                  "records": [
                    {
                      "id": "LA-022",
                      "title": "New Glenn NG-3 / BlueBird",
                      "graded": true,
                      "accuracy": "HIT",
                      "prob_at_seal": 0.8,
                      "sha256": "26bc6da6c6f9bc39158a6cb03094508a85c8720a7ffd2d940451aea3fedceb97",
                      "verify_cmd": "node verify-jyotint.mjs --manifest seal-manifest.json --id LA-022",
                      "ceiling": "Self-scored Brier (a base-rate baseline ties it) and the method is Vedic jyotish (astrology) — an augmenting input, never a go/no-go authority. (NSSL designates the LAUNCH VEHICLE, not the payload: the corpus DOES include a flown call on the NSSL launch vehicle itself — ULA's Vulcan Cert-1, LA-003 — the certification flight of the very rocket ULA flies U.S. national-security payloads on (ULA-confirmed), which carried Astrobotic's Peregrine; forecast on-demand against an ~80%-go consensus.)"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/open-calls.json": {
      "get": {
        "summary": "Unresolved sealed forecasts",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/sita.json": {
      "get": {
        "summary": "SITA decision-value scores (4 axes + composite + percentile) for every sealed call",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/info-yield.json": {
      "get": {
        "summary": "Information Yield — bits of surprise-if-true per call + corpus/domain summary (median, NOT a compounded total)",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/warning-timelines.json": {
      "get": {
        "summary": "Before-the-event indications-and-warning timelines (index + full per-slug timelines)",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/regrade.json": {
      "get": {
        "summary": "Grade-it-yourself kit: per-call claim/outcome/p/verdict + stress-test recipes + IY (surprise_bits) and SITA-Improbability (one_in_n) inputs to recompute Brier, specificity, and Information Yield under your own verdicts",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/site.json": {
      "get": {
        "summary": "RENDER THE WHOLE SITE WITH NO BROWSER — the render-anything index: every public page as text (pages.json), live embed (/embed/page/{path}), and structured data. For an AI tool on a locked-down network",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/pages.json": {
      "get": {
        "summary": "The ENTIRE public site as text in one document, route-tagged — the no-browser full-site render. Private/operator-only surfaces excluded",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/facets.json": {
      "get": {
        "summary": "Master facet index: every way the corpus slices (domain/verdict/theater/vehicle/severity/payload/orbit/year/against-consensus) with counts + ids",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/by-vehicle.json": {
      "get": {
        "summary": "Launch advisories grouped by launch vehicle",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/by-provider.json": {
      "get": {
        "summary": "Launch advisories grouped by provider (SpaceX / Blue Origin / ULA / NASA / ISRO)",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/by-severity.json": {
      "get": {
        "summary": "Launch advisories grouped by outcome severity",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/by-payload-class.json": {
      "get": {
        "summary": "Launch advisories grouped by payload class",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/by-orbit.json": {
      "get": {
        "summary": "Launch advisories grouped by target orbit",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/by-theater.json": {
      "get": {
        "summary": "Intel advisories grouped by theater",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/by-verdict.json": {
      "get": {
        "summary": "All records grouped by graded verdict (HIT/NEAR/PARTIAL/MISS/open)",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/by-domain.json": {
      "get": {
        "summary": "All records grouped by domain (launch/intel)",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/by-year.json": {
      "get": {
        "summary": "All records grouped by sealed year",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/against-consensus.json": {
      "get": {
        "summary": "The contrarian-of-record slice (calls that diverged from a documented consensus)",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/top-information-yield.json": {
      "get": {
        "summary": "Graded calls ranked by Information Yield (bits of surprise-if-true)",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/top-sita.json": {
      "get": {
        "summary": "Records ranked by SITA decision-value",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/advisory/{id}.json": {
      "get": {
        "summary": "A single sealed record by id (e.g. IA-RU-008, LA-011). Carries the verbatim claim, sha256, verify_cmd, and a one-line ceiling",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "IA-RU-008"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "example": {
                  "id": "IA-RU-008",
                  "title": "Crocus City Hall",
                  "graded": true,
                  "accuracy": "HIT",
                  "sealed_on": "2023-09-04",
                  "sha256": "36bb84d3b0aa2de6c0aefc16f36fa194e12f172c37327909944a879dcd99bd4e",
                  "verify_cmd": "node verify-jyotint.mjs --manifest seal-manifest.json --id IA-RU-008",
                  "ceiling": "Self-scored Brier (a base-rate baseline ties it) and the method is Vedic jyotish (astrology) — an augmenting input, never a go/no-go authority. (NSSL designates the LAUNCH VEHICLE, not the payload: the corpus DOES include a flown call on the NSSL launch vehicle itself — ULA's Vulcan Cert-1, LA-003 — the certification flight of the very rocket ULA flies U.S. national-security payloads on (ULA-confirmed), which carried Astrobotic's Peregrine; forecast on-demand against an ~80%-go consensus.)"
                }
              }
            }
          },
          "404": {
            "description": "Unknown id"
          }
        }
      }
    }
  }
}
